Oracle雜記

用戶A給用戶B受權表的權限sql

--使用dba登陸Oracle受權:數據庫

GRANT  SELECT UPDATE DELETE  ON  usera.<表名>  TO  userb;
--或
GRANT  ALL  ON  usera.<表名>  TO  userb;
 
一、給數據庫用戶受權(對象爲用戶表)
GRANT privilege[, ...] ON object[, ...] TO { PUBLIC | GROUP group | username}
 
privilege:
     select :查詢
     insert :插入
     update :更新
     delete :刪除
     rule
     all :全部
 
grant select , insert , update on tablename to public ;
給全部用戶授予查詢、插入、更新tablename表的權限
revoke select , insert , update on tablename from public ;//收回全部用戶查詢、插入、更新tablename表的權限
 
object:
     table :表
     view :視圖
     sequence :序列
     index :索引
 
grant select , insert , update on tablename,viewname,sequencename,indexname to public ;
 
public :對全部用戶開放權限
GROUP groupname:對該組全部用戶開放權限
username:對指定用戶開放權限
 
二、給數據庫用戶受權(對象多爲系統表,如dba能夠查看的表)
 
grant dba to username;
不給用戶授予dba權限,用戶將沒法查看系統表,例如v$datafile,dba_data_files等
revoke dba from username;//對用戶username回收dba權限
注:若是使用pl/sql登陸,授予dba權限後,須要從新登錄(初始理解,錯誤)
後經驗證,不須要從新登錄,只須要從新打開一個會話就能夠
理解:數據庫的全部權限操做,都是以會話爲單位,若是當前會話執行時沒有dba權限,即使是已經從新賦予了權限,在當前會話中也是不起做用的
而若是當前會話有dba權限,然後臺取消了權限,那麼當前會話的dba權限也不會消失
 
grant connect to username;
不給新建用戶授予 connect 權限,新建用戶沒法經過SID或SERVICE_NAME鏈接數據庫實例,即沒法登陸數據庫
revoke connect to username;//對用戶username回收 connect 權限
 
grant resource to username with admin option ;
grant unlimited tablespace to username with admin option ;
不給新建用戶授予resource權限,新建用戶沒法建立表
revoke resource from username;//對用戶回收resource權限
 
三、查看指定用戶有哪些系統權限
select * from dba_role_privs where grantee= upper ( 'username' );
 
四、查看指定用戶有哪些對象權限
select * from dba_tab_privs where grantee= upper ( 'username' );
 
 
可能遇到問題:
一、當在一個新建數據庫用戶上建立表失敗時,能夠查看系統權限
     在當前用戶執行 select * from dba_role_privs where grantee= upper ( 'username' );若是不能執行(提示表或視圖不存在),說明沒有dba權限
     解決方法:能夠登陸sys帳戶賦予dba權限
     登陸sys:sqlplus / as sysdba
     給username賦權限: grant dba to username;
 
     也能夠直接登陸sys帳戶, select * from dba_role_privs where grantee= upper ( 'username' ),若是granted_role的值沒有dba,說明沒有dba權限
 
 
權限相關的查詢和賦予:
全部權限的賦予均是在有賦予權限的用戶下進行,此處受權用戶都是sys用戶
一、 select * from dba_role_privs where grantee= upper ( 'luyongpeng' );
其中,admin_option是經過在受權時添加 with admin option 選項定義
grant dba to luyongpeng with admin option ;//admin_option爲YES,若是不加 with admin option 選項,則admin_option爲 NO
使用 grant dba to luyongpeng;沒法覆蓋以前的權限
grant dba to luyongpeng with admin option 能夠覆蓋 grant dba to luyongpeng;的權限
相關文章
相關標籤/搜索