Oracle 系统提供了三种权限:System Privilege、Object Privilege、Role Privilege
System Privilege
系统权限,用于规定用户能够使用数据库的权限。包括创建连接会话权限、创建表空间权限、创建表权限等等。
Object Privilege
对象权限,一般包含的是用户对其他用户的表或者视图的 select 权限,CRUD (增删改查)权限等。
Role Privilege
角色权限,即是权限的集合;我们创建一个角色包含某一些权限,然后再将这个角色授权给一个用户,这样就不用每次都需要一个个权限的授权。如 Oracle 数据库系统给我们提供的 connect 、resource 角色等。
授权
语法
GRANT { sys_privs | object_privs | role_name } TO user1 [ ,user2 [ , ... , user]] WITH [ ADMIN | GRANT ] OPTION;
WITH ADMIN OPTION
表示授予某个权限给用户,此用户有权将该权限授予给其他的用户或者角色。而 取消 是不级联的。
也就是说,授权 userA 创建会话的权限 create session with admin option , userA 再将这个权限授权给 userB 。但当数据库管理员将 userA 的 create session 权限撤销时, userB 仍然有 create session 的权限,不会被撤销。
WITH GRANT OPTION
用法等同于 with admin option ,区别在于 取消 是级联的。
即是在撤销 userA