五種Oracle使用者的授權與管理

來源:互聯網
上載者:User

  建立和刪除使用者是Oracle使用者管理中的常見操作,但這其中隱含了Oracle資料庫系統的系統許可權與對象許可權方面的知識。掌握還Oracle使用者的授權操作和原理,可以有效提升我們的工作效率。 Oracle資料庫的許可權系統分為系統許可權與對象許可權。系統許可權( Database System Privilege )可以讓使用者執行特定的命令集。例如,CREATE TABLE許可權允許使用者建立表,GRANT ANY PRIVILEGE 許可權允許使用者授予任何系統許可權。對象許可權( Database Object Privilege )可以讓使用者能夠對各個對象進行某些操作。例如DELETE許可權允許使用者刪除表或視圖的行,SELECT許可權允許使用者通過select從表、視圖、序列(sequences)或快照 (snapshots)中查詢資訊。

  每個Oracle使用者都有一個名字和口令,並擁有一些由其建立的表、視圖和其他資源。Oracle角色(role)就是一組許可權(privilege)(或者是每個使用者根據其狀態和條件所需的訪問類型)。使用者可以給角色授予或賦予指定的許可權,然後將角色賦給相應的使用者。一個使用者也可以直接給其他使用者授權。

  一、建立使用者

  Oracle內部有兩個建好的使用者:SYSTEM和SYS。使用者可直接登入到SYSTEM使用者以建立其他使用者,因為SYSTEM具有建立別 的使用者的 許可權。在安裝Oracle時,使用者或系統管理員首先可以為自己建立一個使用者。例如:

  create user user01 identified by u01;

  該命令還可以用來設定其他許可權,詳細情況參見自學資料。要改變一個口令,可以使用alter user命令:

  alter user user01 identified by usr01;

  現在user01的口令已由“u01”改為“usr01”。

  除了alter user命令以外,使用者還可以使用password命令。如果使用password命令,使用者輸入的新口令將不在螢幕上顯示。有dba特權的使用者可以通過password命令改變任何其他使用者的口令;其他使用者只能改變自己的口令。

  當使用者輸入password命令時,系統將提示使用者輸入舊口令和新口令,如下所示:

  password

  Changing password for user01

  Old password:

  New password:

  Retype new password:

  當成功地修改了口令時,使用者會得到如下的反饋:

  Password changed

  二 、刪除使用者

  刪除使用者,可以使用drop user命令,如下所示:

  drop user user01;

  如果使用者擁有對象,則不能直接刪除,否則將返回一個錯誤值。指定關鍵字CASCADE,可刪除使用者所有的對象,然後再刪除使用者。下面的例子用來刪除使用者與其對象:

  drop user user01 CASCADE;

  三 、3種標準角色

  Qracle為了相容以前的版本,提供了三種標準的角色(role):CONNECT、RESOURCE和DBA。

  1. CONNECT Role(串連角色)

  臨時使用者,特別是那些不需要建表的使用者,通常只賦予他們CONNECTrole。CONNECT是使用Oracle的簡單許可權,這種許可權只有在對其他使用者的表有訪問權時,包括select、insert、update和delete等,才會變得有意義。擁有 CONNECT role的使用者還能夠建立表、視圖、序列(sequence)、簇(cluster)、同義字(synonym )、會話(session)和與其他資料庫的鏈(link)。

  2. RESOURCE Role(資源角色)

  更可靠和正式的資料庫使用者可以授予RESOURCE role。RESOURCE提供給使用者另外的許可權以建立他們自己的表、序列、過程(procedure)、觸發器(trigger)、索引(index)和簇(cluster)。

  3. DBA Role(資料庫管理員角色)

  DBA role擁有所有的系統許可權----包括無限制的空間限額和給其他使用者授予各種許可權的能力。SYSTEM由DBA使用者擁有。下面介紹一些DBA經常使用的典型許可權。

  (1)grant(授權)命令

  下面對剛才建立的使用者user01授權,命令如下:

  grant connect, resource to user01;

  (2)revoke(撤消)許可權

  已授與權限可以撤消。例如撤消(1)中的授權,命令如下:

  revoke connect, resource from user01;

  一個具有DBA角色的使用者可以撤消任何別的使用者甚至別的DBA的CONNECT、RESOURCE 和DBA的其他許可權。當然,這樣是很危險的,因此,除非真正需要,DBA許可權不應隨便授予那些不是很重要的一般使用者。

  撤消一個使用者的所有許可權,並不意味著從Oracle中刪除了這個使用者, 也不會破壞使用者建立的任何錶;只是簡單禁止其對這些表的訪問。其他要訪問這些表的使用者可以象以前那樣地訪問這些表。

  四、建立角色

  除了前面講到的三種系統角色----CONNECT、RESOURCE和DBA,使用者還可以在Oracle建立自己的role。使用者建立的role可以由表或系統許可權或兩者的組合構成。為了建立role,使用者必須具有CREATE ROLE系統許可權。下面給出一個create role命令的執行個體:

  create role STUDENT;

  這條命令建立了一個名為STUDENT的role。

  一旦建立了一個role,使用者就可以給他授權。給role授權的grant命令的文法與對對使用者的文法相同。在給role授權時,在grant命令的to子句中要使用role的名稱,如下所示:

  grant select on CLASS to STUDENT;

  現在,擁有STUDENT 角色的所有使用者都具有對CLASS 表的select許可權。

  五、刪除角色

  要刪除角色,可以使用drop role命令,如下所示:

  drop role STUDENT;

  指定的role連同與之相關的許可權將從資料庫中全部刪除。

聯繫我們

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