###我所使用的系统为Linux AS 4U6数据库版本为10.2.0.1.0###
想查看现在用户所拥有的全部权限,输入以下命令。
SQL> select * from session_privs;PRIVILEGE
----------------------------------------
CREATE SESSION
UNLIMITED TABLESPACE
CREATE TABLE
CREATE CLUSTER
CREATE SEQUENCE
CREATE PROCEDURE
CREATE TRIGGER
CREATE TYPE
CREATE OPERATOR
CREATE INDEXTYPE10 rows selected.SQL> show user
USER is "USER1"
SQL>
在这里可以看出user1所拥有的所有权限。
查看权限的一些表(数据字典)
SYSTEMS:
DBA_SYS_PRIVS 系统权限被分配给用户或角色的情况
ROLE_SYS_PRIVS 角色被分配到的权限。(只显示当前用户可访问的角色)
USER_SYS_PRIVS 当前用户被分配到的系统权限。
TABLES:
DBA_TAB_PRIVS 关于所有的表被授权情况
ALL_TAB_PRIVS 当前用户授权的和当前用户或当前用户被分配到的角色(包含PUBLIC)被授权的表
USER_TAB_PRIVS 当前用户授权的和当前用户被授权的表
ROLE_TAB_PRIVS 角色被授权的表(只显示当前用户可访问的角色)
ALL_TAB_PRIVS_MADE 当前用户拥有的或可授权给别人的表被授权情况
USER_TAB_PRIVS_MADE 当前用户拥有的表被授权给别人的表。
ALL_TAB_PRIVS_RECD 当前用户或当前用户拥有的角色(包含PUBLIC)被授权的表
USER_TAB_PRIVS_RECD 当前用户被授权的表
COLUMNS:
DBA_COL_PRIVS 关于所有表列被授权的。
ALL_COL_PRIVS 当前用户授权的,被授权的,当然用户分配到的角色被授权的和PUBLIC被授权的表列
USER_COL_PRIVS 当前用户拥有的,可授权的或被授权的表列
ALL_COL_PRIVS_MADE 当前用户用户拥有的或可授权给别人的表列授权情况
USER_COL_PRIVS_MADE 当前用户所拥有的表被别人授权的情况
ALL_COL_PRIVS_RECD 当前用户或当前用户所分配到的角色(或PUBLIC)被分配到的表列
USER_COL_PRIVS_RECD 当前用户被分配到的表列。
ROLE
DBA_ROLE_PRIVS 被分配给用户(或角色)的全部角色信息
ROLE_ROLE_PRIVS 角色分配给别的角色的信息。(只显示用户可访问的角色信息)
还有一个特殊的,SESSION_PRIVS 显示查看当前用户的所有系统权限。
用以上的信息可以查某个用户所拥有的权限。
系统权限可以用以下命令。
SELECT * FROM SESSION_PRIVS;
关于对象权限,就是两个相加的。
关于表的,就是 SELECT * FROM ALL_TAB_PRIVS_RECD
关于表列,就是 SELECT * FROM ALL_COL_PRIVS_RECD
在上面的几个数据字典表中可以看到关于系统权限的,就没有谁赋予给谁的,只有被赋予的用户名。因此,无论是谁赋予给这个用户的,是无关紧要的。
关于对象权限,会有赋予权限的人和被赋予权限的人。这样,就可以知道赋予权的人的权限被收回,被赋予权限的人的权限也是一同被收回的。
关于权限的扩展第一部分先写到这里。
以后有扩展时,请看用户管理-权限(扩展2)