显示系统中的所有角色
sql>select * from dba_roles;
显示角色具有的系统权限
Sql> select role,privilege from role_sys_privs where role='CONNECT';
显示角色具有的对象权限
Sql> select role,privilege from role_tab_privs where role=upper('dba')
显示用户具有的角色及默认角色
当以用户的身份连接到数据库时,Oracle会自动激活默认角色。
查询数据字典视图dba_role_privs可以显示某个用户具有的所有角色及当前默认的角色。
SQL> select grantee,granted_role from dba_role_privs where grantee = 'SCOTT';
建一个角色
sql>create role role1;
给角色授权
sql>grant create any table,create procedure to role1;
分配角色给用户
sql>grant role1 to user1;
查看角色所包含的权限
sql>select * from role_sys_privs;
创建带有口令以角色
sql>create role role1 identified by password1;
修改角色:是否需要口令
sql>alter role role1 not identified;
sql>alter role role1 identified by password1;
设置角色生效
sql>set role role1; //使role1生效
sql>set role role,role2; //使role1,role2生效
sql>set role role1 identified by password1; //使用带有口令的role1生效
sql>set role all; //使用该用户的所有角色生效
sql>set role none; //设置所有角色失效
sql>set role all except role1;//除role1外的该用户的所有其它角色生效。
sql>select * from SESSION_ROLES;//查看当前用户的生效的角色。
修改指定用户,设置其默认角色
sql>alter user user1 default role role1;
sql>alter user user1 default role all except role1;
删除角色
sql>drop role role1;
备注:角色删除后,原来拥用该角色的用户就不再拥有该角色了,相应的权限也就没有了。