Você está na página 1de 36

Sistemas de Informao

Redes de Computadores
Anlise e Desenvolvimento de
Sistemas

Administrao de Banco de Dados


1 Semestre 2011

Pedro Antonio Galvo Junior


E-mail: pedrogalvaojunior@gmail.com Fone: 95317555
pedro.galvao@aes.edu.br
Verso 1.11.02 Fev/2011.

SEGURANA NO
MICROSOFT SQL
SERVER 2008

OFERECENDO SEGURANA
Polticas de senhas no login de SQL Server
Hierarquia dos escopos
Separao de usurios do schema
Limite de visualizao dos metadados
Execuo pelo contexto

SEGURO POR DEFAULT


Windows Server 2003

Servios e features desligadas por


padro

SQL Server 2005

Permite somente conexo local


Usa

SAC

para

habilitar/desabilitar as features

Upgrade preserva as
configuraes

Windows Server 2003

Servios e Features novas


desabilitadas

SQL Server 2000

Usa o SAC para


habilitar/desabilitar as features

MODELOS DE
SEGURANA NO
MICROSOFT SQL
SERVER 2008

MECANISMOS DE
SEGURANA
Autenticao
Usurio e senha
Certificados
Autorizao
Permisses
Criptografia
Chaves Simtricas
Chaves Assimtricas

COMPONENTES DE
SEGURANA

Principals
Windows

Groups
Domain account
Local account

SQL Server

SQL account
Server role

Database

User
Database role
Application role
Group

Permissions
Grant/Revoke/Deny

Create
Alter
Drop
Control
Connect
Select
Execute
Update
Delete
Insert

Securables
Server Scope

Logins
Endpoints
Databases

Database Scope

Users
Assemblies
Schemas

Schema Scope

Tables
Procedures
Views

Processo de Acesso
Seguro
Pedido de conexo pela rede / pre-login handshake

Conexo ao servidor SQL Server


Autenticao do Login no SQL Server

Estabelecer login
Acesso ao database

Estabelecer acesso ao database


Tentar realizar alguma ao

Verificar as permisses para todas as aes

POLTICA DE SENHAS
Requer Windows Server 2003.
Autenticao Windows:
Login de usurios Windows
Respeita a poltica de senhas do Windows

Autenticao SQL Server:


Logins SQL Server
Respeita a poltica de senhas da mquina local.
Poltica de Domnio se estiver em um ambiente de Domnio
sys.sql_logins catalog view

CRIANDO LOGINS

Configurao
da Politica de
Senhas

CRIANDO LOGINS
CREATE LOGIN login_name { WITH < option_list1 > | FROM < sources > }
< sources >::=
WINDOWS [ WITH windows_options [,...] ]
Configurao
| CERTIFICATE certname
da Politica de
| ASYMMETRIC KEY asym_key_name
< option_list1 >::=
Senhas
PASSWORD = ' password ' [ HASHED ] [ MUST_CHANGE ]
[ , option_list2 [ ,... ] ]
< option_list2 >::=
SID = sid
| DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language
| CHECK_EXPIRATION = { ON | OFF}
| CHECK_POLICY = { ON | OFF}
[ CREDENTIAL = credential_name ]
< windows_options >::=
DEFAULT_DATABASE = database
| DEFAULT_LANGUAGE = language

OPES DE LOGIN
Opo
HASHED

Descrio
Especifica que a senha j est criptografada

MUST_CHANGE

Avisa o usurio que precisa mudar a senha. Precisa


de CHECK_EXPIRATION e CHECK_POLICY
habilitado

CHECK_EXPIRATION

Expirao de senhas. Se estiver ON, as polticas so


Aplicadas e requer que CHECK_POLICY esteja ON

CHECK_POLICY

Faz a checagem das polticas de senha

Usa a API NetValidatePasswordPolicy() do Windows Server 2003

GERENCIANDO LOGINS
Removendo um Login
DROP LOGIN <Login_name>

Alterando um Login
ALTER LOGIN <login_name> WITH
PASSWORD = '3948wJ698FFF7'

CREDENCIAIS
Alternativa aos logins.
Permitem conexo a recursos fora do SQL Server.

CREATE CREDENCIAL <nome> WITH IDENTITY = identity nam

SCHEMAS DE
SEGURANA

DEFAULT SCHEMA
Um schema default pode ser atribuido quando o usurio do banco
de dados criado.

CREATE USER user_name


[ FOR {LOGIN login_name
| CERTIFICATE cert_name
| ASYMMETRIC KEY asym_key_name
}
]
[ WITH DEFAULT_SCHEMA = schema_name ]

