显示系统中的所有角色

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;

备注:角色删除后,原来拥用该角色的用户就不再拥有该角色了,相应的权限也就没有了。

最后修改:2023 年 10 月 29 日
如果觉得我的文章对你有用,请随意赞赏