ITPub博客

首页 > 数据库 > Oracle > 数据库安全之权限与角色

数据库安全之权限与角色

原创 Oracle 作者:张冲andy 时间:2017-01-09 20:57:23 0 删除 编辑

权限的种类:系统权限 和 对象权限

一、系统权限
所谓系统权限,就是oracle里已经写死的权限,这些权限,我们是不能自己去扩展的,比如select any table, create any table等。

1.1、系统权限种类
select count(*) from dba_sys_privs;

1.2、系统权限传递:
增加WITH ADMIN OPTION选项,则得到的权限可以传递。
grant XXX to XXX WITH ADMIN OPTION;

1.3、系统权限回收:系统权限只能由DBA用户回收,统权限收回的时候是不会级联收回的。
revoke XXX from XXX;

1.4、查看用户拥有的系统权限。
SQL> SELECT *
FROM DBA_SYS_PRIVS
WHERE GRANTEE = 'ETL'
UNION ALL
SELECT *
FROM DBA_SYS_PRIVS
WHERE GRANTEE IN
(SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'ETL');

二、对象权限
所谓对象权限,就是针对于特定的对象的权限,系统权限是限定了可以操作的功能,而object permission就更细化了,具体到了莫个对象你可以操作的功能的权限。

2.1、对象权限种类
select count(*) from dba_tab_privs;

2.1、对象权限传递:
增加with grant option选项,则得到的权限可以传递。
grant XXX to XXX with grant option;

2.2、对象权限回收:对象权限可以传递赋予,但是回收的时候是级联回收的。
revoke XXX from XXX;

2.4、查看用户拥有的对象权限。
SELECT *
FROM DBA_TAB_PRIVS
WHERE GRANTEE = 'P_INSERT_LOG'
UNION ALL
SELECT *
FROM DBA_TAB_PRIVS
WHERE GRANTEE IN
(SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'P_INSERT_LOG');

三、角色
所谓角色,就是一组权限的集合。

3.1、查看系统所有角色
SQL> select * from dba_roles;

3.2、 查看角色中包含的权限
SQL> select * from role_sys_privs where role in ('RESOURCE');

3.3、 创建角色并授权
SQL> create role andy_role;
Role created.

SQL> grant connect,resource to andy_role;
Grant succeeded.

3.4、 查看用户所拥有的角色。 (用被查询用户登录)
SQL> select * from USER_ROLE_PRIVS ;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31383567/viewspace-2132145/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
支持就关注我个人公众号:DBA烂笔头 。专注数据库领域,熟悉oracle、mysql、redis、mongodb,clickhouse等相关技术

注册时间:2016-08-11

  • 博文量
    626
  • 访问量
    286297