Oracle权限特权授予与特权收回(oracle两种权限)

Oracle权限:特权授予与特权收回

Oracle系统一般会有多个用户,这些用户访问数据库有不同的需求和权限,需要授予不同的权限才能让其正常工作。其中一些权限是特权权限,只有特定的用户才能获得和授予,这是数据库的重要安全机制之一。Oracle允许管理员通过语句授予和收回用户的特权权限,本文讲解如何对Oracle特权权限进行授予和收回操作。

一、Oracle特权权限的种类

Oracle特权权限分为两种类型,分别是系统特权权限和对象特权权限,它们的区别如下:

1.系统特权权限

系统特权权限是指那些允许用户访问或修改Oracle数据库内部结构的权限,这些权限只能被授予给那些真正需要使用这些权限的用户。其中包括:

(1) create user:创建新用户的权限。

(2) create any table:创建任意表的权限。

(3) create any procedure:创建任意存储过程的权限。

(4) create any view:创建任意视图的权限。

(5) manage users:管理用户的权限。

(6) select any table:查询任意表的权限。

2.对象特权权限

对象特权权限是指那些针对特定数据库对象的权限,这些权限允许用户执行对该对象的特定操作。包括:

(1) select on table:查询表的权限。

(2) insert on table:插入表的数据权限。

(3) update on table:更新表的数据权限。

(4) delete on table:删除表的数据权限。

(5) execute on procedure:运行存储过程的权限。

(6) alter any trigger:修改任意触发器的权限。

以上特权权限只有授权者具备相应的权限才能进行授权操作。

二、特权授予

1.授权语法

授予特权的语法如下:

grant privilege on object to user;

其中privilege可以是系统特权权限或对象特权权限,object可以是一个表、视图、存储过程等,user是要授予权限的用户名。

2.授权实例

例如,我要授权用户jack对表employee执行select查询和insert插入操作,语句如下:

grant select, insert on employee to jack;

这条语句就将select和insert特权权限授予给用户jack,后续jack就可以执行相应的操作。

授权完成后,可以使用下列语句查看用户的特权权限:

select * from dba_sys_privs where grantee=’jack’;

该语句将列出jack用户拥有的所有特权权限。

三、特权收回

特权收回同样可以通过语句实现。其语法如下:

revoke privilege on object from user;

其中privilege可以是系统特权权限或对象特权权限,object可以是一个表、视图、存储过程等,user是要收回权限的用户名。

例如我要收回jerry用户对表employee的insert操作,语句如下:

revoke insert on employee from jerry;

上述语句将收回用户jerry执行表employee的insert操作的权限。

特权收回后,可以使用下列语句查看用户的特权权限:

select * from dba_sys_privs where grantee=’jerry’;

查看结果将不再显示被收回的特权权限。

特权授予和收回是Oracle数据库的重要安全机制之一,它可以确保数据库中的特定权限仅被授予给需要使用它们的用户。系统管理员应学会如何对这些特权权限进行授予和收回操作,以便管理Oracle数据库的安全性。


数据运维技术 » Oracle权限特权授予与特权收回(oracle两种权限)