我们在 SQL Server 上有多个数据库。
我们想要创建 1 个新用户,该用户可以查看数据库“c”,但看不到其余数据库。
该用户应该只能从此数据库中进行选择,而不能进行其他选择。
我已经用谷歌搜索了一段时间,我发现的最接近的是拒绝查看任何数据库,然后让他们成为数据库所有者。
但我认为这不会限制他们的选择,除非有办法我可以
拒绝除数据库所有者的选择之外的所有内容?
预先感谢您的任何帮助!
编辑:顺便说一句,SQL Server 2008 R2。
Edit2:抱歉,我在原来的帖子中没有说清楚。我希望做到这一点,以便当他们登录时,他们甚至看不到其他数据库的名称,而不仅仅是他们无法访问它们。
Thanks.
1)在服务器上创建用户
2) 将用户添加到给定数据库
3) 授予数据库只读访问权限
USE [master]
CREATE LOGIN [SomeUserName] WITH PASSWORD=N'someStr0ngP@ssword', DEFAULT_DATABASE=[c], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=ON, CHECK_POLICY=ON
GO
USE [c]
CREATE USER [SomeUserName] FOR LOGIN [SomeUserName] WITH DEFAULT_SCHEMA=[dbo]
GO
EXEC sp_addrolemember N'db_datareader', N'SomeUserName'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)