ITPub博客

首页 > 数据库 > Oracle > oracle权限整理文件

oracle权限整理文件

Oracle 作者:bitifi 时间:2015-09-22 12:42:52 0 删除 编辑
oracle 角色和权限的关系查看
例如:要查看 scott 具有的角色,可查询 dba_role_privs;   
SQL> select * from dba_role_privs where grantee='SCOTT';   
  
//查询 orale 中所有的系统权限,一般是dba   
select * from system_privilege_map order by name;   
//查询 oracle 中所有对象权限,一般是dba   
select distinct privilege from dba_tab_privs;   
//查询 oracle 中所有的角色,一般是dba   
select * from dba_roles;   
//查询数据库的表空间   
select tablespace_name from dba_tablespaces;   
  
问题 1:如何查询一个角色包括的权限?   
       a.一个角色包含的系统权限   
         select * from dba_sys_privs where grantee='角色名'   


         select * from dba_sya_privs where grantee='COONNECT'; connect要大写
         另外也可以这样查看:   
         select * from role_sys_privs where role='角色名'   
       b.一个角色包含的对象权限   
         select * from dba_tab_privs where grantee='角色名'   
问题 2:oracle 究竟         多少种角色?   
SQL> select * from dba_roles;   
问题 3:如何查看某个用户,具  什么样的角色?   
select * from dba_role_privs where grantee='用户名'   




 显示当前用户可以访问的所有数据字典视图。ν   
select * from dict where comments like '%grant%';   
 显示当前数据库的全称ν   
select * from global_name;   
  
 其它说明ν   
数据字典记录          oracle 数据库的所有系统信息。通过查询数据字典可以取得以 
下系统信息:比如   
1.对象定义情况   
2.对象 占用空间大小   
3.列信息   
4.约束信息   
查看用户、权限、角色的命令和视图
a
dba_role_privs
dba_tab_privs
dba_sys_privs 


1.查看所有用户: 
select * from dba_users; 
select * from all_users; 
select * from user_users; 
2.查看用户系统权限: 
select * from dba_sys_privs; 
select * from session_privs; 
select * from user_sys_privs; 
3.查看用户对象权限: 
select * from dba_tab_privs; 
select * from all_tab_privs; 
select * from user_tab_privs; 
4.查看所有角色: 
select * from dba_roles; 
5.查看用户所拥有的角色: 
select * from dba_role_privs; 
select * from user_role_privs; 
b
概述
   与权限,角色相关的视图大概有下面这些:
   DBA_SYS_PRIVS: 查询某个用户所拥有的系统权限
   USER_SYS_PRIVS:  查询当前用户所拥有的系统权限
   SESSION_PRIVS:    查询当前用户所拥有的全部权限
   ROLE_SYS_PRIVS:   查询某个角色所拥有的系统权限
   注意: 要以SYS用户登陆查询这个视图,否则返回空.
   ROLE_ROLE_PRIVS:    当前角色被赋予的角色
   SESSION_ROLES:      当前用户被激活的角色
   USER_ROLE_PRIVS:   当前用户被授予的角色
   另外还有针对表的访问权限的视图:
   TABLE_PRIVILEGES
   ALL_TAB_PRIVS   
   ROLE_TAB_PRIVS:     某个角色被赋予的相关表的权限
oracle与用户角色权限相关的视图 
Oracle 本身的数据字典设计我个人觉得很合理, 因为DBA_xxx, ALL_xxx,USER_xxx  让人一看大概就知道这个视图是干什么用的. 本文简要总结了一下与权限,角色相关的视图.


一. 概述
   与权限,角色相关的视图大概有下面这些: 


1、DBA_SYS_PRIVS:   查询某个用户所拥有的系统权限。 
2、USER_SYS_PRIVS:  查询当前用户所拥有的系统权限。 
3、SESSION_PRIVS:    查询当前用户所拥有的全部权限。 
4、ROLE_SYS_PRIVS:  查询某个角色所拥有的系统权限。
   注意: 要以SYS用户登陆查询这个视图,否则返回空。 


