manuais-e-documentacao-itguys/documentacao bancos de dados/Nivel_2/[Nível 2] Gestão de Usuário...

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)?