none
Como evitar que um usuáriol iste somente o banco de dados que tem permissão, através do Sql Managment Studio RRS feed

  • Pergunta

  • Caros,

     

    Criei um banco de dados chamado "npteste" em uma instancia do SQL Server 2008. O usuário para este banco chama-se "user_npteste".

    Porém, quando acesso o banco remotamente pelo SQL Management Studio, consigo visualizar todos os bancos do servidor. Não consigo acessá-los, somente visualizá-los.

    Gostaria de saber se há alguma maneira de permitir que qua cada usuário visualize somente a base de dados que tem permissão para o mesmo.

    Por exemplo, quero acessar com o usuário "user_npteste" e visualizar somente a base "npteste".

    Fico no aguardo!!

    Obrigado

    segunda-feira, 28 de novembro de 2011 16:22

Respostas

  • Kleber,

    Verifiquei que se realizarmos apenas o mapeamento da base necessária para um respectivo usuário no SQL Server 2005/2008, porém, se acessarmos essa instância através do QA do SQL Server 2000, o usuário só visualiza a base que foi mapeada pra ele, ou seja, não sei se a partir da versão 2005, as configurações de segurança permitam fazer que, quando o usuário acesse a instância do 2005/2008 através do SSMS, ele visualize apenas a base que foi mapeada pra ele (que ele deve visualizar).

     

     

     


    Att, Alan Roberto Analista de Sistemas
    terça-feira, 29 de novembro de 2011 19:43

Todas as Respostas

  • Kleber,

     

    Segue step by step:

    Security -> Logins -> Ache o login dele e va em propriedades -> Securables -> Search -> "The server Nome do seu servidor", aqui vai abrir uma lista abaixo -> Busque por: "View any database" e de um check em Deny.


    Fabrizzio A. Caputo
    MCT
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    segunda-feira, 28 de novembro de 2011 17:01
    Moderador
  • Obrigado pela dica Fabrizzio,

     

    Realizei procedimento, porém agora, não visualizo nem a base que o "user_npteste" deveria visualizar.

    segunda-feira, 28 de novembro de 2011 17:14
  • Kleber,

     

    Pelo que entendi da sua necessidade, vá apenas em secury > Logins >, clique em propriedades do login "user_npteste", na árvore de opções à esquerda, selecione "User Mapping", em seguida mapei apenas a base necessária para o usuário em questão, com isso, o usuário quando conectar o banco através do SQL Server Management Studio, o mesmo até visualizará o nome das outras databases, porém, só poderá lista a database que você mapeou para ele.

     

     


    Att, Alan Roberto Analista de Sistemas
    segunda-feira, 28 de novembro de 2011 19:29
  • Alan,

     

     

    Eu fiz este procedimento. Ma eu realmente preciso que o usuário visualize somente o banco que ele tem permissão de acesso.

    segunda-feira, 28 de novembro de 2011 19:37
  • Alan,

     

     

    Eu fiz este procedimento. Ma eu realmente preciso que o usuário visualize somente o banco que ele tem permissão de acesso.


    Kleber,

     

    Então, antes de tentar te ajudar, eu criei um usuário de teste em meu ambiente e tentei várias combinações de configurações de segurança (roles de dabase, roles de servidor e etc), porém, em nenhuma delas eu consegui obter êxite para chegar no ambiente que gostaria, porém, acredito que seja sim possível chegar no cenáro do usuário só visualizar uma determinada "database user".

    Obs.: Agora estou no mesmo barco que você. Vamos ficar no aguardo pra algum brother nos ajudar a sanar essa dúvida.


    Att, Alan Roberto Analista de Sistemas
    segunda-feira, 28 de novembro de 2011 19:45
  • Kleber,

    Verifiquei que se realizarmos apenas o mapeamento da base necessária para um respectivo usuário no SQL Server 2005/2008, porém, se acessarmos essa instância através do QA do SQL Server 2000, o usuário só visualiza a base que foi mapeada pra ele, ou seja, não sei se a partir da versão 2005, as configurações de segurança permitam fazer que, quando o usuário acesse a instância do 2005/2008 através do SSMS, ele visualize apenas a base que foi mapeada pra ele (que ele deve visualizar).

     

     

     


    Att, Alan Roberto Analista de Sistemas
    terça-feira, 29 de novembro de 2011 19:43