5、ROLE_ROLE_PRIVS:    当前角色被赋予的角色 
6、SESSION_ROLES:      当前用户被激活的角色 
7、USER_ROLE_PRIVS:   当前用户被授予的角色 


针对表的访问权限的视图: 


       TABLE_PRIVILEGES 


       ALL_TAB_PRIVS   


       ROLE_TAB_PRIVS: 某个角色被赋予的相关表的权限 
SQL> select * from user_sys_privs;               --查看直接授予用户的系统权限


      SQL> select * from user_role_privs;              --用户有哪些角色


      SQL> select * from user_tab_privs;               --检查一个用户被授予和授予其他用户的对象级权限


      SQL> select * from dba_roles;                    --查询系统中的角色


      SQL> select * from dba_sys_privs;                --查询角色的权利


      SQL> select * from dba_role_privs;               --查询角色是谁定义的


      SQL> select * from column_privileges;            --


      SQL> select * from role_role_privs;              --查询角色的授予和被授予关系


      SQL> select * from role_sys_privs;               --查询角色被授予的系统级权限


---把一个用户的所有表查询权限给另一个用户
select 'grant select on '||owner||'.'||object_name|| ' to user' 
from dba_objects
where object_type='TABLE'  and onwer='user';


select 'grant select on '||owner||'.'||object_name|| 'to user;' from dba_objects where object_type='PROCEDURE';




      SQL> select * from role_tab_privs;               --查询角色的对象级权限










表空间配额和UNLIMITED TABLESPACE权限 (2012-07-20 20:09:08)转载▼
标签: oracle unlimited tablespace quota resource 分类: ORACLE
对于一个新建的用户,如果没有分配给unlimited tablespace系统权限的用户,必须先给他们指定限额,之后他们才能在表空间中创建对象,限额可以是:
A、以兆字节或者千字节为单位的特定值
B、无限制的


限额是指定标空间中允许的空间容量,默认的情况下,用户在任何表空间中都是没有限额的,可以使用一下三个选项来为用户提供表空间限额:
A、无限制的:允许用户最大限度的使用表空间中的可用空间
B、值:用户可以使用的表空间,以千字节或者兆字节为单位。这并不能保证会为用户保留该空间。因此此值可能大于或小于表看三毛中的当前可用表空间
C、UNLIMITED TABLESPACE系统权限:此系统权限会覆盖所有的单个表空间限额,并向用户提供所有表空间(包括SYSTEM和SYSAUX)的无限制限额(注:授予resource角色的时候也会授予此权限)
一定不要为用户提供system或sysaux表空间的限额。通常,只有sys和system用户才能在system或sysaux表空间中创建对象。
对于分配的临时表空间或临时还原表空间则不需要限额。


如果需要为一个用户指定一个限额,可以有两种方法:
1、在创建用户的时候指定限额:
CREATE USER ABC IDENTIFIED BY ABC
DEFAULT TABLESPACE TEST
TEMPORARY TABLESPACE TEMP
QUOTA 3M ON TEST;
2、在创建用户完成之后对用户限额进行指定:
CREATE USER BCD IDENTIFIED BY BCD
DEFAULT TABLESPACE TEST;
ALTER USER BCD QUOTA 3M ON TEST;
3、更改用户的表空间限额:
全局:
grant unlimited tablespace to abc;
针对某个表空间:
alter user abc quota unlimited on test;
回收:
revoke unlimited tablespace from abc;
alter user abc quota 0 on test;


--举例,使一个用户只能访问自已默认表空间
第一,回收unlimited tablespace权限
revoke unlimited tablespace from username
alter user username quota unlimited on tablespace_name


与表空间限额先关的数据字典:
dba_ts_quotas:DBA_TS_QUOTAS describes tabelspace quotas for all users
user_ts_quotas:USER_TS_QUOTAS describes tablespace quotas for the current user. This view does not display the USERNAME column;








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

请登录后发表评论 登录
全部评论

注册时间:2015-09-21

  • 博文量
    211
  • 访问量
    276591