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;
例如:要查看 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/27252036/viewspace-1613184/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27252036/viewspace-1613184/