2016-02-11 54 views
0

在SQL Server中,有一个用户user1谁可以访问数据库AABB表。如何阻止访问除这些数据库允许访问SQL Server

然后我想user1不能访问除AA,BB之外的所有其他数据库。

也就是说,user1不应访问除AABB以外的任何其他数据库中的任何表。

+1

谷歌的东西如“SQL服务器用户映射”。在StackOverflow的QA格式中回答问题太广泛了。 –

+0

那么,您在服务器级别具有**登录**,然后您可以在该登录名应该有权访问的每个数据库中为该登录名定义一个**用户**。因此,如果'user1'只能访问'AA'和'BB',只需在'AA'和'BB'中为'user1'创建用户,并且登录将无法访问该服务器实例上的任何其他数据库。 –

回答

0

看看这个

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 
+0

你好,我正在检查你的解决方案。谢谢你的甜美。祝你有美好的一天〜! –

+0

嗨,如果有效,你能接受它作为答案吗? – Wahm

+0

好的~~请稍等一会... –

1

你并不需要明确拒绝的权限,如果他们用不上,你可以忽略

--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'; 
+0

你好,我正在检查你的解决方案。谢谢你的好意。祝你有美好的一天〜 –

相关问题