Usuário com melhor resposta
Como evitar que um usuáriol iste somente o banco de dados que tem permissão, através do Sql Managment Studio

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
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- Marcado como Resposta Junior Galvão - MVPMVP, Moderator sábado, 14 de fevereiro de 2015 16:57
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- Sugerido como Resposta Junior Galvão - MVPMVP, Moderator sábado, 14 de fevereiro de 2015 16:57
-
-
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 -
-
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 -
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- Marcado como Resposta Junior Galvão - MVPMVP, Moderator sábado, 14 de fevereiro de 2015 16:57