如何仅授予对Sql Server数据库中的单个表的READ访问权限

时间:2014-02-07 05:55:45

标签: sql-server grant user-roles

我想只为给定用户提供SQL Server数据库中单个表的READ访问权限 - xyz

经历过以下问题:

How do I grant read access for a user to a database in SQL Server?

Granting a SQL Server Login Access to a Database - SQL Server

best way to grant read only access to 2 tables in SQL Server 2005?

但它为我提出了一些基本问题,通过角色和用户名提供访问权限有什么不同?

请提供一种有效的方法来实现这一目标

2 个答案:

答案 0 :(得分:31)

我以这种方式解决了这个问题:

CREATE LOGIN XYZ
WITH PASSWORD = 'PASSWORD'

创建XYZ登录后,为上面创建的登录名

创建一个用户
CREATE USER xyz FOR LOGIN xyz

然后授予select,update权限,在我的情况下,它只是在特定表上选择

GRANT SELECT ON DBNAME.TABLE_NAME TO USERNAME

我提到的来源是

  1. http://technet.microsoft.com/en-us/library/aa337545.aspx(请参阅标题为创建数据库用户的底部代码部分)

  2. http://social.msdn.microsoft.com/Forums/sqlserver/en-US/959f9307-0494-4883-9d17-fad684705864/grant-select-permission-on-a-table?forum=sqldatabaseengine

答案 1 :(得分:2)

通过用户名授予访问权限仅适用于该用户。

但是,通过角色授予访问权限适用于属于该角色的所有用户。 角色用于为一组用户分配权限。