Especifica o schema
default

GERENCIANDO
SCHEMAS
CREATE SCHEMA
Cria um schema
Atribui um ownership para o schema
Cria objetos de database como membros do schema
ALTER SCHEMA
Altera o ownership do schema
Move objetos de database entre schemas

DROP SCHEMA
Remove um schema

OBJECT NAMESPACE

Sales

Customer
LON-SQL-01

AdventureWorks

Servidor.BancoDados.Schema.Objeto

ATRIBUINDO DATABASE
OBJECTS
Sales
SELECT * FROM Customer

SELECT * FROM JobCandidate

SELECT * FROM
dbo.JobCandidate

Customer
dbo

[ WITH DEFAULT_SCHEMA = Sales ]


sys.database_principals catalog view
sys.schemas catalog view

JobCandidate

APPLICATION
COMPATIBILITY
Propriedade de Celia
Sales

App

SELECT CustomerID FROM


Sales.Customer

Customer

Alterando o proprietrio para Katia

Sales

App

SELECT CustomerID FROM


Sales.Customer

Customer

USURIOS

USURIOS
Acesso ao Banco de dados;
Pode ser mapeado para um login individual ou para um
grupo Windows; e
Pode ser criado pelo SSMS ou por T-SQL.
CREATE USER user_name
[{{ FOR | FROM }
{ LOGIN login_name | CERTIFICATE cert_name | ASYMMETRIC KEY
asym_key_name } | WITHOUT LOGIN ]
[ WITH DEFAULT_SCHEMA = schema_name ]

GERENCIANDO
USURIOS
Apagando um usurio:
DROP USER <user_name>

Alternado configuraes de um usurio:


ALTER USER <user_name> WITH
DEFAULT_SCHEMA = <nome_schema>

Permisso
CONTROL

ALTER

ALTER ANY
IMPERSONATE
TAKE OWNERSHIP

Componentes de
Segurana
Descrio
e Permisses
Atribui permisses de proprietrio e garante todas as
permisses ao principal no objeto
Atribui permisses de alterar, criar ou excluir a
qualquer
securable, menos trocar o proprietrio
Atribui permisso de alterao de qualquer securable
do tipo especificado.
Permisso de trocar o contexto de execuo para o
contexto de execuo de outro usurio
Atribui permisso ao usurio para assumir a
propriedade do securable

MDULOS DE
EXECUO PELO
CONTEXTO

INTRODUO
Configura a execuo pelo contexto de mdulos;

Caller no requer permisses:


Effective with broken ownership chain

EXECUTE AS:
Caller (Default)
Username (requer permisso Impersonate)
Self
Owner

PROCESSO DE EXECUO
PELO CONTEXTO
DENY SELECT ON
sales.customer TO
Bill

Bill

CREATE PROCEDURE GetCusts


WITH EXECUTE AS OWNER
AS
SELECT *
FROM sales.customer
Stored Procedure
(Owner: Jane)

sys.sql_modules catalog view

GRANT SELECT ON
sales.customer TO
Jane

Jane

sales.customer
(Owner:John)

PERMISSO GRANULAR
Securables organizados em uma hierarquia:
Herana de permisses.

Todos os objetos tem permisses associadas.

Principal de menor previlgio.

ESCOPOS DE
PERMISSES
Servidor:
O banco de dados Master dever ter permisses Grant; e
Permisses especfias para cada securable.
Database:
Pode atribuir permisses especficas para roles customizadas;
Permitir principals de executar tarefas no banco; e
Permisses Grant devero ser atribuidas ao banco que contm
o securable que quer aplicar a permisso.
Schema:
Usado para agrupar objetos de database; e
Atribuir permisses para o schema afeta os membros do
Schema.

ESCOPO SERVER

GRANT CONTROL ON
LOGIN::Tom TO Fred

Control permission on
individual login

Permisso GRANT em securables individuais quando as

permisses da server role default so inapropriadas.


sys.server_permissions catalog view.

ESCOPO BANCO DE
Sales
DADOS
Sales.AddOrder

Accounts
Accounts.AddAcct
GRANT EXECUTE
TO Jim

HR

Permisses herdadas
no banco de dados
sys.database_permissions catalog view

HR.ViewEmps

ESCOPO SCHEMA
sales.customers

Sales
sales.accounts

GRANT SELECT ON
SCHEMA::Sales TO Mary

Permisses herdadas no
schema

sales.figures

OBJETOS INDIVIDUAIS
sales.customers

sales.accounts

Sales.accounts

GRANT SELECT ON
sales.accounts TO Joe

Permisses somente para


objetos especficos

sales.figures

Você também pode gostar