限制用户查看/访问默认数据库

时间:2016-07-29 13:46:26

标签: sql sql-server ms-word ssms

我在SQL Server Management Studio中设置了一个用户,该用户设置了用户映射,因此他们只能访问' ReportServer'数据库。

当我通过MS Word连接到我的SQL Server时,我可以使用以下选项连接数据库:

enter image description here

我不希望此用户有权访问,甚至无法查看master,tempdb或msdb数据库,并且我没有在此用户的用户映射中选择它们。如何设置以便用户无法看到这些数据库?

1 个答案:

答案 0 :(得分:0)

使用DENY View ..

  DENY VIEW ANY DATABASE TO testuser;

一般步骤包括..
1.使用默认数据库创建登录
2.在所有数据库中为该登录创建用户
3.Deny观点

  DENY VIEW ANY DATABASE TO testuser;

<强>步骤1:
//使用默认数据库创建登录

1.USE [master]
GO
CREATE LOGIN loginame FROM WINDOWS WITH DEFAULT_DATABASE='testdb'
GO 

<强>步骤2:
2.在所有数据库中创建用户..

use testdb
create user username for loginname

现在您可以为该用户分配权限,例如读取,写入......默认情况下,该用户将只显示一个数据库..

第3步:

  DENY VIEW ANY DATABASE TO testuser;--this should be repeated in all databases which you wish to hide from user..

如果您现有登录。然后您可以更改该用户的默认登录信息,如下所示。

Exec sp_defaultdb @loginame='login', @defdb='testdb'

<强>参考文献:
https://www.mssqltips.com/sqlservertip/2995/how-to-hide-sql-server-user-databases-in-sql-server-management-studio/