Sistemas de Informação Redes de Computadores Análise e Desenvolvimento de Sistemas

Post on 04-Jan-2016

21 views 1 download

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: pedrogalvaojunior@gmail.com Fone: 9531-7555 pedro.galvao@aes.edu.br Versão 1.11.02 – Fev/2011. SEGURANÇA NO - PowerPoint PPT Presentation

Transcript of Sistemas de Informação Redes de Computadores Análise e Desenvolvimento de Sistemas

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: pedrogalvaojunior@gmail.com Fone: 9531-7555E-mail: pedrogalvaojunior@gmail.com Fone: 9531-7555

pedro.galvao@aes.edu.brpedro.galvao@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