15. Configuração
Desligue o Browser (UDP 1434)
Habilite o firewall do Windows
Exponha a porta 1433 para clientes específicos
Evite usar Named Pipes (SMB: TCP 137/138)
Use usuários individuais para cada serviço
Prefira contas locais ao invés de domínio
Segmente o tráfego de rede
16. Nivel 1: Segmentação de Rede
SQL
Server
TCP
80
Web
Server
TCP
1433
TCP
137/138
TCP 135
File SMB
RPC Locator
Frontend Backend
24. Password
Escolha o modelo de autenticação
• SQL Authentication
• Windows Authentication
Políticas de senha
• Password Policy
• Password Expiration
25. Nível 2: Autenticação
SQL Server
TCP 1433
MASTER
Autenticação
Active Directory
Domain Controller
Não há password clear-text
PWDENCRYPT: HASH + Salt
Política de senha:
• Complexidade
• Expiração
27. Primeiro Acesso aos Dados
SQL Server
AUTH
User
Database
TCP
1433
1. LOGIN
DB
DB DB
2. CMDS
28. Login vs User
SQL Server
TCP
1433
AUTH
DATABASE1
USERLOGIN
DATABASE2
USER
29. Perigo: Cross-Database Chaining
SQL Server
TCP
1433
AUTH
DATABASE1
dboLOGIN
DATABASE2
USER dbo
Cross DB
Chaining
(SQL2000)
Trustworthy DB
(SQL2005+)
30. SQL Server
TCP
1433
user
dbo / db_owner
Elevação de
Privilégio
AUTH
DATABASE1
SELECT
UPDATE..
USERMASTER
DATABASE2
DATABASE3dbo
dbo
dbo
31. Personificação de Usuário
Permissão de IMPERSONATE
Limitado ao contexto de Database
• sp_approle (password)
• EXECUTE AS USER
Considerações adicionais para acesso “cross-
database”
• Trustworthy bit
45. Bons exemplos de permissão
Impedir que usuários de aplicação executem DDL
Evitar acesso direto às tabelas do banco de dados
Aplicação OLTP
• Usar Stored Procedures (GRANT EXECUTE on PROC)
Aplicação OLAP
• Usar Views (GRANT SELECT on VIEW)
Organizar os objetos em Schema para agrupar permissão
52. Cenários
Transporte de backup para outro Data Center
Fita de backup de antigo
Ambiente de homologação
Banco de dados compartilhado por clientes
Falta de confiança no DBA