正在维护一个CS结构的应用,每次创建应用的用户时都需要创建对应的数据库schema,并且需要赋予其相应的对象权限和角色。操作很不方便,所以专门创建了一个角色,过程如下:
1、创建角色
SQL> create role TESTROLE not identified; Role created
其中,not identified是说在设置角色生效或者无效时,不需要交进行验证
2、将对象权限赋予刚刚创建的角色
SQL> grant select on ***_table1 to TESTROLE; Grant succeeded SQL> grant select on ***_table2 to TESTROLE; Grant succeeded SQL> grant select on ***.table3 to TESTROLE; Grant succeeded
3、将其他角色赋予该角色
SQL> grant resource to TESTROLE; Grant succeeded SQL> GRANT CONNECT TO TESTROLE; Grant succeeded
4、查看该新建角色是否包含相应的对象权限和角色
SQL> select * from dba_tab_privs where grantee = 'TESTROLE';
SQL> select * from dba_role_privs where grantee = 'TESTROLE';
其中,dba_tab_privs查看的是该角色中赋予的对象的相关权限,比如第二步中的针对某些表的权限;
dba_role_privs查看的是该角色中赋予的其他角色,如第三步中的resource, connect;
还有一个是dba_sys_privs查看的是赋予该角色的系统的相关权限。