92 lines
2.2 KiB
Markdown
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)?
|