Oracle菜鳥之grant授權

來源:互聯網
上載者:User

標籤:資料庫   dba   grant   授權   

<pre name="code" class="sql">1、給資料庫使用者授權(對象為使用者表)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:對指定使用者開放許可權2、給資料庫使用者授權(對象多為系統資料表,如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許可權3、查看指定使用者有哪些系統許可權select * from dba_role_privs where grantee=upper('username');4、查看指定使用者有哪些對象許可權select * from dba_tab_privs where grantee=upper('username');可能遇到問題:1、當在一個建立資料庫使用者上建立表失敗時,可以查看系統許可權在目前使用者執行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使用者1、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;的許可權
<img src="http://img.blog.csdn.net/20140801130948598?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2ltcGxlX29uX2Zvb3Q=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<pre name="code" class="sql">2、select * from dba_sys_privs where grantee=upper('luyongpeng');該許可權可以通過執行grant dba to luyongpeng;時自動加上,但admin_option預設為NO可以通過grant unlimited tablespace to luyongpeng with admin option;將admin_option修改為YES當執行revoke dba from luyongpeng;時,系統會同時回收dba許可權和unlimite tablespace許可權如果想保留dba許可權,但回收unlimited tablespace許可權,可以通過revoke unlimited tablespace from luyongpeng;實現



<pre name="code" class="sql">3、select * from dba_tab_privs where grantee=upper('luyongpeng');該許可權表現了目前使用者對owner的哪些表具有何種操作許可權,並且grantable欄位值YES表明了luyongpeng使用者可以繼續對其他使用者開放signtest表的許可權



<pre name="code" class="sql">執行grant insert on signtest to luyongpeng with grant option;grant delete on signtest to luyongpeng with grant option;後,重新查詢dba_tab_privs表資訊如下,可以看到當加上with grant option選項後,GRANTABLE欄位值為YES





相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.