99.Oracle数据库SQL开发之 用户特权和角色——角色

175 阅读2分钟

99.Oracle数据库SQL开发之 用户特权和角色——角色

欢迎转载,转载请标明出处:blog.csdn.net/notbaron/ar…\

角色就是一组特权,可以分配给一个用户或其他角色。角色的优点和特性可以总结如下几点:

1.  创建角色

要创建角色,必须具有CREATE ROLE系统特权。

也可以给角色创建密码,如下:

CREATE ROLE overall_manager identified bymanager_password;

2.  为角色授权

GRANT语句可以用来将特权授予角色。可以将系统特权和对象特权授予角色,也可以将一个角色授予另外一个角色。

语法还是 GRANT  … TO …

3.  将角色授予用户

GRANT语句可以用来将角色授予用户。

语法还是 GRANT … TO …;

4.  检查授予用户的角色

通过查询user_role_privs检查已经授予一个用户哪些角色。

store@PDB1> select * from user_role_privs;

 

USERNAME

----------------------------------------------------------------------------------------------------

GRANTED_ROLE

----------------------------------------------------------------------------------------------------

ADM DEL DEF OS_ COM

--- --- --- --- ---

STORE

CONNECT

NO NO  YES NO     NO

 

STORE

DBA

NO NO  YES NO     NO

 

STORE

RESOURCE

NO NO  YES NO     NO

PS:CONNECT和RESOURCE都是ORACFLE的内置角色。

5.  检查授予角色的系统特权

通过role_sys_privs可以检查已经授予一个角色哪些系统特权。

store@PDB1> select * from role_sys_privs order byprivilege;

6.  检查授予角色的对象特权

通过查询role_tab_privs可以检查已经授予一个角色哪些对象特权。

7.  使用授予角色的特权

通过角色将特权授予用户之后,用户就可以使用这种特权执行被授权的任务了。

8.  默认角色

默认情况下,载将角色授予用户时,就为该用户启用了这个角色。

如果角色具有密码,那么用户在启用角色之前,必须输入密码。

默认情况下,将角色授予用户时,就为该用户启用了这个角色。

可以使用ALTER ROLE语句可以用来对角色进行修改,使其变为非默认角色。

例如修改角色overall_manager默认不启动,如下:

ALTER USER steveDEFAULT ROLE ALL EXCEPT overall_manager;

启动角色,先要使用SET ROLE语句启动,如下:

SET ROLE overall_managerIDENTIFIED BY manager_password;

情况角色的设置如下:

SET ROLE NONE;

将角色设置为除overall_manager之外的任何角色:

SET ROLE ALLEXCEPT overall_manager;

9.  撤销角色

REVOKE语句可以用来撤销角色。

例如:

REVOKE overall_manager FROM steve;

10.        从角色中撤销特权

REVOKE语句可以用来从角色中撤销某种特权。

REVOKE ALL ON products FROMproduct_manager;

11.        删除角色

DROP ROLE语句可以用来删除角色。

例如:

DROP ROLE overall_manager;