用户在登录到SQL Server 之后,其安全账号(用户账号)所归属的NT 组或角色所被授予的权限决定了该用户能够对哪些数据库对象执行哪种操作以及能够访问、修改哪些数据。在SQL Server 中包括两种类型的权限,即对象权限和语句权限。
(1) 对象权限
对象权限总是针对表、视图、存储过程而言,它决定了能对表、视图、存储过程执行哪些操作(如UPDATE、 DELETE、 INSERT、 EXECUTE)。如果用户想要对某一对象进行操作,其必须具有相应的操作的权限。例如,当用户要成功修改表中数据时,则前提条件是他已经被授予表的UPDATE 权限。
不同类型的对象支持不同的针对它的操作例,如不能对表对象执行EXECUTE 操作。我们将针对各种对象的可能操作列举如表14-1 所示:
注意:REFERENCE充许在GRANT、DENY、REVOKE语句中向有外键参照表中插入一行数据。
(2) 语句权限
语句权限主要指用户是否具有权限来执行某一语句,这些语句通常是一些具有管理性的操作,如创建数据库、表、存储过程等。这种语句虽然仍包含有操作如(CREATE)的对象,但这些对象在执行该语句之前并不存在于数据库中如创建一个表,在CREATE TABLE 语句未成功执行前数据库中没有该表),所以将其归为语句权限范畴。表14-2 是所有的语句权限清单。
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/sqlserver/)
各参数含义说明如下: ALL
表示具有所有的语句或对象权限。对于语句权限来说,只有sysadmin 角色才具有所有的语句权限;对于对象权限来说,只有sysadmin 和db_owner 角色才具有访问某一数据库所有对象的权限。 statement
表示用户具有使用该语句的权限。这些语句包括:
CREATE DATABASE; CREATE DEFAULT; CREATE PROCEDURE CREATE
RULE CREATE TABLE; CREATE VIEW;BACKUP DATABASE; BACKUP LOG WITH GRANT OPTION
表示该权限授予者可以向其它用户授予访问数据对象的权限。 ????????
REVOKE和DENY语法格式与GRANT语法格式一样。
14.4.2 利用SQL Server Enterprise Manager 管理权限
在SQL Server 中通过两种途径可实现对语句权限和对象权限的管理,从而实现对用户权限的设定。这两种途径分别为面向单一用户和面向数据库对象两种权限设置。
1 面向单一用户的权限设置
在SQL Server Enterprise Manager 其执行步骤为:
(1) 启动SQL Server Enterprise Manage, 登录到指定的服务器。
(2) 展开指定的数据库,然后单击Users 图标,此时在右窗格中将显示数据库所有用户。
(3) 在数据库用户清单中选择要进行权限设置的用户,右击用户名,然后在弹出 菜单中选择Properties, 弹出Database User Properties 对话框,如图14-6 所示。
(4) 在Database User Properties 对话框中单击Permission 按钮,弹出如图14-7 所示的Database User Properties 对话框,在该对话框中进行对象权限设置。
(5) 单击确定,完成权限设置。 在图14-6 的对话框