Oracle的权限主要有系统权限和对象权限两种。系统权限主要是连接权限(session)、user权限等,系统权限主要是对数据库具有系统级的操作。对象权限,指的是对数据库对象具有特定操作的权限。
Oracle授予权限的对象可以是用户,也可以是角色。授予权限的操作包括授予系统电脑权限或对象权限给用户(或角色)。
我们在进行授予权限时候,要注意,系统权限的授予必须具有DBA权限的用户进行授权。如:sys、system用户。对象权限的授予,可以使用对象所有者的用户进行授权,或者使用具有DBA用户的进行授权
授予系统权限
授予系统权限的语法结构:
grant system_privilege|all privileges to user|role[with admin option]
语法解析:
1、grant system_privilege|all privileges :指定授予什么权限。system_privilege:授予的权限名称,all privileges:指授予所有系统权限。
2、user|role:授予权限给用户还是角色。
3、[with admin option]:指的是当前被授权的用户具有授权给其它用户系统权限的权利。
例1、给用户teacher授予系统的create session权限,代码如下:
grant create session to TEACHER;
通过查询数据字典dba_sys_privs可以查询一下TEACHER的系统权限。
授予对象权限
?授予对象权限的语法结构如下电脑:
grant obj_privilege|all on obj_name to user|role[with grant option]
语法解析:
1、grant obj_privilege|all:给指定用户授予对象权限,all:指的是授予全部对象权限。
2、on obj_name to user|role:指的是把对象obj_name的权限授予给用户user或者角色role。
3、with grant option:指定是当前被授权的用户具有授权给其它用户该对象权限的权利。这里with grant option对应对象的授权是级联,而对于上面系统权限的with admin option的授权不是级联的,回收该用户的权限,不会把授予给别人的权限收回,而级联授权的就会把对应的权限都收回。
例2、把student用户下的学生信息表(stuinfo)授权给teacher用户,代码如下:
grant select on student.stuinfo to teacher with grant option;
然后通过查询数据字典dba_tab_privs查看下teacher用户具有的对象权限:
注意:给用户授权时,要注意自己是不能为自己授权的,要么利用第三方具有该对象授权权限的用电脑户进行授权,或者利用具有DBA权限的用户授权。
欢迎关注,一起学习探讨Oracle相关技术
电脑