oracle 11g 學習筆記 11_2

來源:互聯網
上載者:User
系統管理權限和角色

*介紹
當剛剛建立使用者時,使用者沒有任何許可權,也不能執行任何操作、如果要執行某種特定的資料庫操作,則必須為其授予系統的許可權;如果使用者要訪問其它方案的對象,則必須為其授予對象的許可權,為了簡化許可權的管理,可以使用角色。
一、許可權1、系統許可權

什麼是系統許可權?系統許可權有哪些,如何賦給系統許可權?
使用者針對資料庫的許可權 ,系統層級的許可權,比如能不能建庫,能不能建表,能不能登入資料庫,能不能建立使用者等。。
系統許可權是指執行特定類型sql命令的權利,它用於控制使用者可以執行的一個或是一組資料庫操作,比如當使用者具有create table許可權時,可以在其方案中建表,當使用者具有create any table許可權時,可以在任何方案中建表。oracle提供了上百多種系統許可權。
常用的有:
create session 串連資料庫 create table 建表
create view 建視圖 create public synonyn 建同義字
create procedure 建過程、函數、包 create trigger 建觸發器
create cluster 建族

.系統許可權有哪些,可以通過這個命令來查詢

select * from system_privilege_map order by name;

*需要注意的是:系統許可權不是級聯回收。
2、對象許可權

對象許可權:是一個方案去訪問別的方案的資料對象的權力
方案:當一個使用者(假如是Tom)建立時,那麼oracle會自動地給Tom使用者對應了一個叫Tom的方案,方案的名字和使用者的名字完全一樣的,裡面有各種各樣的資料對象:表,視圖,觸發器,預存程序等等。Tom使用者登入後,方案裡面的東西都歸Tom所有。當Tom使用者想要去訪問scott方案的表時,那麼就要被scott賦予相應的對象許可權。
常用的對象許可權有:
alter 修改(表修改) delete 刪除
select 查詢 insert 添加

update 修改(資料修改) index 索引
references 引用 execute 執行

.查看使用者或者角色的所有對象許可權、

select distinct privilege from dba_tab_privs;

*授予對象許可權
授予對象許可權是由對象許可權的所有者或者是sys、system使用者來完成的,命令為 grant。如果帶有 with grant option選項,那麼則可以繼續將該許可權授予給其它使用者。
.比如建立了 pangzi 使用者,要可以查詢scott.emp的表,那麼就必須授予pangzi相應的對象許可權

grant select on emp to pangzi;

.希望pangzi可以修改scott.emp的表,並且可以將該許可權授予給其它使用者。

grant update on emp to pangzi with grant option;

.希望pangzi可以擁有 查詢,修改,刪除的許可權。

grant all on emp to pangzi;

*授予列許可權,可以控製得更加精細
.希望pangzi可以修改scott.emp 的表的ename, sal資料。

grant update on emp(ename,sal) to pangzi;

*回收許可權
收回對象許可權可以由對象的所有者來完成,也可以由sys, system使用者來完成. 命令 revoke。
.收回pangzi可以查詢scott.emp的許可權

revoke select on emp from pangzi;

需要注意的是:對象許可權的回收是級聯回收的。也就是說,scott使用者授予了pangzi 一個select許可權並擁有了 with grant option 許可權,當pangzi又授予了另外一個使用者shouzi這個select許可權時,要是scott對pangzi收回了select許可權,那麼,shouzi的select許可權也將沒有了。
二、角色:簡化許可權的管理

假如希望Tom使用者可以登入、建立表、訪問scott方案的表,如果要給Tom這三個許可權,就要賦值三次,那就太麻煩了。一個使用者建立之後就要給它許多預設的許可權,要是一個一個給它的話,比較麻煩。於是oracle給了這樣一種方式系統管理權限:
將 create session,select,insert,update授予給角色,然後將該角色授予給使用者,那麼該使用者就擁有那些許可權了。
角色分為預定義角色和自訂角色:
1.預定義角色

*connect 角色
connect 角色具有一般應用開發人員需要的大部分許可權,當建立了一個使用者後,多數情況下,只要給使用者授予connect和resource 角色就夠了。connect角色具有的系統許可權:
alter session
串連資料庫
create cluster
create database link
create table
create view
create sequence
*resource角色具有的系統許可權
create cluster
create indextype
create table
create sequence
create type
create procedure
create trigger

*dba角色
dba角色具有所有的系統許可權,及with admin option選項,預設的dba使用者為sys和system,他們可以將任何系統許可權授予其它使用者。但是,dba角色不具備sysdba和sysoper的特權(啟動和關閉資料庫)。 
*顯示角色資訊
.顯示所有角色

select * from dba_roles;

.顯示角色具有的角色。
這個可以通過資料字典視圖dba_role_privs來顯示某個使用者具有的所有角色及當前預設角色。

select granted_role,default_role from dba_role_privs where grantee = '使用者名稱';

當然了,這個用pl/sql developer工具查看更加直觀。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.