Escolar Documentos
Profissional Documentos
Cultura Documentos
Controlar o acesso ao banco de dados; Fornecer acesso a objetos especficos do banco de dados; Os dados de uma determinada tabela devero estar acessveis para alguns usurios, mas no podero ser acessados por outros; Alguns usurios podem ter permisso para alterar dados em uma determinada tabela e outros podero apenas consult-la; Em algumas tabelas, pode ser necessrio restringir o acesso de algumas colunas;
2
Para sites de comrcio eletrnico; Para armazenar os dados do site de um banco; Para diversas aplicaes, como aplicaes financeiras, contbeis, etc; Para cadastro de alunos, disciplinas, turmas e notas em uma grande universidade ou escola.
Necessidade de SEGURANA. Alguns usurios podem no ter privilgios sobre determinados dados.
3
Controle de Acesso de Usurios Os exemplos apresentados neste material esto relacionados a caractersticas relacionadas ao SGBD SQL Server 2008, porm outros SGBDs existentes no mercado adotam regras similares.
LOGINS
O primeiro passo para que um usurio possa acessar o servidor SQL Server estabelecer uma conexo com uma instncia do servidor SQL Server. Para estabelecer uma conexo com uma instncia do servidor de banco de dados, necessrio que o usurio tenha um LOGIN com senha. Uma instncia em um SGBD como se fosse um servidor completamente independente, podendo oferecer um conjunto diferente de servios e configuraes. Cada instncia pode ter vrios databases. Uma instalao de SGBD pode conter vrias instncias de banco de dados. Durante a instalao de um SGBD, uma instncia do SGBD instalada.
5
LOGINS
O usurio com o login jsilva se conecta a uma instncia do SGBD. O usurio com o login maria no consegue se conectar instncia do SGBD.
LOGINS
O SGBD SQL Server 2008 permite que um usurio se conecte a uma instncia do banco de dados atravs das seguintes formas:
LOGINS
Quando uma instncia do SGBD SQL Server instalada criado o login SA (system administrator) que possui poderes totais sobre todos os objetos de uma instncia do SQL Server.
8
LOGINS
Para criar um login em uma instncia do SQL Server podemos utilizar o comando CREATE LOGIN:
Sintaxe simplificada: CREATE LOGIN <login> WITH PASSWORD = <senha> Exemplo: CREATE LOGIN tkautzmann WITH PASSWORD = '123456'
LOGINS
Ser possvel alterar a senha do login utilizando o comando ALTER LOGIN.
Exemplo: ALTER LOGIN tkautzmann WITH PASSWORD = 'tiago123'
10
LOGINS
Com um login, possvel se conectar uma instncia de um SGBD SQL Server, porm no ser possvel ainda se conectar a uma database. Para se conectar a um database disponvel em uma instncia, ser necessrio criar um usurio dentro da database, relacionando este usurio ao login. Os usurios pertencem aos databases. Um login pode ter vrios usurios em vrios databases.
11
USERS (USURIOS)
Um usurio de database criado utilizando o comando CREATE USER. Ao ser criado, um usurio (user) no possui nenhum privilgio. O DBA poder ento conceder vrios privilgios para o usurio. Estes privilgios determinam o que o user poder fazer no banco de dados.
Sintaxe simplificada: CREATE USER <usuario> FOR LOGIN <login>
Exemplo: USE REDE_BANCO CREATE USER tkautzmann FOR LOGIN tkautzmann
<usuario> o nome do usurio a ser criado na database. <login> especifica o login que ser relacionado ao usurio da database.
12
USERS (USURIOS)
Para eliminar um usurio, utiliza-se o comando DROP USER.
Exemplo: USE REDE_BANCO DROP USER tkautzmann
Segurana
Com a criao de um usurio pertencente a um database, e que est relacionado a um login de instncia do banco, j temos dois nveis de segurana:
Permisso para fazer conexo com uma instncia do servidor SQL Server; Permisso para acessar a database do usurio criado. Porm o usurio no poderia, ainda, manipular qualquer objeto da database. Para isso ser necessrio conceder privilgios ao user da database.
14
Segurana
Usurio com permisso para conexo com a instncia SGBD, com permisso do Banco de Dados CLIENTES, porm sem permisso na tabela PAGAMENTOS.
15
Privilgios
Privilgios fornecem a permisso para executar comandos em um database. O administrador do banco de dados (sa) um usurio de alto nvel com capacidade para conceder aos usurios acesso a um banco de dados e seus objetos.
Os usurios necessitam de privilgios de banco de dados para, por exemplo, criar tabelas, views e procedures e privilgios de objeto para manipular o contedo dos objetos do banco de dados (exemplo: select, insert, update, select, delete).
16
17
Privilgios de objetos
Principais privilgios (permisses) de objeto:
18
19
23
25
ROLES - Papis
Uma role (papel) um grupo nomeado de privilgios que podem ser concedidos ao usurio. Este mtodo torna a concesso e remoo de privilgios mais fcil de executar e manter. Um usurio pode ter acesso a vrias roles e vrios usurios podem ser associados mesma role.
role
26
ROLES - Papis
Primeiro necessrio criar uma role. Depois de criada, poderemos conceder (GRANT) privilgios role. Por final, poderemos atribuir membros (usurios) que recebero os mesmos privilgios concedidos role.
possvel revogar (REVOKE) privilgios de uma role.
27
db_accessadmin db_backupoperator
28
29
30
Adiciona o usurio luana role equipe_desenvolvimento exec sp_addrolemember equipe_desenvolvimento", "luana Adiciona o usurio tkautzmann role equipe_desenvolvimento exec sp_addrolemember 'equipe_desenvolvimento', 'tkautzmann' Adiciona o usurio tkautzmann role nativa db_owner exec sp_addrolemember db_owner', 'tkautzmann'
32
Remove o usurio luana da role equipe_desenvolvimento exec sp_droprolemember equipe_desenvolvimento", "luana Remove o usurio tkautzmann da role equipe_desenvolvimento exec sp_droprolemember equipe_desenvolvimento", tkautzmann"
33
34
Databases sys.databases
35
Referncias
Documentao do Microsoft SQL Server http://msdn.microsoft.com/pt-br/library/ms130214.aspx BATTISTI, Julio. SQL Server 2005 Administrao & Desenvolvimento. Rio de Janeiro:Editora Axcel, 2005. MANZANO, Jos Augusto N. G.. SQL Server 2005 Express Edition Interativo Guia Bsico. 2 Edio. Rio de Janeiro:Editora rica, 2007.
COSTA, Rogrio Lus de C.. SQL Guia Prtico. 2 Edio. Rio de Janeiro:Brasport, 2006.
36