none
Restringir acessos de usuários a funções administrativas no SQL 2005 RRS feed

  • 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

    sábado, 3 de maio de 2014 14:58

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 Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    segunda-feira, 5 de maio de 2014 14:15

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.

    sábado, 3 de maio de 2014 16:20
  • 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.

    sábado, 3 de maio de 2014 16:24
  • 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


    domingo, 4 de maio de 2014 18:07
  • 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 Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    segunda-feira, 5 de maio de 2014 14:15