Oracle数据库权限管理
权限是用户对一项功能的执行权力。在Oracle中,根据系统管理方式不同,权限分为系统权限与对象权限两类。
1.系统权限
系统权限是指是否被授权用户可以连接到数据库上,在数据库中可以进行哪些系统操作;系统权限是在数据库中执行某种系统级别的操作,或者针对某一类的对象执行某种操作的权利。例如,在数据库中创建表空间的权利,或者在数据库中创建表的权利,这些都属于系统权限。
常见的系统权限如下。
CREATE SESSION:连接到数据库;
CREATE TABLE:创建表;
CREATE VIEW:创刨建视图;
CREATE SEQUENCE:创建序列。
2.对象权限
对象权限是指用户对具体的数据库中的对象所拥有的权限。对象权限是针对某个特定的模式对象执行操作的权利。只能针对模式对象来设置和管理对象权限,包括数据库中的表、视图、序列、存储过程、存储函数等。例如,对某个表的数据进行操作,对存储过程的执行操作等。
Oracle数据库用户有以下两种途径获得权限。
(1)管理员直接向用户授予权限。
(2)管理员将权限授予角色,然后再将角色授予一个或多个用户。
使用角色能够更加方便和高效地对权限进行管理,所以数据库管理员应该习惯于使用角色向用户授予权限,而不是直接向用户授予权限。在Oracle数据库系统中预定义了很多的角色,其中常用的主要有CONNECT角色、RESOURCE角色、DBA角色等。一般程序员使用的用户只要授予CONNECT和RESOURCE两个角色即可。DBA角色具有所有的系统权限,并且可以给其他用户、角色授权。由于DBA角色权限比较多,在这里就不给大家列出来了。
新创建的用户必须被授予一定的权限才能进行相关数据库操作。授权通过GRANT语句,而取消授权则通过REVOKE语句。
授予权限语法:
GRANT 权限|角色 TO 用户名;
撤销权限语法:
REVOKE 权限|角色 FROM用户名;
以下代码演示如何授予和撤销MARTIN用户CONNECT和RESOURCE两个角色。
GRANT connect,resource TO MARTIN; –授予 cONNECT 和 RESOURCE两个角色
REVOKE connect,resource EROM MARTIN;–撤销 CONNECT利 RESOURCE两个角色