对象的拥有者拥有所有权限

对象的拥有者可以向外分配权限

权限名称 说明

权限名称说明
all所有对象权限
alter修改表结构
delete删除数据
select查询数据
insert添加数据
update修改数据
index在表上建立索引
references引用
execute执行存储过程

对象权限授予

1)将表tb2的所有操作权限授予全体用户

SQL> grant all on tb2 to public;
SQL> grant all on tb2 to tom;

备注:all权限不包括drop

2)授予列权限

sql>grant update (sal) on emp to tom; ## tom只可修改emp表sal字段

3)授予alter权限

sql>grant alter on emp to tom; ##tom可修改emp表的结构

授予execute权限

sql>grant execute on dbms_transaction to ken; #Ken可执行包abms_transaction

对象权限查询

1)显示角色或用户拥有哪些对象对象权限

sql>select distinct privilege from dba_tab_privs;
SQL> select grantee,privilege,table_name, owner from dba_tab_privs where grantee=upper('tom');

2)显示用户可以查询的表

SQL> select owner, table_name from all_tables;
SQL> select owner, table_name from all_tables where owner =upper('scott'); ##用户scott所拥有表

3)显示当前用户创建的表

SQL> select table_name from user_tables;

4)显示当前用户可以存取的表(被授权的)

SQL> select grantor, table_schema, table_name, privilege from all_tab_privs;

5)显示当前用户授出权限的表​(​授出的权限)

SQL> select grantee, owner, table_name, privilege from user_tab_privs;

对象权限回收

对象的权限是会被级联回收的。

sql>revoke select on emp from ken;

回收了Ken用户在emp表上查询权限, 同时也收回了ken转授下去的该权限

文章来源:Oracle入门精读57-Oracle常见对象权限的使用与回收

最后修改:2023 年 11 月 05 日
如果觉得我的文章对你有用,请随意赞赏