14.4.1 权限管理简介 用户在登录到sql server(WINDOWS平台上强大的数据库平台) 之后,其安全账号(用户账号)所归属的NT 组或角色所被授予的权限决定了该用户能够对哪些数据库对象执行哪种操作以及能够访问、修改哪些数据。在sql server(WINDOWS平台上强大的数据库平台) 中包括两种类型的权限,即对象权限和语句权限。
(1) 对象权限 对象权限总是针对表、视图、存储过程而言,它决定了能对表、视图、存储过程执行哪些操作(如UPDATE、 DELETE、 INSERT、 EXECUTE)。如果用户想要对某一对象进行操作,其必须具有相应的操作的权限。例如,当用户要成功修改表中数据时,则前提条件是他已经被授予表的UPDATE 权限。 不同类型的对象支持不同的针对它的操作例,如不能对表对象执行EXECUTE 操作。我们将针对各种对象的可能操作列举如表14-1 所示:
(WINDOWS平台上强大的数据库平台)数据库技术(97)(图一)" /> 注意:REFERENCE充许在GRANT、DENY、REVOKE语句中向有外键参照表中插入一行数据。
(2) 语句权限 语句权限主要指用户是否具有权限来执行某一语句,这些语句通常是一些具有管理性的操作,如创建数据库、表、存储过程等。这种语句虽然仍包含有操作如(CREATE)的对象,但这些对象在执行该语句之前并不存在于数据库中如创建一个表,在CREATE TABLE 语句未成功执行前数据库中没有该表),所以将其归为语句权限范畴。表14-2 是所有的语句权限清单。
(WINDOWS平台上强大的数据库平台)数据库技术(97)(图二)" />
(WINDOWS平台上强大的数据库平台)数据库技术(97)(图三)" /> (WINDOWS平台上强大的数据库平台)数据库技术(97)(图四)" />
各参数含义说明如下: - 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语法格式一样。
(WINDOWS平台上强大的数据库平台)数据库技术(97)(图五)" />
14.4.2 利用sql server(WINDOWS平台上强大的数据库平台) Enterprise Manager 管理权限 在sql server(WINDOWS平台上强大的数据库平台) 中通过两种途径可实现对语句权限和对象权限的管理,从而实现对用户权限的设定。这两种途径分别为面向单一用户和面向数据库对象两种权限设置。
1 面向单一用户的权限设置 在sql server(WINDOWS平台上强大的数据库平台) Enterprise Manager 其执行步骤为: (1) 启动sql server(WINDOWS平台上强大的数据库平台) Enterprise Manage, 登录到指定的服务器。 (2) 展开指定的数据库,然后单击Users 图标,此时在右窗格中将显示数据库所有用户。 (3) 在数据库用户清单中选择要进行权限设置的用户,右击用户名,然后在弹出 菜单中选择Properties, 弹出Database User Properties 对话框,如图14-6 所示。
(WINDOWS平台上强大的数据库平台)数据库技术(97)(图六)" /> (4) 在Database User Properties 对话框中单击Permission 按钮,弹出如图14-7 所示的Database User Properties 对话框,在该对话框中进行对象权限设置。
(WINDOWS平台上强大的数据库平台)数据库技术(97)(图七)" /> (5) 单击确定,完成权限设置。 在图14-6 的对话框中,如果在Database role membership 选项栏中选择任何一个数 据库角色(在缺省条件下,任何数据库用户都至少是public 角色),实际上就完成了 数据库用户语句权限的设置。因为对于这些数据库固定角色,sql server(WINDOWS平台上强大的数据库平台) 已定义了其 具有哪些语句权限,例如db_owner 具有执行CREATE DATABASE 的语句权限(关于 角色将在下节作详细介绍)。
在图14-7 的用户权限设置对话框中,显示了用户当前数据库中的所有对象,其中 包括表、视图、存储过程等,同时也给出针对该对象能够进行哪些操作。通过单击其 中的空白方格来完成权限设置。当空白方格内为对号时,表示执行了GRANT 语句, 即用户能够对该对象执行相应的操 作;当空白方格内为错号时,表示执 行了DENY 语句,即禁止对该对象 的相应操作。 通过点击“List only objects with permissions for this user”,将列出该 用户有权访问的所有数据库对象以及 详细的访问权限设置信息。 在图14-7 的用户权限设置对话 框 ,可以单击Column 按钮,在打开 的Column Permissions 对话框中来决 定用户对哪些列具有哪些权限。如图 14-8 所示。
(WINDOWS平台上强大的数据库平台)数据库技术(97)(图八)" />
2 面向数据库对象的权限设置 在sql server(WINDOWS平台上强大的数据库平台) Enterprise Manager 其执行步骤为: (1)启动sql server(WINDOWS平台上强大的数据库平台) Enterprise Manager, 登录到指定服务器。 (2)展开指定的数据库,从中选择用户对象(表、视图、存储过程)。 (3) 在右格对话框中选择要进行权限设置的对象,右击该对象。 (4) 在弹出菜单中选择All tasks, 选择Manage Permission, 此时弹出ObjectProperties 对话框。如图14-9 所示。
(WINDOWS平台上强大的数据库平台)数据库技术(97)(图九)" /> (5) 设置权限,单击确定。
Object Properties 对话框与Database User Properties 对话框极为相似,在Database User Properties 对话框,我们为某一用户设置其对当前数据库所有对象的访问权限;在Object Properties 对话框中,我们为某一数据库对象设置当前数据库所有用户对其的访问权限。 通过点击“List only User/DB Roles with permissions on this object”,可以列出所有对该对象具有访问权限的数据库用户或角色。
|