Veja neste artigo conceito e as diferenças entre Logins, Usuários e o que seriam Papeis e Permissões, este artigo será o primeiro de uma serie de dois, neste, serão apresentados conceitos sobre os assuntos, já no segundo será apesentado de forma mais pratica com alguns exemplos.

O que é Login?

É um objeto que dá acesso a instância do SQL Server, ou seja, o Login é único e exclusivo da instância. Logins podem ser criados através do SSMS (SQL Server Management Studio) ou Transact-SQL. Existem dois tipos de Logins: Windows e SQL Server.

O que Usuário?

É um objeto que dá acesso ao banco de dados. Usuários também são criados através do SSMS (SQL Server Management Studio) ou Transact-SQL.

Obs: o Login e o Usuário podem ou não serem vinculados, isso vai depender de qual forma você quer trabalhar, para ser mais claro um usuário sempre vai ter vinculo com um Login por isso um Usuário é uma vinculação entre um Login e um banco de dados.

Um ponto importante e que não deve esquecer que, quando se trabalha com Logins e Usuário deve-se realmente ter a atenção com realação a segurança, principalmente com relação aos dados e a instância.

Funções de Servidor (Papeis de Servidor)

Funções de servidor funciona dando permissões e acessos as funcionalidades no nível da instancia. São ligados a um Login. Ele garante recursos de administração de servidor.

Segue abaixo a lista de cada função de servidor:

Bulkadmin: função para realizar inserções em massa no banco de dados, podem adicionar membros em bulkadmin e executar as instruções BULK INSERT.

dbcreator: função para usuários que precisam criar, modificar, eliminar e restaurar banco de dados, os membros desta função podem adicionar membros em dbcreator e executar os seguintes comandos: ALTER DATABASE, CREATE DATABASE, DROP DATABASE, EXTEND DATABASE, RESTORE DATABASE e RESTORE LOG.

diskamin: função para para gerenciar arquivos de disco, podem adicionar membros em diskadmin e usar os comandos: sp_addumpdevice e sp_dropdevice.

processadmin: função para controlar processos do SQL Server, podem adicionar membros para processadmin e eliminar processos.

securityadmin: função para gerenciar logins, permissões de banco de dados e ler log de erros, podem adicionar membros para securityadmin: conceder, negar e revogar permissões em nível de servidor e de banco de dados, podem também executar: sp_addlinkedsrvlogin, CREATE LOGIN, ALTER LOGIN, DROP LOGIN, sp_droplinkedsrvlogin, GRANT CONNECT, DENY CONNECT, sp_helplogins e sp_moteoption.

serveradmin: função para definir opções de configuração em nível do servidor e encerrar o servidor, podem adicionar membros para serveradmin e executam as tarefas: DBCC FREEPROCCACHE, RECONFIGURE, SHUTDOWN, sp_configure, sp_full_text_service e sp_tableoption.

setupadmin: função para gerenciar servidores vinculados e controlar procedimentos de inicialização, podem adicionar membros em setupadmin e também podem adicionar, eliminar e configurar servidores vinculados, controlar procedimentos de inicialização.

sysadmin: essa função tem controle total sobre o SQL Server, podem executar qualquer tarefa.

Funções de banco de dados (Papeis de Banco de Dados)

“São um conjunto de permissões pré-estabelecidas que definem o acesso a Logins e Usuários a objetos e funcionalidades do servidor de dados, chamados de Roles”, quando queremos atribuir permissões no nível de banco de dados, devemos usar as Funções de banco de dados.

Vou mostrar agora as funções de banco de dados predefinidas:

Public: é a função padrão de todos os usuários de banco de dados. Essa função fornece o mínimo de permissões e privilégios.

db_accessadmin: é a função que tem permissão para adicionar ou remover logins em um banco de dados.

db_backupoperator: com o próprio nome sugere, é a função que dá permissão para fazer backups.

db_datareader: essa função é apenas para leitura de dados, apenas faz SELECT nas tabelas do banco de dados

db_datawriter: função pra adicionar, modificar e apagar dados; INSERT, UPDATE e DELETE.

db_ddladmin: função para usuários que desejam executar tarefas relacionadas a linguagem de definição de dados (DDL), podem ser executados qualquer comando DDL menos GRANT, REVOKE ou DENY.

db_denydatareader: função para restringir o acesso aos dados, não podem fazer a leitura de dados.

db_denydatawriter: função para restringir as permissões de modificação do banco de dados pelo login, essa função não INSERE, DELETA ou ATUALIZA dados.

db_owner: muito cuidado ao atribuir essa função de banco a um ou mais usuários, ela detem todo o poder a nível de banco de dados, são elas: atribuir permissões, modificar configurações de banco de dados, realizar manutenção de banco de dados, realizar qualquer outra tarefa de administração no banco de dados, incluindo eliminar o banco de dados.

db_securityadmin: função para gerenciar permissões, posse de objetos e funções.

dbm_monitor: função para monitorar o status atual do espelhamento de banco de dados.

Permissões

O SQL Server possui 3 comandos relacionados a permissões:

GRANT: concede permissão para executar a tarefa relacionada.

DENY: nega permissão para executar tarefas.

REVOKE: remove a permissão GRANT mas não impede explicitamente que um usuário ou uma função execute uma tarefa.

Com essas informações vamos para o passo seguinte, no SQL Server a configuração de permissões envolve três partes:

PRINCIPAL: aqui você irá colocar qual Login, Usuário ou Papel que receberá permissão

SECURABLE: objeto o qual o PRINCIPAL terá acesso, de acordo com o conjunto de permissões definidas.

PERMISSION: conjunto de permissões que definem quais opções o PRINCIPAL poderá realizar o SECURABLE.

Para maiores detalhes acesse:

http://msdn.microsoft.com/pt-br/library/aa337562.aspx

Com isso concluo a primeira parte deste artigo, espero que o conhecimento apresentado seja de grande valia. Obrigado e até o próximo artigo.