显示系统中的所有角色
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;
备注:角色删除后,原来拥用该角色的用户就不再拥有该角色了,相应的权限也就没有了。

本文详细介绍了Oracle数据库中角色与权限的管理操作,包括角色的创建、授权、分配、查看和删除,以及如何设置角色生效和修改用户默认角色。

被折叠的 条评论
为什么被折叠?



