DM7用户权限管理

上一篇分享了dm数据库用户的管理,这篇文章介绍dm权限管理,可以让大家熟悉dm一些相关权限视图,如何授予以及回收权限。

dm数据库权限相关视图与oracle视图兼容,常用的有以下几个视图:

DBA_SYS_PRIVS

显示系统中所有传授给用户或者角色的权限。

USER_SYS_PRIVS

传授给当前用户的系统权限。

DBA_ROLE_PRIVS

显示系统中的授予用户的所有角色。

USER_ROLE_PRIVS

显示传授给当前用户的角色。

DBA_ROLES

显示系统中所有的角色。

DBA_TAB_PRIVS

显示系统中所有用户的数据库对象权限信息。

USER_TAB_PRIVS

显示当前用户作为对象拥有者、授权者或被授权者的数据库对象权限。结构同DBA_TAB_PRIVS。

用户系统权限授权语法:

GRANT <特权> TO <用户或角色>{,<用户或角色>} [WITH ADMIN OPTION];

 

<特权> ::= <数据库权限>{,<数据库权限>};
<用户或角色>::= <用户名> | <角色名

用户对象权限授权语法:

 GRANT <特权> ON [<对象类型>] <对象> TO <用户或角色>{,<用户或角色>} [WITH GRANT OPTION];
<特权>::= ALL [PRIVILEGES] | <动作> {, <动作>}
<动作>::= SELECT[(<列清单>)] |
INSERT[(<列清单>)] | UPDATE[(<列清单>)] | DELETE | REFERENCES[(<列清单>)] | EXECUTE|
READ| WRITE| USAGE
<列清单>::= <列名> {,<列名>}
<对象类型>::= TABLE | VIEW | PROCEDURE | PACKAGE | CLASS | TYPE | SEQUENCE | DIRECTORY | DOMAIN
<对象> ::= [<模式名>.]<对象名>
<对象名> ::= <表名> | <视图名> | <存储过程/函数名> |<包名> |<类名> |<类型名> |<序列名> | <目录名> | <域名>
<用户或角色>::= <用户名> | <角色名>

以下举例子介绍用户权限的授予和回收。

创建用户LJW、TEST、TEST2:

create user ljw identified by dameng123;

create user test identified by dameng123;

create user test2 identified by dameng123;

给LJW用户授予DBA权限:

grant dba to ljw;

在ljw用户下创建表ll:

create table ll (id number);

ljw用户将表ljw.ll查询权限授予test

grant select on ll to test with grant option;

ljw用户将创建用户权限授予test

grant CREATE USER to test;

test用户将表ljw.ll的查询权限授予test2

grant select on ljw.ll to test2;

 

以上简单的用户授权操作,大家是否有相关疑问呢?

怎么获取数据库所有的数据库系统权限?比如:create user

哪些权限是可传递授权的?如:ljw把create user权限授予test,test能否把create user权限授予test2?

 

获取dm数据库所有系统权限可以通过dba_sys_privs视图获取。

如:(注:截图中只是一部分)

 

权限是否传递可以查看dba_sys_privs. ADMIN_OPTION,如:

 

注:YES:表示可传授、NO:表示不可传授。

 

查看select on ljw.ll 是否可传递:

 

注:YES:表示可传授、NO:表示不可传授

 

查看LJW用户所拥有的所有角色权限:

select * from dba_role_privs where grantee='LJW';

单独授予的权限可以通过dba_sys_privs查询,如:

note:

系统权限 可以使用参数with admin option传递权限

对象权限 可以使用参数with grant option 传递权限

系统权限回收语法:

 REVOKE [ADMIN OPTION FOR]<特权> FROM <用户或角色>{,<用户或角色>} ; <特权> ::= <数据库权限>{,<数据库权限>}
<用户或角色>::= <用户名> | <角色名>

对象权限回收语法:

 REVOKE [GRANT OPTION FOR] <特权> ON [<对象类型>]<对象> FROM <用户或角色> {,<用户或 角色>} [<回收选项>];
<特权>::= ALL [PRIVILEGES] | <动作> {, <动作>}
<动作>::= SELECT |INSERT | UPDATE | DELETE | REFERENCES | EXECUTE|READ| WRITE| USAGE
<对象类型>::= TABLE | VIEW | PROCEDURE | PACKAGE | CLASS | TYPE | SEQUENCE | DIRECTORY | DOMAIN
<对象> ::= [<模式名>.]<对象名>
<对象名> ::= <表名> | <视图名> | <存储过程/函数名> |<包名> |<类名> |<类型名> | <序列名> | <目录名> | <域名>
<用户或角色>::= <用户名> | <角色名> <回收选项> ::= RESTRICT | CASCADE

如:

SQL> revoke select on ll from test cascade;

note:用户 A 给用户 B 授权且允许其转授,B 将权限转授给 C。当 A 回收 B 的权限的时候必须加 CASCADE 回收选项。

 

更多详看《dm7安全管理手册》

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值