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: 9531-7555 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 SQL Server 2005

Servios e features desligadas por padro Permite somente conexo local Usa o SAC para habilitar/desabilitar as features

Upgrade preserva as configuraes

Windows Server 2003 SQL Server 2000

Servios e Features novas desabilitadas


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

Permissions Grant/Revoke/Deny
Create Alter Drop Control Connect Select Execute Update Delete Insert

Securables Server Scope


Logins Endpoints Databases Users Assemblies Schemas

SQL Server
SQL account Server role

Database Scope

Database
User Database role Application role Group

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 Avisa o usurio que precisa mudar a senha. Precisa de CHECK_EXPIRATION e CHECK_POLICY habilitado Expirao de senhas. Se estiver ON, as polticas so Aplicadas e requer que CHECK_POLICY esteja ON Faz a checagem das polticas de senha

MUST_CHANGE

CHECK_EXPIRATION

CHECK_POLICY

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 name, SECRET = secret

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

Customer dbo

SELECT * FROM dbo.JobCandidate

[ WITH DEFAULT_SCHEMA = Sales ]


JobCandidate

sys.database_principals catalog view


sys.schemas catalog view

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>

Componentes de Segurana e Permisses


Permisso
CONTROL

Descrio 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

ALTER

ALTER ANY
IMPERSONATE

Atribui permisso ao usurio para assumir a TAKE OWNERSHIP 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 GRANT SELECT ON sales.customer TO Jane

Bill

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

Jane

sales.customer (Owner:John)

sys.sql_modules catalog view

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 DADOS Sales


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