用法:
有兩個用戶:user1和user2,都是在庫TEST上,分別有表user1.table1,user2.table2
但是用user1登錄的時候,user2上表就不能用,此時就可以使用grant命令了:
GRANT privilege [, ...] ON object [, ...] TO { PUBLIC | GROUP group | username }
如 grant insert,update,delete on user2.bable2 to user1 此時,user1用戶就可以操作user2用戶的table2表了,
如 在user1下,select * from user2.table2
不同用戶下序列的賦權:GRANT SELECT ,ALTER ON user2.序列名 TO user1;
GRANT SELECT ,ALTER ON ahsimis_query.seq_wsbs_person_pay_id TO ahsicp3;
不同用戶下的函數賦權
grant execute on 函數名 to 其它用戶
grant execute on AHSIMIS_QUERY.wsbs_pk_date_validate to ahsicp3
不通用戶下包的賦權
grant execute on 包名 to 其他用戶;
grant execute on ahsimis_query.pkg_pan_公眾服務平台接口 to ahsicp3
進階:
不同庫
命令格式
grant 權限 on 數據庫名.表名 to 用戶名@登陸方式 identified by 'password1';
revoke的作用則是回收授於用戶的權限
命令格式為:
revoke 權限 on 數據庫名.表名 from 用戶名@登陸方式;
查看權限:
Oracle中數據字典視圖分為3大類,用前綴區別,分別為:USER,ALL 和 DBA,許多數據字典視圖包含相似的信息。
USER_*:有關用戶所擁有的對象信息,即用戶自己創建的對象信息
ALL_*:有關用戶可以訪問的對象的信息,即用戶自己創建的對象的信息加上其他用戶創建的對象但該用戶有權訪問的信息
DBA_*:有關整個數據庫中對象的信息
(這里的*可以為TABLES,INDEXES,OBJECTS,USERS等。)
1.1查看所有用戶
1.select * from dba_user;
2.select * from all_users;
3.select * from user_users;
1.2查看用戶系統權限
1.select * from dba_sys_privs;
2.select * from all_sys_privs;
3.select * from user_sys_privs;
1.3查看用戶對象權限
1.select * from dba_tab_privs;
2.select * from all_tab_privs;
3.select * from user_tab_privs;
1.4.查看所有角色
1.select * from dba_roles;
1.5.查看用戶所擁有的角色
1.select * from dba_role_privs;
2.select * from user_role_privs;
1.6.查看當前用戶的缺省表空間
1.select username,default_tablespace from user_users;
1.7.查看某個角色的具體權限
1.如grant connect,resource,create session,create view to TEST;
2.查看RESOURCE具有那些權限,
3.用SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE';