domingo, 23 de setembro de 2012

Usuários no SQL 2008 R2

Olá Pessoal, tudo bem ?

Tive uma aula sobre usuários do SQL e gostei do tema, vou tentar explicar de forma simples, para que serve cada usuário !

Então...,

Inicie seu SQL Management Studio



Em object Explorer vá em Security \ Logins e clique com o botão Direito no mouse e selecione New Login...


Aqui Temos Login name, onde podemos criar um usuário do SQL ou dentro do Domínio clicando em Search (Aqui é interessante vc ter um grupo dentro do Active Directory, Exemplo: você tem uma equipe que só faz backup então você cria esse grupo no Active Directory com o nome de Backup(exemplo) e coloca dentro desse grupo os Usuários da equipe backup =]).

Voltando, em Login name:



Repare que na frente temos Search, clicando ali podemos buscar um determinado Usuário no Domínio,
ou um outro usuário do windows(quem que não tem um desk ai com dois ou mais users ¬¬"),

No Meu caso não estou em um Domínio e sim em um Desktop Local, então digite um Login/Senha para seu Novo Usuário e altere de Windows Authentication para SQL Sever authentication, Será o SQL que ira gerenciar essa conta e não o Windows...



Agora clique em Select a page, selecione Server Roles, aqui temos as Roles padrão do SQL que não podem ser excluídas, quando criamos um Usuário devemos atrelar a ele uma Roles ao seu perfil de trabalho, portanto deve ser analisado com cuidado e selecionado a qual será concedida a esse usuário, ta mais e ai pra que serve cada Roles ?



  • bulkadmin -- Executa Processo de BULK INSERT (Exporta Arquivos txt para outro lugar (dados))
  • dbcreator -- Cria e altera qualquer database
  • diskadmin -- Gerencia os arquivos no Disco.
  • processadmin -- Administra os processos executados no SQL.
  • public -- Somente visualiza.
  • securityadmin -- Administra os Users(Logins) e consegue criar auditorias.
  • serveadmin -- Configura todas as opções e funções do servidor, inclusive consegue um shutdow!
  • setupadmin -- Configura replicações e etc...
  • sysadmin -- Consegue fazer oque quiser no SQL é um SA, então cuidado com essa Permissão.


"Diz a lenda que tem algumas criaturas ao criar o usuário seleciona SYSADMIN só para garantir rsrs,
Exemplo, se seu usuário ira somente criar algumas DB, pra que você vai selecionar SYSADMIN  e DBCREATOR ??????? não utilize SYSADMIN dessa maneira, seja cauteloso, a não ser que seu Gerente vier com aqueles papos que ele precisa que o user seja admin e tal bla bla bla..., então documente manda assinar enfim faça tudo que tire o seu da reta e manda bala, se não a vaca vai pro brejo cantando macarena *rsrs!"
*Voltando.....

Nosso User somente ira criar/alterar Database, então selecione dbcreator e só[*rs], relaxa que public por default fica selecionado ! =]


Agora em Select a pager selecione User Mapping,


Essa parte eu acho a mais interessante, aqui conseguimos determinar quais as Database que o User terá acesso e oque ele conseguira fazer nela, observe as Roles nível Database,

  • db_accessadmin -- Controla os acessos do Windows, Grupos do Windows e do SQL
  • db_backupoperator -- Faz backup do BD.
  • db_datareader -- Apenas SELECT (leitura do BD)
  • db_datawriter -- Consegue alterar, excluir, adicionar dados em todas as tabelas de usuários.
  • db_ddladmin -- (DDL-Data Definition Language) Executa qualquer comando dentro do BD.
  • db_denydatareader -- Não lê as tabelas dos usuários dentro de um BD.(Negação)
  • db_denydatawriter -- não consegue alterar, excluir, adicionar dados em todas as tabelas de usuários.(Negação)
  • db_owner -- Consegue executar todas as configurações e manutenção de BD.(Cuidado com essa opção)
  • db_securityadmin --  Pode modificar a associação de função e gerenciar permissões.


Agora que sei para que serve as Roles Nível Database, vou colocar meu User para Efetuar somente leitura dos BD.

Então selecione a Database e escolha a permissão que dará a ele, no caso db_datareader, Clique em Ok e Pronto, agora Ao iniciar o Management Studio em Authentication coloque SQL Server Authentication.

Galera espero ter ajudado em 0,01%!

Abraço a todos!

Att.,
Diego Campos.
DBA Brazil-SQL
23-09-12


Nenhum comentário:

Postar um comentário