您的位置:首页 > 其它

数据字典应用

2012-04-11 16:13 267 查看
oracle 11g中有多少角色:
SQL> select * from dict where table_name='DBA_ROLES';
TABLE_NAME
------------------------------
COMMENTS
------------------------------------------------------
------------------------------------------------------
DBA_ROLES
All Roles which exist in the database
SQL> select * from dba_roles;
ROLE PASSWORD
------------------------------ --------
CONNECT NO
RESOURCE NO
DBA NO
SELECT_CATALOG_ROLE NO
EXECUTE_CATALOG_ROLE NO
DELETE_CATALOG_ROLE NO
EXP_FULL_DATABASE NO
IMP_FULL_DATABASE NO
LOGSTDBY_ADMINISTRATOR NO
AQ_ADMINISTRATOR_ROLE NO
AQ_USER_ROLE NO
ROLE PASSWORD
------------------------------ --------
DATAPUMP_EXP_FULL_DATABASE NO
DATAPUMP_IMP_FULL_DATABASE NO
GATHER_SYSTEM_STATISTICS NO
RECOVERY_CATALOG_OWNER NO
SCHEDULER_ADMIN NO
HS_ADMIN_ROLE NO
GLOBAL_AQ_USER_ROLE GLOBAL
OEM_ADVISOR NO
OEM_MONITOR NO
WM_ADMIN_ROLE NO
JAVAUSERPRIV NO
ROLE PASSWORD
------------------------------ --------
JAVAIDPRIV NO
JAVASYSPRIV NO
JAVADEBUGPRIV NO
EJBCLIENT NO
JMXSERVER NO
JAVA_ADMIN NO
JAVA_DEPLOY NO
CTXAPP NO
XDBADMIN NO
XDB_SET_INVOKER NO
AUTHENTICATEDUSER NO
ROLE PASSWORD
------------------------------ --------
XDB_WEBSERVICES NO
XDB_WEBSERVICES_WITH_PUBLIC NO
XDB_WEBSERVICES_OVER_HTTP NO
SPATIAL_WFS_ADMIN YES
ORDADMIN NO
OLAPI_TRACE_USER NO
OLAP_XS_ADMIN NO
OLAP_DBA NO
CWM_USER NO
OLAP_USER NO
WFS_USR_ROLE YES
ROLE PASSWORD
------------------------------ --------
SPATIAL_CSW_ADMIN YES
CSW_USR_ROLE YES
WKUSER NO
MGMT_USER NO
OWB$CLIENT YES
OWB_DESIGNCENTER_VIEW YES
OWB_USER NO
已选择51行。
每个角色的系统权限是什么?两种方法,不同的数据字典。
SQL> select * from dba_sys_privs where grantee='RESOURCE';---大写权限名字
GRANTEE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
RESOURCE CREATE TRIGGER NO
RESOURCE CREATE SEQUENCE NO
RESOURCE CREATE TYPE NO
RESOURCE CREATE PROCEDURE NO
RESOURCE CREATE CLUSTER NO
RESOURCE CREATE OPERATOR NO
RESOURCE CREATE INDEXTYPE NO
RESOURCE CREATE TABLE NO
已选择8行。
SQL> select * from role_sys_privs where role='RESOURCE';
ROLE PRIVILEGE
------------------------------ ----------------------------
RESOURCE CREATE TRIGGER
RESOURCE CREATE SEQUENCE
RESOURCE CREATE TYPE
RESOURCE CREATE PROCEDURE
RESOURCE CREATE CLUSTER
RESOURCE CREATE OPERATOR
RESOURCE CREATE INDEXTYPE
RESOURCE CREATE TABLE
已选择8行。
两种数据字典的区别?
SQL> desc dba_sys_privs;
名称 是否为空? 类型
----------------------------------------- -------- ----------------
GRANTEE NOT NULL VARCHAR2(30)
PRIVILEGE NOT NULL VARCHAR2(40)
ADMIN_OPTION VARCHAR2(3)
SQL> desc role_sys_privs;
名称 是否为空? 类型
----------------------------------------- -------- ----------------
ROLE NOT NULL VARCHAR2(30)
PRIVILEGE NOT NULL VARCHAR2(40)
ADMIN_OPTION VARCHAR2(3)
SQL> select * from dict where table_name='DBA_SYS_PRIVS';
TABLE_NAME
------------------------------
COMMENTS
----------------------------------------------------------
----------------------------------------------------------
DBA_SYS_PRIVS
System privileges granted to users and roles
SQL> select * from dict where table_name='ROLE_SYS_PRIVS';
TABLE_NAME
------------------------------
COMMENTS
-----------------------------------------------------------
-----------------------------------------------------------
ROLE_SYS_PRIVS
System privileges granted to roles
//可以看到dba_sys_privs是users and roles 权限的说明,而role_sys_privs仅仅是对roles权限的说明。哈哈。。。明白了!不明白呀!好的,我们知道scott是数据库中的一个用户,那么他有怎样的权限呢?
我先用dba_sys_privs查看:
SQL> select * from dba_sys_privs where grantee='SCOTT';
GRANTEE PRIVILEGE ADM
------------------------------ ---------------------------------------- ---
SCOTT CREATE SYNONYM NO
SCOTT UNLIMITED TABLESPACE NO
yes!可以看见是吧?
那我再用role_sys_privs查看:
SQL> select * from role_sys_privs where role='SCOTT';
未选定行
是的,没有结果。这足以说明问题了吧!

每个角色的对象权限呢?
SQL> select * from dba_tab_privs where grantee='WKUSER';
GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRA HIE
------------------------------ ------------------------------ ------------------------------ ------------------------------ ---------------------------------------- --- ---
WKUSER SYS DBMS_LOCK SYS EXECUTE NO NO
当前数据库全名称?
SQL> select * from global_name;
GLOBAL_NAME
---------------------------------
TEST
global_name是干啥用的?
SQL> select * from dict where table_name like 'GLOBAL_NAME';
TABLE_NAME
------------------------------
COMMENTS
-------------------------------------------------------------
-------------------------------------------------------------
GLOBAL_NAME
global database name
golbal_name和v$database的区别是?
SQL> select * from dict where table_name='V$DATABASE';
TABLE_NAME
------------------------------
COMMENTS
--------------------------------------------------------
--------------------------------------------------------
V$DATABASE
Synonym for V_$DATABASE

//可以看到V$DATABASE是V_$DATABASE的同名表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  it 数据字典