对象的拥有者拥有所有权限
对象的拥有者可以向外分配权限
权限名称 说明
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转授下去的该权限