Usuário com melhor resposta
Restringir acessos de usuários a funções administrativas no SQL 2005

Pergunta
-
Olá Pessoal da Comunidade SQL Server.
Sou novo na Comunidade e estou com a seguinte dúvida. Estou usando uma VM com SO (Windows Server 2008 R2 Enterprise) e (SQL Server 2005 Enterprise).
Fiz a configuração da instância em modo misto e criei alguns logins para implementar rotinas de segurança. Por exemplo, tenho um usuário que só pode enxergar as tabelas do banco de dados NORTHWIND com a função SELECT e outro usuário que só pode criar PROCEDURES ou VIEWS.
A primeira parte que não entendi foi depois de criar os usuários e adicioná-los ao banco de dados NORTHWIND não defini nenhuma role, permissão, etc. e todos os usuários já conseguem se conectar ao banco de dados com todas as funções administrativas criadas. Então vem a primeira pergunta. É possível criar um login e definir que ele pode somente se conectar ao banco de dados? Não quero que ele enxergue nada da console do SQL.
A segunda parte seria o início da liberação dos acessos. Imagino um gerenciamento complicado de muitos usuários, tendo que adicionar e remover eles de bancos de dados, conceder, revogar e negar permissões. Acredito que usar o conceito de roles e aplicar estas regras em roles seja o mais sensato.
Estou lendo o material da Microsoft e pesquisei muito na Internet antes vir aqui e perguntar isso a vocês. Então peço a ajuda e opiniões sobre como implementar uma segurança mais forte no SQL sem que os usuários apenas operacionais tenham acesso a recursos da console do SQL Server Studio Management.
Obrigado.
Rafael Felix
Respostas
-
Olá Jean!
Gostaria de agradecer pelo tempo que dedicou na resposta. Mas o meu objetivo não é esse. Deixe-me tentar explicar melhor. Quando abrimos o SQL Server Management Studio um Administrador do Servidor e/ou do Banco de Dados consegue visualizar todos os recursos do SQL.
Imagine um estagiário tendo acesso aos backups, logs, todas as tabelas, etc. Mas imagine que este estagiário tem a simples tarefa de criar logins e precisei instalar o SQL Server Management Studio na máquina dele. Eu gostaria de saber se existe uma configuração que ele só enxergue isto. Lembrando que é um exemplo, porque estou apenas estudando o SQL Server.
Então pergunto é possível fazer isso?
Obrigado pela ajuda.
Rafael Felix
Rafael,
Alguns objetos você pode inibir a visualização, revogando o acesso do "login" para algumas propriedades de sua instância SQL. Outros objetos você não vai conseguir inibir a visualização dos "estagiários" mas você pode revogar/negar este acesso.
No caso de backup's, checkpoint's e outras tarefas administrativas relacionadas diretamente a um banco de dados, você deverá revogar o acesso do "user" em cada banco de dados que deseja inibir estas ações para cada usuário e/ou grupo de usuários.
Veja abaixo o acesso negado para algumas propriedades de um "login" na instância SQL:
Veja abaixo o acesso negado para algumas propriedades de um "user" em um banco de dados:
Para maiores informações sobre GRANT, REVOKE e DENY, veja os links abaixo:
http://technet.microsoft.com/pt-br/library/ms191291.aspx
http://technet.microsoft.com/pt-br/library/ms188371.aspx
http://technet.microsoft.com/pt-br/library/ms187719.aspx
http://technet.microsoft.com/pt-br/library/ms173724.aspx
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval RamosMicrosoft Partner | MTA | MCSA - SQL Server 2012---------------------------------- Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Marcado como Resposta Junior Galvão - MVPMVP, Moderator quarta-feira, 7 de maio de 2014 14:01
Todas as Respostas
-
Bom dia Rafael
Tenta fazer assim:
Tenta usar uma trigger de logon (http://msdn.microsoft.com/en-us/library/bb326598.aspx) para testar que aplicação está acessando o banco. Se for a que você quer banir, então não permita o acesso. Se for a que você quer pemitir libera o acesso.
Acho que isso vai resolver.
Espero ter ajudado !
Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Rafael
Segue mais um link bem interessante que usei quando precisei fazer algo do tipo..
http://www.simple-talk.com/sql/t-sql-programming/logon-triggers/
Cuidado, pois você pode se bloquear ai so conectando via DAC.
Bons Estudos !
Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Olá Jean!
Gostaria de agradecer pelo tempo que dedicou na resposta. Mas o meu objetivo não é esse. Deixe-me tentar explicar melhor. Quando abrimos o SQL Server Management Studio um Administrador do Servidor e/ou do Banco de Dados consegue visualizar todos os recursos do SQL.
Imagine um estagiário tendo acesso aos backups, logs, todas as tabelas, etc. Mas imagine que este estagiário tem a simples tarefa de criar logins e precisei instalar o SQL Server Management Studio na máquina dele. Eu gostaria de saber se existe uma configuração que ele só enxergue isto. Lembrando que é um exemplo, porque estou apenas estudando o SQL Server.
Então pergunto é possível fazer isso?
Obrigado pela ajuda.
Rafael Felix
- Editado Rafael Pereira Felix domingo, 4 de maio de 2014 18:11
-
Olá Jean!
Gostaria de agradecer pelo tempo que dedicou na resposta. Mas o meu objetivo não é esse. Deixe-me tentar explicar melhor. Quando abrimos o SQL Server Management Studio um Administrador do Servidor e/ou do Banco de Dados consegue visualizar todos os recursos do SQL.
Imagine um estagiário tendo acesso aos backups, logs, todas as tabelas, etc. Mas imagine que este estagiário tem a simples tarefa de criar logins e precisei instalar o SQL Server Management Studio na máquina dele. Eu gostaria de saber se existe uma configuração que ele só enxergue isto. Lembrando que é um exemplo, porque estou apenas estudando o SQL Server.
Então pergunto é possível fazer isso?
Obrigado pela ajuda.
Rafael Felix
Rafael,
Alguns objetos você pode inibir a visualização, revogando o acesso do "login" para algumas propriedades de sua instância SQL. Outros objetos você não vai conseguir inibir a visualização dos "estagiários" mas você pode revogar/negar este acesso.
No caso de backup's, checkpoint's e outras tarefas administrativas relacionadas diretamente a um banco de dados, você deverá revogar o acesso do "user" em cada banco de dados que deseja inibir estas ações para cada usuário e/ou grupo de usuários.
Veja abaixo o acesso negado para algumas propriedades de um "login" na instância SQL:
Veja abaixo o acesso negado para algumas propriedades de um "user" em um banco de dados:
Para maiores informações sobre GRANT, REVOKE e DENY, veja os links abaixo:
http://technet.microsoft.com/pt-br/library/ms191291.aspx
http://technet.microsoft.com/pt-br/library/ms188371.aspx
http://technet.microsoft.com/pt-br/library/ms187719.aspx
http://technet.microsoft.com/pt-br/library/ms173724.aspx
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval RamosMicrosoft Partner | MTA | MCSA - SQL Server 2012---------------------------------- Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Marcado como Resposta Junior Galvão - MVPMVP, Moderator quarta-feira, 7 de maio de 2014 14:01