易神乐邦技术论坛

标题: 如何让用户只能访问特定的数据库(MSSQL) [打印本页]

作者: hd87715    时间: 2018-7-30 23:41
标题: 如何让用户只能访问特定的数据库(MSSQL)
Q:SQL新建一个账号如何控制,账号只访问一个数据

A:
[attach]339[/attach]
[attach]340[/attach]
[attach]341[/attach]

***********************************************************
背景
客户的SQL Server实例上有多个厂商的数据库,每个数据库由各自的进行厂进行商维护,
为了限定不同厂商的维护人员只能访问自己的数据库,现需要给各个厂商限定权限,让他们登录SQL Server只能看到授权的数据库而无法看到其他数据库。

解决方案
1.先给不同的厂商创建不同的登录名(如下以一个厂商为例)


2.将登录名加入到public服务器角色中,然后点击确定

3.将public服务器角色的属性——>安全对象中取消查看所有数据库的权限

                               
登录/注册后可看大图
或者执行如下SQL:
REVOKE VIEW ANY DATABASE TO [public]

4.将待授权的数据库的dbowner指派给该用户
Use [xjcsgoEXEC dbo.sp_changedbowner N'provider1'


此时用'provider1'登录SQL Server,便只能看到指定的用户数据库了(系统数据库除外)




说明:
我之前希望在第2个步骤中设置登录名的用户映射来实现这个需求,如下图,但没有效果,登录到SQL Server后还是无法看到用户数据库,
所以才采用上述方法:

阅读原文






欢迎光临 易神乐邦技术论坛 (http://bbs.lebang360.com/) Powered by Discuz! X3.2