您的位置:首页 > 数据库 > Oracle

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

2018-02-02 10:10 267 查看

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

一、系统权限

所谓系统权限,就是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 *

2 FROM DBA_SYS_PRIVS

3 WHERE GRANTEE = 'ANDY'

4 UNION ALL

5 SELECT *

6 FROM DBA_SYS_PRIVS

7 WHERE GRANTEE IN

8 (SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'ANDY');

二、对象权限

所谓对象权限,就是针对于特定的对象的权限,系统权限是限定了可以操作的功能,而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、查看用户拥有的对象权限。

SQL> SELECT *

2 FROM DBA_TAB_PRIVS

3 WHERE GRANTEE = 'ANDY'

4 UNION ALL

5 SELECT *

6 FROM DBA_TAB_PRIVS

7 WHERE GRANTEE IN

8 (SELECT GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'ANDY');

三、角色

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

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 ;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: