# MANUAL TÉCNICO - GESTÃO DE USUÁRIOS E PERMISSÕES DE BANCO **Código:** ITGINF 0021/26 | **Classificação:** RESTRITO **Responsável:** João Pedro Toledo Gonçalves | **Data:** {{DATA_ATUAL}} ## 1. HISTÓRICO DE REVISÃO | Data | Versão | Descrição | Autor | | :--- | :--- | :--- | :--- | | {{DATA_ATUAL}} | 1.0 | Criação Inicial | João Pedro Toledo Gonçalves | ## 2. OBJETIVO Padronizar a criação de credenciais, rotação de senhas e a concessão de privilégios mínimos (Least Privilege) em bancos de dados. --- ## 3. POSTGRESQL Acesse como admin: `sudo -u postgres psql` ### Criar Usuário (Role) ```sql -- Criar usuario com senha CREATE USER app_user WITH PASSWORD 'SenhaForte123'; -- Criar um banco para ele CREATE DATABASE app_db OWNER app_user; ``` ### Permissões (Grant) ```sql -- Conectar no banco especifico \c app_db -- Dar acesso a todas as tabelas (SCHEMA public) GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO app_user; GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO app_user; ``` --- ## 4. MYSQL / MARIADB Acesse como admin: `mysql -u root -p` ### Criar Usuário (Definindo Origem) No MySQL, o usuário é atrelado ao IP de origem (`@'%'` = qualquer lugar, `@'localhost'` = local). ```sql CREATE USER 'app_user'@'%' IDENTIFIED BY 'SenhaForte123'; ``` ### Permissões (Grant) ```sql -- Dar acesso total a UM banco especifico GRANT ALL PRIVILEGES ON app_db.* TO 'app_user'@'%'; -- Aplicar mudancas FLUSH PRIVILEGES; ``` --- ## 5. REDIS ### Redis Antigo ( < 6.0 ) Só existe UMA senha global definida no `redis.conf` (`requirepass`). Não há usuários. ### Redis Moderno (ACLs - Access Control Lists) Acesse: `redis-cli` (com a senha de admin/default). ```bash # Criar usuario 'app_user' # on > Habilitado # >Senha... > Define senha # ~app:* > Só acessa chaves que comessem com 'app:' # +@all > Pode rodar todos os comandos (Cuidado!) ACL SETUSER app_user on >SenhaForte123 ~app:* +get +set ``` ### Verificar Permissões ```bash ACL LIST ACL WHOAMI ``` ## 6. VALIDAÇÃO FINAL - [ ] O usuário consegue logar remotamente? - [ ] O usuário consegue escrever na tabela/chave permitida? - [ ] O usuário é BLOQUEADO ao tentar acessar outro banco/tabela (Teste de negação)?