360 likes | 460 Views
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: pedrogalvaojunior@gmail.com Fone: 9531-7555 pedro.galvao@aes.edu.br Versão 1.11.02 – Fev/2011. SEGURANÇA NO
E N D
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: pedrogalvaojunior@gmail.com Fone: 9531-7555 pedro.galvao@aes.edu.br Versão 1.11.02 – Fev/2011.
SEGURANÇA NO MICROSOFT SQL SERVER 2008
Oferecendo 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 default Windows Server 2003 SQL Server 2005 • 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 SQL Server 2000
MODELOS DE SEGURANÇA NO MICROSOFT SQL SERVER 2008
Mecanismos de Segurança • Autenticação • Usuário e senha • Certificados • Autorização • Permissões • Criptografia • Chaves Simétricas • Chaves Assimétricas
ComponentesdESegurança Principals • Windows • Groups • Domain account • Local account • SQL Server • SQL account • Server role • Database • User • Database role • Application role • Group • Securables • Server Scope • Logins • Endpoints • Databases • Database Scope • Users • Assemblies • Schemas • Schema Scope • Tables • Procedures • Views • Permissions • Grant/Revoke/Deny • Create • Alter • Drop • Control • Connect • Select • Execute • Update • Delete • Insert QUEM PODE ACESSAR O QUE
Conexão ao servidor SQL Server Estabelecer login Estabelecer acesso ao database Verificar as permissões para todas as ações Processo de AcessoSeguro Pedido de conexão pela rede / pre-login handshake Autenticação do Login no SQL Server Acesso ao database Tentar realizar alguma ação
Polí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 Logins Configuração da Politica de Senhas
Criando Logins 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 da Politica de Senhas
OPÇÕES DE LOGIN 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 conexão a recursos fora do SQL Server. CREATE CREDENCIAL <nome> WITH IDENTITY = ‘identity name’, SECRET = ‘secret’
Default Schema • Um schema default pode ser atribuido quando o usuário 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
Servidor.BancoDados.Schema.Objeto Object Namespace Sales Customer AdventureWorks LON-SQL-01
Sales Customer Atribuindo Database Objects • sys.database_principals catalog view • sys.schemas catalog view SELECT * FROM Customer SELECT * FROM JobCandidate dbo SELECT * FROM dbo.JobCandidate [ WITH DEFAULT_SCHEMA = Sales ] JobCandidate
Application Compatibility Propriedade de Celia Sales SELECT CustomerID FROM Sales.Customer App Customer Alterando o proprietário para Katia Sales SELECT CustomerID FROM Sales.Customer App Customer
Usuá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á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>
Introduçã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
Processo de ExecuçãopeloContexto • sys.sql_modules catalog view DENY SELECT ON sales.customer TO Bill GRANT SELECT ON sales.customer TO Jane CREATE PROCEDURE GetCusts WITH EXECUTE AS OWNER AS SELECT * FROM sales.customer Bill Jane sales.customer (Owner:John) Stored Procedure (Owner: Jane)
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õ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.
EscopoServer • 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 GRANT CONTROL ON LOGIN::Tom TO Fred
Accounts HR Sales EscopoBanco de dados Sales.AddOrder • sys.database_permissions catalog view Accounts.AddAcct GRANT EXECUTE TO Jim Permissões herdadas no banco de dados HR.ViewEmps
Sales Escopo Schema sales.customers sales.accounts GRANT SELECT ON SCHEMA::Sales TO Mary sales.figures Permissões herdadas no schema
ObjetosIndividuais sales.customers sales.accounts GRANT SELECT ON sales.accounts TO Joe Sales.accounts sales.figures Permissões somente para objetos específicos