对象权限
      不同的对象具有不同的对象权限
      对象的拥有者拥有所有权限
      对象的拥有者可以向外分配权限
      ORACLE一共有种对象权限
 
      对象权限         表   视图   序列   过程
      修改(alter)         √            √
      删除(delete)       √    √
      执行(execute)                             √
      索引(index)        √
      插入(insert)        √    √
      关联(references) √    √
      选择(select)        √    √      √
      更新(update)      √    √
a.对象授权
       GRANT object_priv|ALL [(columns)]
       ON object
       TO {user|role|PUBLIC}
       [WITH GRANT OPTION];
 
       ALL:所有对象权限
       PUBLIC:授给所有的用户
       WITH GRANT OPTION:允许用户再次给其它用户授权
查询用户所拥有的权限
select owner,table_name,grantor,privilege from user_tab_privs;select owner,table_name,grantor,privilege from user_col_privs;
 b.授予系统权限与授予对象权限的语法差异:
       授予对象权限时需要指定关键字ON,从而能够确定权限所应用的对象。对于表和视图可以指定特定的列来授权。
示例
授予c##guest  账户 fixf_svr_szh  查询权限给c##test,只对zhid字段授予update权限,将权限授予给c##test1角色。
SQL> grant select on c##guest.fixf_svr_szh to c##test;Grant succeeded.SQL> grant update (zhid) on c##guest.fixf_svr_szh to c##test;Grant succeeded.SQL> grant update (zhid) on c##guest.fixf_svr_szh to c##test1;Grant succeeded.
向数据库所有用户分配权限
SQL> grant select on c##guest.fixf_svr_xzh to public;Grant succeeded.
数据字典视图描述
   
    USER_TAB_PRIVS_MADE      查询授出去的对象权限(通常是属主自己查)
    USER_TAB_PRIVS_RECD      用户拥有的对象权限
 
    USER_COL_PRIVS_MADE      用户分配出去的列的对象权限
    USER_COL_PRIVS_RECD      用户拥有的关于列的对象权限
 
    USER_SYS_PRIVS            用户拥有的系统权限
    USER_TAB_PRIVS            用户拥有的对象权限
    USER_ROLE_PRIVS       用户拥有的角色
收回对象权限
       使用REVOKE 语句收回权限
       使用WITH GRANT OPTION 子句所分配的权限同样被收回
 
       REVOKE {privilege [, privilege…]|ALL}
       ON object
       FROM   {user[, user…]|role|PUBLIC}
       [CASCADE CONSTRAINTS];
 
       CASCADE CONSTRAINTS 为处理引用完整性时需要
取消授予所有用户的查询权限
SQL> revoke select on c##guest.fixf_svr_xzh from public;Revoke succeeded.
取消表字段update权限,如果需要修改或添加update权限的字段,应该先取消后重新添加。
SQL> revoke update on c##guest.fixf_svr_szh from c##test1;Revoke succeeded.SQL> grant update (zhid,hm,ye) on c##guest.fixf_svr_szh to c##test1;Grant succeeded.
级联权限添加’with grant option’,如果取消某个用户的对象权限,对于该用户使用with grant option授予其它用户相同权限来说, 将级联删除这些用户权限
SQL> grant select on c##guest.fixf_Svr_xzh to c##test with grant option;Grant succeeded.SQL> revoke select on c##guest.fixf_svr_xzh from c##test;Revoke succeeded.
