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 ;
权限的种类:系统权限 和 对象权限
一、系统权限
所谓系统权限,就是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 ;
相关文章推荐
- 数据库——Oracle中sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
- 数据库Oracle之用户、角色和权限
- Oracle用户、权限、角色管理、数据库备份
- 数据库安全之权限与角色
- 转:PostgreSQL角色、用户、权限和数据库安全
- 数据库安全之权限与角色
- Oracle基本安全之用户、角色和权限操作
- springBoot+springSecurity 数据库动态管理用户、角色、权限
- 有关角色权限管理以及自动附加数据库的程序源代码
- 基于角色的权限设计 - 数据库
- Oracle用户、权限、角色管理
- webapi框架搭建-安全机制(四)-可配置的基于角色的权限控制
- oracle把一个用户下数据库对象的某个权限赋给另一个用户
- 如何查询oracle用户、权限、及角色
- SQL Server中通用数据库角色权限的处理详解
- oracle 用户 权限 角色
- oracle用户/角色权限查询
- [转]Oracle DB 权限与角色
- oracle权限角色
- oracle中普通用户如何查看自己登录的数据库名称?这个用户与scott权限相同,无法切换到sys下面!没有权限查看v$database和v$instance