Sql Server设置用户只能查看并访问特定数据库

1.新建登录用户 
以管理员身份登陆数据库(权限最高的身份如sa),点击安全性->登录名,右键新建登录名,输入登录名和密码,取消强制实施密码策略。 

2.将服务器角色设置为public 

注意:很重要的一步骤,检查【用户映射】中该用户是否有对应的数据库权限,如果有请把勾去掉,否则会影响第4点的操作结果

3.将public服务器角色的属性->取消查看所有数据库的权限 
点击安全性->服务器角色->public,右键属性。点击服务器后如下图取消查看任意数据库的权限

 

或者执行如下SQL: 
REVOKE VIEW ANY DATABASE TO [public]

4.将待授权的数据库的db_owner指派给刚注册的新用户 
在数据库中新建查询,输入下列sql语句。完成对用户权限的设定,做到了新建用户只能查看和操作特定数据库(除系统数据库外)

Use [WH_R]//WH_R为数据库名称
go
EXEC dbo.sp_changedbowner N'user'//user为刚新建的用户

 内容大部分来自https://blog.csdn.net/qq_35938548/article/details/78269112,感谢大佬分享

原文地址:https://www.cnblogs.com/SI0301/p/11229948.html