首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不要显示不允许访问的数据库- MS SQL Server 2014

不要显示不允许访问的数据库- MS SQL Server 2014
EN

Stack Overflow用户
提问于 2018-03-15 08:25:43
回答 2查看 2K关注 0票数 0

我有40个数据库附加到我的2014实例中。我需要创建一个新的用户与只读访问1数据库。他甚至看不到附在我的实例上的数据库的名字。

我已经应用了我在https://stackoverflow.com/a/10219004/4728323找到的解决方案,但这只允许只读访问1个数据库。但是,在使用该新用户登录时,其他数据库的名称是可见的(不允许访问,但数据库列表中可以看到db名称)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-16 11:48:40

这是有可能实现的。

包含的数据库可从MS 2012到后续使用。

1-通过单击对象资源管理器中的服务器名称来更改实例设置。

转到“属性”窗口中的“高级”选项卡。

3-将属性“启用包含的属性”设置为"True",单击"Ok“。

4-现在右击数据库,获得所需数据库的属性。

5-到“选项”选项卡,并将“包容类型”设置为“部分”。

6-现在右键单击数据库中的用户节点并添加用户,选择"SQL“选项并创建新用户。

资料来源:https://www.mssqltips.com/sqlservertip/2428/sql-server-2012-contained-database-feature/

票数 2
EN

Stack Overflow用户

发布于 2018-03-15 18:49:29

正如https://technet.microsoft.com/en-us/library/ms189077(v=sql.105).aspx中所指定的,“默认情况下,视图任何数据库权限都授予公共角色。因此,默认情况下,连接到Server实例的每个用户都可以看到实例中的所有数据库。”

要实现您想要的结果,您应该撤销public角色的public权限:

代码语言:javascript
复制
REVOKE VIEW ANY DATABASE TO public

或者,您只可以拒绝该用户的此权限:

代码语言:javascript
复制
DENY VIEW ANY DATABASE TO YourRestrictedUser
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49294543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档