17.2.2 授予权限

授予权限的对象就是用户或者角色,授予权限的操作包括授予系统权限和授予对象权限,下面分别在企业管理器和SQL*Plus中讲解如何授予系统权限与对象权限。

1.在企业管理器中授予系统权限

【示例9】在企业管理中添加系统权限

这里以授予用户的权限为例进行授予用户权限。首先要选择授予权限的用户,在图17.2所示页面中,选择一个用户单击【编辑】按钮,进入用户修改界面,如图17.5所示。在页面上选择【系统权限】选项卡,出现图17.7所示界面。

17.2.2 授予权限 - 图1

图 17.7 编辑系统权限

在编辑系统权限页面中,单击【编辑列表】选项,出现选择系统权限的页面,如图17.8所示。

17.2.2 授予权限 - 图2

图 17.8 选择系统权限

在图17.8中,左侧是系统中的所有可用的系统权限,如果要为用户添加权限,可以直接选中权限,之后单击【移动】或【全部移动】选项,添加的系统权限就会出现在右侧的“所选系统权限”列表框中。相反,如果想从所选的系统权限中移除权限,也可以选择【移去】或者【全部移去】选项。在添加好权限后,单击【确定】按钮,权限就添加成功了,出现图17.9所示界面。

17.2.2 授予权限 - 图3

图 17.9 权限添加完成

系统权限添加完成后,再单击【应用】按钮,系统权限就添加到指定的用户上了。这里,在系统权限列表中还有一个管理选项,如果把该选项选中,那么这个用户就会拥有授予ALTER USER的权限。在默认情况下,该选项是未被选中的。

2.使用企业管理器添加对象权限

在企业管理器中添加对象权限的方法与添加系统权限的方法类似。

【示例10】在企业管理中添加对象权限

在图17.5所示界面中,单击【对象权限】选项,添加对象权限的界面如图17.10所示。

17.2.2 授予权限 - 图4

图 17.10 添加对象权限

在添加对象权限的页面中,首先选择要添加的对象权限的类型,这个对象类型主要有Java源、Java类、作业类、序列、表等对象。选择好对象类型后,单击【添加】按钮,出现图17.11所示的界面。这里选择表对象。

17.2.2 授予权限 - 图5

图 17.11 添加表对象的权限

在添加表对象权限之前首先要选择表对象,然后单击选择表对象后面的图标,会出现图17.12所示的界面。

17.2.2 授予权限 - 图6

图 17.12 选择表对象

选择表对象后,就可以为用户使用该表对象授予权限,如图17.13所示。

17.2.2 授予权限 - 图7

图 17.13 授予对象权限

授予对象权限与授予系统权限一样,这里就不详细说明。选择好权限后,单击【确定】按钮,完成对用户的对象权限的授予。

3.在SQL*Plus中授予系统权限

授予权限的操作一般是由数据库管理员来处理的,只有拥有了足够的权限才能够给其他用户授予权限。授予用户权限的基本语法如下:


GRANT system_privilege

|ALL PRIVILEGES TO{user IDENTIFIED BY password|role|}

[WITH ADMIN OPTION]


【语法说明】

❑system_privilege:创建的系统权限名称。

❑ALL PRIVILEGES:可以设置除SELECT ANY DICTIONARY权限之外的所有系统权限。

❑{user IDENTIFIED BY password|role|}:设置权限的对象,user IDENTIFIED BY password子句代表的是设置指定用户的权限;role代表的是设置角色的权限。

❑WITH ADMIN OPTION:设置该子句后,表示当前给予授权的用户还可以给其他用户进行系统权限的授予。

【示例11】在SQL*Plus中授予用户系统权限

下面就利用上面的语法,授予用户一个系统权限session。具体语法如下:


GRANT create session to USER1


也可以为它加上WITH ADMIN OPTION管理选项,让USER1也具有授予create session的权限。具体代码如下:


GRANT create session to USER1 WITH ADMIN OPTION


4.在SQL*Plus中授予用户对象权限

授予对象权限与授予系统权限的语法相似,只是有一点区别。具体语法如下:


GRANT object_privilege|ALL

ON schema.object

TO user|role

[WITH ADMIN OPTION]

[WITH THE GRANT ANY OBJECT]


【语法说明】

❑object_privilege:对象权限的名称。

❑ALL:如果选择ALL,则代表授予用户所有的对象权限,这个权限在使用的时候一定要慎重。

❑schema.object:为用户授予的对象权限使用的对象。

❑user|role:user代表的是用户;role代表的是角色,角色的授予会在17.3节中详细讲述。

❑WITH ADMIN OPTION:设置该子句后,表示当前给予授权的用户还可以给其他用户进行系统授权。

❑WITH THE GRANT ANY OBJECT:设置该子句后,表示当前给予授权的用户还可以给予其他用户对象权限。

【示例12】在SQL*Plus中授予用户对象权限

利用上面的语句,为用户USER1授予表对象AA删除的权限。具体代码如下:


GRANT DELETE ON AA TO USER1