manuais-e-documentacao-itguys/documentacao bancos de dados/Nivel_2_[Nível 2] Gestão de...

92 lines
2.2 KiB
Markdown

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