sistemas de informação redes de computadores análise e desenvolvimento de sistemas
DESCRIPTION
Sistemas de Informação Redes de Computadores Análise e Desenvolvimento de Sistemas. Administração de Banco de Dados 1º Semestre – 2011 Pedro Antonio Galvão Junior E-mail: [email protected] Fone: 9531-7555 [email protected] Versão 1.11.02 – Fev/2011. SEGURANÇA NO - PowerPoint PPT PresentationTRANSCRIPT
Sistemas de InformaçãoSistemas de InformaçãoRedes de ComputadoresRedes de Computadores
Análise e Desenvolvimento de SistemasAnálise e Desenvolvimento de Sistemas
Administração de Banco de DadosAdministração de Banco de Dados1º Semestre – 20111º Semestre – 2011
Pedro Antonio Galvão JuniorPedro Antonio Galvão JuniorE-mail: [email protected] Fone: 9531-7555E-mail: [email protected] Fone: 9531-7555
[email protected]@aes.edu.br
Versão 1.11.02 – Fev/2011.Versão 1.11.02 – Fev/2011.
SEGURANÇA NO SEGURANÇA NO MICROSOFT SQL SERVER 2008MICROSOFT SQL SERVER 2008
OFERECENDO SEGURANÇAOFERECENDO SEGURANÇA
• Políticas de senhas no login de SQL Server
• Hierarquia dos escopos
• Separação de usuários do schema
• Limite de visualização dos metadados
• Execução pelo contexto
SEGURO POR DEFAULTSEGURO POR DEFAULT
• Serviços e features desligadas por padrão
• Permite somente conexão local
• Usa o SAC para habilitar/desabilitar as features
• Upgrade preserva as configurações
• Serviços e Features novas desabilitadas
• Usa o SAC para habilitar/desabilitar as features
Windows Server 2003 Windows Server 2003
SQL Server 2005SQL Server 2005
Windows Server 2003 Windows Server 2003
SQL Server 2000SQL Server 2000
MODELOS DE SEGURANÇA NOMODELOS DE SEGURANÇA NOMICROSOFT SQL SERVER 2008MICROSOFT SQL SERVER 2008
MECANISMOS DE SEGURANÇAMECANISMOS DE SEGURANÇA
• Autenticação
– Usuário e senha
– Certificados
• Autorização
– Permissões
• Criptografia
– Chaves Simétricas
– Chaves Assimétricas
COMPONENTES DE SEGURANÇACOMPONENTES DE SEGURANÇA
Principals• Windows
– Groups– Domain account– Local account
• SQL Server– SQL account– Server role
• Database– User– Database role– Application role– Group
SecurablesSecurables
Server ScopeServer Scope– LoginsLogins– EndpointsEndpoints– DatabasesDatabases
Database ScopeDatabase Scope– UsersUsers– AssembliesAssemblies– SchemasSchemas
Schema ScopeSchema Scope– TablesTables– ProceduresProcedures– ViewsViews
PermissionsPermissions
Grant/Revoke/DenyGrant/Revoke/Deny– Create– Alter– Drop– Control– Connect– Select– Execute– Update– Delete– Insert
Processo de Acesso SeguroProcesso de Acesso Seguro
Estabelecer loginEstabelecer login
Conexão ao servidor SQL ServerConexão ao servidor SQL Server
Verificar as permissões para todas as açõesVerificar as permissões para todas as ações
Pedido de conexão pela rede / pre-login handshakePedido de conexão pela rede / pre-login handshake
Autenticação do Login no SQL ServerAutenticação do Login no SQL Server
Acesso ao databaseAcesso ao database
Tentar realizar alguma açãoTentar realizar alguma ação
Estabelecer acesso ao database Estabelecer acesso ao database
POLÍTICA DE SENHASPOLÍTICA DE SENHAS
• Requer Windows Server 2003.
• Autenticação Windows:
– Login de usuários Windows
– Respeita a política de senhas do Windows
• Autenticação SQL Server:
– Logins SQL Server
– Respeita a política de senhas da máquina local.
– Política de Domínio se estiver em um ambiente de Domínio
– sys.sql_logins catalog view
CRIANDO LOGINSCRIANDO LOGINS
Configuração Configuração da Politica de da Politica de
SenhasSenhas
CREATE LOGIN login_name { WITH < option_list1 > | FROM < sources > }< sources >::= WINDOWS [ WITH windows_options [,...] ] | CERTIFICATE certname | ASYMMETRIC KEY asym_key_name< option_list1 >::= 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
Configuração Configuração da Politica de da Politica de
SenhasSenhas
CRIANDO LOGINSCRIANDO LOGINS
OPÇÕES DE LOGINOPÇÕES DE LOGIN
Opção Descrição
HASHED Especifica que a senha já está criptografada
MUST_CHANGE
Avisa o usuário que precisa mudar a senha. Precisa
de CHECK_EXPIRATION e CHECK_POLICY habilitado
CHECK_EXPIRATIONExpiração de senhas. Se estiver ON, as políticas são
Aplicadas e requer que CHECK_POLICY esteja ON
CHECK_POLICY Faz a checagem das políticas de senha
Usa a API NetValidatePasswordPolicy() do Windows Server 2003
GERENCIANDO LOGINSGERENCIANDO LOGINS
Removendo um Login
DROP LOGIN <Login_name>
Alterando um Login
ALTER LOGIN <login_name> WITH
PASSWORD = '3948wJ698FFF7'
CREDENCIAISCREDENCIAIS
• Alternativa aos logins.
• Permitem conexão a recursos fora do SQL Server.
CREATE CREDENCIAL <nome> WITH IDENTITY = ‘identity name’, SECRET = ‘secret’
SCHEMAS DE SEGURANÇASCHEMAS DE SEGURANÇA
DEFAULT SCHEMADEFAULT SCHEMA
CREATE USER user_name[ FOR {LOGIN login_name
| CERTIFICATE cert_name| ASYMMETRIC KEY asym_key_name}
][ WITH DEFAULT_SCHEMA = schema_name ]
• Um schema default pode ser atribuido quando o usuário do banco de dados é
criado.
Especifica o schema Especifica o schema defaultdefault
GERENCIANDO SCHEMASGERENCIANDO 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 NAMESPACEOBJECT NAMESPACE
Sales
CustomerAdventureWorksLON-SQL-01
Servidor.BancoDados.Schema.ObjetoServidor.BancoDados.Schema.Objeto
ATRIBUINDO DATABASE OBJECTSATRIBUINDO DATABASE OBJECTSSales
Customer
dbo
JobCandidate
[ WITH DEFAULT_SCHEMA = Sales ]
SELECT * FROM dbo.JobCandidate
SELECT * FROM JobCandidate
SELECT * FROM Customer
• sys.database_principals catalog view
• sys.schemas catalog view
APPLICATION COMPATIBILITYAPPLICATION COMPATIBILITYPropriedade de Celia
Customer
AppApp
Alterando o proprietário para Katia
SELECT CustomerID FROM Sales.Customer
AppAppSELECT CustomerID FROM Sales.Customer
Sales
Customer
Sales
USUÁRIOSUSUÁRIOS
USUÁRIOSUSUÁRIOS
• 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 USUÁRIOSGERENCIANDO USUÁRIOS
Apagando um usuário:
DROP USER <user_name>
Alternado configurações de um usuário:
ALTER USER <user_name> WITH
DEFAULT_SCHEMA = <nome_schema>
Componentes de Segurança Componentes de Segurança e Permissõese Permissões
Permissão Descrição
CONTROLAtribui permissões de proprietário e garante todas as
permissões ao principal no objeto
ALTER
Atribui permissões de alterar, criar ou excluir a qualquer
securable, menos trocar o proprietário
ALTER ANYAtribui permissão de alteração de qualquer securable
do tipo especificado.
IMPERSONATEPermissão de trocar o contexto de execução para o
contexto de execução de outro usuário
TAKE OWNERSHIPAtribui permissão ao usuário para assumir a
propriedade do securable
MÓDULOS DE EXECUÇÃO MÓDULOS DE EXECUÇÃO PELO CONTEXTOPELO CONTEXTO
INTRODUÇÃOINTRODUÇÃO
• Configura a execução pelo contexto de módulos;
• Caller não requer permissões:
– Effective with broken ownership chain
• EXECUTE AS:
– Caller (Default)
– Username (requer permissão Impersonate)
– Self
– Owner
GRANT SELECT ON sales.customer TO Jane
GRANT SELECT ON sales.customer TO Jane
PROCESSO DE EXECUÇÃO PELO PROCESSO DE EXECUÇÃO PELO CONTEXTOCONTEXTO
Stored Procedure(Owner: Jane)
Stored Procedure(Owner: Jane)
BillBillsales.customer(Owner:John)
sales.customer(Owner:John)
CREATE PROCEDURE GetCustsWITH EXECUTE AS OWNERASSELECT *FROM sales.customer
CREATE PROCEDURE GetCustsWITH EXECUTE AS OWNERASSELECT *FROM sales.customer
• sys.sql_modules catalog view
JaneJane
DENY SELECT ON sales.customer TO Bill
DENY SELECT ON sales.customer TO Bill
PERMISSÃO GRANULAR PERMISSÃO GRANULAR
• Securables organizados em uma hierarquia:
– Herança de permissões.
• Todos os objetos tem permissões associadas.
• Principal de menor previlégio.
ESCOPOS DE PERMISSÕESESCOPOS DE PERMISSÕES• Servidor:
– O banco de dados Master deverá ter permissões Grant; e– Permissões específias para cada securable.
• Database:– Pode atribuir permissões específicas para roles customizadas;– Permitir principals de executar tarefas no banco; e– Permissões Grant deverão ser atribuidas ao banco que contém o securable que
quer aplicar a permissão.
• Schema:– Usado para agrupar objetos de database; e– Atribuir permissões para o schema afeta os membros do Schema.
ESCOPOESCOPO SERVERSERVER
GRANT CONTROL ON LOGIN::Tom TO Fred
GRANT CONTROL ON LOGIN::Tom TO Fred
• Permissão GRANT em securables individuais quando as
permissões da server role default são inapropriadas.
• sys.server_permissions catalog view.
Control permission on individual login
Control permission on individual login
Accounts
HR
SalesESCOPO BANCO DE DADOSESCOPO BANCO DE DADOS
GRANT EXECUTE TO Jim
GRANT EXECUTE TO Jim
Accounts.AddAcct Accounts.AddAcct
HR.ViewEmpsHR.ViewEmps
Sales.AddOrderSales.AddOrder
• sys.database_permissions catalog view
Permissões herdadas no banco de dados
ESCOPO SCHEMAESCOPO SCHEMA
GRANT SELECT ON SCHEMA::Sales TO Mary
GRANT SELECT ON SCHEMA::Sales TO Mary
Sales
Permissões herdadas no schema
sales.accountssales.accounts
sales.figuressales.figures
sales.customerssales.customers
OBJETOS INDIVIDUAISOBJETOS INDIVIDUAIS
GRANT SELECT ON sales.accounts TO JoeGRANT SELECT ON
sales.accounts TO Joe
sales.accountssales.accounts
sales.figuressales.figures
sales.customerssales.customers
Permissões somente para objetos específicos
Sales.accounts