2.2 KiB
2.2 KiB
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)
-- 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)
-- 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).
CREATE USER 'app_user'@'%' IDENTIFIED BY 'SenhaForte123';
Permissões (Grant)
-- 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).
# 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
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)?