随风而行

^o^ 格言:相信没有做不到的事情,只有想不到的事情.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Oracle系统中用户权限的赋予,查看和管理

Posted on 2009-04-02 10:30  随风而行  阅读(1322)  评论(0编辑  收藏  举报

在Oracle数据库中,用户的权限分为两种(在这里我们不讨论dba或dbopr的权限,只考虑普通用户的权限),分别是System Privilege系统权限 和User Table Privilege用户数据表权限.
  
  1.首先,创建用户,以下几条命令可以创建一个用户,前提是必须以DBA的身份登录(如果你不是DBA,不要看下去了):
  
  create user DB_USER identified by DB_USER_PW  '创建用户DB_USER,密码为DB_USER_PW
  
  grant create session to DB_USER   '给用户创建会话的权限
  
  grant resource to DB_USER
  
  2.当用户建立后,会自动在Oracle数据库系统中生成属于该用户的Scheme (可以理解为所有属于该用户的表,视图....等对象的集合).
  
  该用户可以将对这些对象的访问权限赋予其它的系统用户.
  
  3.该用户用sqlplus登录后,以下命令可以看到该用户的权限(该部分取自于CNOUG网站):
  
  本用户读取其他用户对象的权限:
    select * from user_tab_privs;
  本用户所拥有的系统权限:
    select * from user_sys_privs;
  
  4. System Privilege列表
  
  PRIVILEGE NAME                   PROPERTY
  ---------- ---------------------------------------- ----------
     -228 ADMINISTER DATABASE TRIGGER            0
     -227 ADMINISTER RESOURCE MANAGER            1
     -161 ALTER PROFILE                   0
     -189 CREATE ANY LIBRARY                0
     -201 CREATE ANY OPERATOR                0
     -224 CREATE ANY OUTLINE                0 -141 CREATE ANY PROCEDURE               0
     -120 CREATE PUBLIC DATABASE LINK            0
      -90 CREATE VIEW                    0
      -50 DELETE ANY TABLE                 0
     -220 DEQUEUE ANY QUEUE                 1
      -63 DROP ANY CLUSTER                 0
     -223 DROP ANY CONTEXT                 0
     -217 DROP ANY DIMENSION                0
     -178 DROP ANY DIRECTORY                0
      -73 DROP ANY INDEX                  0
     -208 DROP ANY INDEXTYPE                0
     -191 DROP ANY LIBRARY                 0
     -203 DROP ANY OPERATOR                 0
     -226 DROP ANY OUTLINE                 0
     -209 EXTENDS ANY TYPE                 0 -186 EXTENDS TYPE                   0
     -139 FORCE ANY TRANSACTION               0
     -138 FORCE TRANSACTION                 0
     -199 WRITEUP                      0
     -196 WRITEUP DBHIGH

               ......

               ......

-- 确定角色的权限
select * from role_tab_privs ; 数据字典视图包含了授予角色的对象权限
select * from role_role_privs ;             包含了授予另一角色的角色
select * from role_sys_privs ;              包含了授予角色的系统权限

-- 确定用户帐户所授予的权限
select * from DBA_tab_privs ;   直接授予用户帐户的对象权限
select * from DBA_role_privs ; 授予用户帐户的角色
select * from DBA_sys_privs ;   授予用户帐户的系统权限

查看当前用户权限:
SQL> select * from session_privs;

PRIVILEGE
----------------------------------------
CREATE SESSION
CREATE TABLE
CREATE CLUSTER
CREATE SYNONYM
CREATE VIEW
CREATE SEQUENCE
CREATE PROCEDURE
CREATE TRIGGER