我在SQL Server Management Studio中设置了一个用户,该用户设置了用户映射,因此他们只能访问' ReportServer'数据库。
当我通过MS Word连接到我的SQL Server时,我可以使用以下选项连接数据库:
我不希望此用户有权访问,甚至无法查看master,tempdb或msdb数据库,并且我没有在此用户的用户映射中选择它们。如何设置以便用户无法看到这些数据库?
答案 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'