在SQL Server中,有一个用户user1
谁可以访问数据库AA
和BB
表。如何阻止访问除这些数据库允许访问SQL Server
然后我想user1
不能访问除AA
,BB
之外的所有其他数据库。
也就是说,user1
不应访问除AA
和BB
以外的任何其他数据库中的任何表。
在SQL Server中,有一个用户user1
谁可以访问数据库AA
和BB
表。如何阻止访问除这些数据库允许访问SQL Server
然后我想user1
不能访问除AA
,BB
之外的所有其他数据库。
也就是说,user1
不应访问除AA
和BB
以外的任何其他数据库中的任何表。
看看这个
SQL Server : can you limit access to only one table
exec sp_msforeachtable "DENY SELECT ON '?' TO [username];"
GO
GRANT SELECT ON [schemaName].[tableName] to [username]
Go
你并不需要明确拒绝的权限,如果他们用不上,你可以忽略
--create role in database
create role test1
--grant access on table t to test1
GRANT SELECT ON [dbo].[T] TO [test1]
GO
--you can even define column level permissions ,now users assigned to role test1 ---can view only column A of table T
GRANT SELECT ON [dbo].[T] ([A]) TO [test1]
--finally assign user john to role
EXEC sp_addrolemember 'test1', 'john';
你好,我正在检查你的解决方案。谢谢你的好意。祝你有美好的一天〜 –
谷歌的东西如“SQL服务器用户映射”。在StackOverflow的QA格式中回答问题太广泛了。 –
那么,您在服务器级别具有**登录**,然后您可以在该登录名应该有权访问的每个数据库中为该登录名定义一个**用户**。因此,如果'user1'只能访问'AA'和'BB',只需在'AA'和'BB'中为'user1'创建用户,并且登录将无法访问该服务器实例上的任何其他数据库。 –