日期:2014-05-16  浏览次数:20537 次

oracle(2)权限管理

系统权限与对象权限(授权、撤销权限)
 //系统权限
  grant create session to lisi;
  grant create table to lisi;
  grant unlimited tablespace to lisi;

  revoke create session from lisi;
  revoke create table from lisi;
  revoke unlimited tablespace from lisi;

//把 create session权限授权给所有用户
  grant create session to public

  select * from user_sys_privs 查看当前用户有哪些系统权限
//对象权限
  grant selecton mytable to lisi
  grant insert on mytable to lisi
  grant all on mytable to lisi;

  revoke selecton mytable from lisi
  revoke insert on mytable from lisi
  revoke all on mytable from lisi;
 
  select * from user_tab_privs 查看当前用户有哪些对象权限

 对象权限可以控制到列
 //授权给lisi 只能更新字段name这一列
  grant update(name) on mytable to lisi
  grant insert(name) on mytable to lisi
  select * from user_col_privs查看当前用户在列上有哪些对象权限
  注意:查询和删除不能控制到列

 

权限的传递
系统权限的传递
grant alter any table to lisi with admin option
对象权限的传递
grant select on tablename to lisi with grant option

 角色(权限的集合)
create role myrole;
grant create session to myrole;
grant create table to myrole;
create user zhangsan identified by zhangsan;
grant myrole to zhangsan;

删除角色
drop role myrole;

注意:有些系统权限无法直接赋给角色 只能赋给用户(因为权限太大)
      create table / create any table(有“any”表示不仅可以给自己创建表 也可以给别用户创建表)
      [alter table]  alter any table
      [drop table]  drop any table
      这两个权限没有alter table、drop table

      表是属于某一个用户的
      角色不属于某个用户的,也就是说只要有一个用户创建一个角色,另一个用户可以无条件使用这个角色

 

oracle grant connect,resource to user包括的权限

CONNECT角色:    --是授予最终用户的典型权利,最基本的  
   
   ALTER    SESSION    --修改会话  
   CREATE    CLUSTER    --建立聚簇  
   CREATE    DATABASE    LINK    --建立数据库链接  
   CREATE    SEQUENCE    --建立序列  
   CREATE    SESSION    --建立会话  
   CREATE    SYNONYM    --建立同义词  
   CREATE    VIEW    --建立视图  
   
   
   RESOURCE角色:    --是授予开发人员的  
   
   CREATE    CLUSTER    --建立聚簇  
   CREATE    PROCEDURE    --建立过程  
   CREATE    SEQUENCE    --建立序列  
   CREATE    TABLE    --建表  
   CREATE    TRIGGER    --建立触发器  
   CREATE    TYPE    --建立类型

但是实际查找 oracle 10 2.0.1.0 系统时,发现两个角色的权限如下: