对象权限
不同的对象具有不同的对象权限
对象的拥有者拥有所有权限
对象的拥有者可以向外分配权限
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:允许用户再次给其它用户授权

查询用户所拥有的权限

  1. select owner,table_name,grantor,privilege from user_tab_privs;
  2. select owner,table_name,grantor,privilege from user_col_privs;


b.授予系统权限与授予对象权限的语法差异:
授予对象权限时需要指定关键字ON,从而能够确定权限所应用的对象。对于表和视图可以指定特定的列来授权。

示例
授予c##guest 账户 fixf_svr_szh 查询权限给c##test,只对zhid字段授予update权限,将权限授予给c##test1角色。

  1. SQL> grant select on c##guest.fixf_svr_szh to c##test;
  2. Grant succeeded.
  3. SQL> grant update (zhid) on c##guest.fixf_svr_szh to c##test;
  4. Grant succeeded.
  5. SQL> grant update (zhid) on c##guest.fixf_svr_szh to c##test1;
  6. Grant succeeded.

向数据库所有用户分配权限

  1. SQL> grant select on c##guest.fixf_svr_xzh to public;
  2. 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 为处理引用完整性时需要

取消授予所有用户的查询权限

  1. SQL> revoke select on c##guest.fixf_svr_xzh from public;
  2. Revoke succeeded.

取消表字段update权限,如果需要修改或添加update权限的字段,应该先取消后重新添加。

  1. SQL> revoke update on c##guest.fixf_svr_szh from c##test1;
  2. Revoke succeeded.
  3. SQL> grant update (zhid,hm,ye) on c##guest.fixf_svr_szh to c##test1;
  4. Grant succeeded.

级联权限添加’with grant option’,如果取消某个用户的对象权限,对于该用户使用with grant option授予其它用户相同权限来说, 将级联删除这些用户权限

  1. SQL> grant select on c##guest.fixf_Svr_xzh to c##test with grant option;
  2. Grant succeeded.
  3. SQL> revoke select on c##guest.fixf_svr_xzh from c##test;
  4. Revoke succeeded.