角色其实就是一组权限的集合,比如我们经常用的DBA、connect、resource等角色,都是Oracle系统为我们定义好的一些常用的角色,一般利用这些角色就可以控制好不同需求用户的权限。

Oracle中角色可以授予给多个用户,并且一个用户可以设置多个角色。因此,Oracle数据库也提供了自定义角色的功能,方便不同用户的权限授予。例如,可以自定义个一个角色,可以查询、更新特定几个关联表的权限。那么以后但凡有用户想用到这些表的操作权限时,可以直接给该用户设置定义好的角色。

创建语法

  1. create role role_name ;

授予角色权限的语法

  1. --授予系统权限
  2. grant system_privilege|all privileges to role_name
  3. [with admin option]
  4. --授予对象权限
  5. grant obj_privilege|all
  6. on obj_name to role_name
  7. [with grant option]

例:

  1. --创建角色 student_role
  2. create role student_role;
  3. --给student_role授于操作stuinfoclass的操作权限
  4. grant all on student.stuinfo to student_role;
  5. grant all on student.class to student_role;

设置角色

角色创建好后,并不是直接生效,而是要把角色设置给对应的用户后才能生效的。具体语法如下:

  1. grant role_name to user;

例:

  1. grant student_role to teacher;
文档更新时间: 2020-10-27 10:06   作者:张尚