Oracle資料操作和控制語言詳解(之二)

來源:互聯網
上載者:User

http://wanwentao.blog.51cto.com/2406488/457603

建立和修改使用者

  CREATE USER
語句將建立一個使用者。當一個使用者串連到ORACLE資料庫時,它必須被驗證。ORACLE中驗證有三種類型:

Database
external
Global
  預設是資料庫驗證,當使用者串連到資料庫時,oracle將檢測使用者是否是資料庫的合法使用者,並且要提供正確的password.external驗證,oracle將只檢測使用者是否是合法使用者,password已經被網路或系統驗證了。global驗證也是只檢測是否是合法使用者,password由oraclesecurity
server驗證。
  Database驗證使用者帳號
  資料庫驗證帳號是張好的預設類型,也是最普通的類型。建立一個帳號是piyush,口令是welcome的帳號,只需執行下面的命令:
CREATE USE piyush IDENTIFIED BY welcome
piyush可以通過下面的語句將口令改變為saraswatt:
ALTER USER piyush IDENTIFIED BY saraswati;
  外部驗證使用者帳號
  使用者帳號進入資料庫時可以不提供口令,這種情況下代替資料庫識別口令的是用戶端作業系統。外部驗證帳號有時也叫OPS$帳號,當他們最初在oracle6開始介紹時,oracle帳號都有關鍵字首碼OPS$,這也就是為什麼init.ora
參數os_authent_prefix是OPS$--預設特徵與oracle6保持一致。os_authent_prefix定義的字串必須被預先處理為用於Oracle外部識別帳號的作業系統帳號名。建立作業系統使用者appl的語句是:
CREATE USER ops$appl IDENTIFIED EATERNALLY

但在通常情況下,os_authent_prefix將被設定為空白,像下面這樣:
CREATE USER appl IDENTIFIED EATERNALLY
  這樣效果是一樣的,關鍵字IDENTIFIED EXTERNALLY告訴ORACLE這是一個外部識別帳號。
  GLOBAL使用者帳號
  GLOBAL類型的使用者帳號資料庫不檢測口令,而是由X.509目錄伺服器檢測口令。建立一個GLOBAL類型的使用者帳號的方法是:
CREATE USER scott IDENTIFIED GLOBALLY AS "CN=scott,OU=divisional,O=sybex,C=US"
  關鍵字IDENTIFIED GLOBALLY AS表示建立的是一個GLOBAL類型的使用者帳號.
  建立和更改使用者帳號
  CREATE USER
用於建立使用者帳號和給使用者帳號的屬性賦值。ALTER USER用於更改使用者帳號和屬性。但CREATE USER語句必須包括使用者名稱和口令。
  有部分屬效能用CREATER USER和ALTER USER語句設定,下面對是這些的屬性具體描述:

  給使用者指派預設資料表空間
  資料表空間(tablespace)是放置表、索引、叢等使用者物件的。如果在create user語句中沒有包含資料表空間,那麼預設的是系統資料表空間。
CREATE USER piyush IDENTIFIED BY saraswati
DEFAULTE TABLESPACE user_data;
ALTER USER manoj DEFAULTE TABLESPACE dev1_data;
  給使用者指派暫存資料表空間
  暫存資料表空間,顧名思義是臨時存放表、索引等使用者物件的臨時段。建立方法一樣
CREATE USER piyush IDENTIFIED BY saraswati
Temporary TABLESPACE user_data;
ALTER USER manoj Temporary TABLESPACE dev1_data;
  給使用者指派資料表空間的使用定額
  使用定額限制使用者在資料表空間中使用磁碟的數量。定額可以按位元組、KB、MB或者無限制來制定。
CREATE USER piyush IDENTIFIED BY saraswati
DEFAULT TABLESPACE user_data
QUOTA UNLIMITED ON user_data
QUOTA 20M ON tools;
ALTER USER manoj QUOTA 2500K ON tools;
  給使用者指派一個簡表
  簡表可以限制使用者在會話時消耗的資源。這些資源套件括:串連資料庫的時間,空閑時間,每次會話的邏輯讀資料的數量等等,預設的簡表對資源無限制。
CREATE USER piyush IDENTIFIED BY saraswati
PROFILE TABLESPACE user_data;
ALTER USER manoj Temporary TABLESPACE dev1_data;
  為使用者響應指定角色
  這個屬性只能由ALTER USER語句設定,試圖用CREATE USER語句設定將回返回一個例外。
ALTER USER manoj DEFAULT ROLE ALL EXCEPT salary_adm;
  為使用者的password設定到期時間以便在使用者下次登入時更改
  當使用者的password到期,在下一次登入時將強迫修改password,oracle提示使用者輸入舊的password,然後輸入新的password。這項功能常用於新使用者,當新使用者用預設的password登入時必須修改立即修改password.
ALTER USER manoj IDENTIFIED BY welcome;
ALTER USER manoj PASSWORD EXPIRE;
  鎖定帳號,是使用者不能登入
ALTER USER ql AC
COUNT LOCK
  對帳號解鎖,以便使用者能登入資料庫
ALTER USER ql ACCOUNT UNLOCK

許可權和角色
  許可權允許使用者訪問屬於其它使用者的對象或執行程式,ORACLE系統提供三種許可權:
   Object 對象級
   System 系統級
   Role 角色級
  這些許可權可以授予給使用者、特殊使用者public或角色,如果授予一個許可權給特殊使用者"Public"(使用者public是oracle預定義的,每個使用者享有這個使用者享有的許可權),那麼就意味作將該許可權授予了該資料庫的所有使用者。
  對系統管理權限而言,角色是一個工具,許可權能夠被授予給一個角色,角色也能被授予給另一個角色或使用者。使用者可以通過角色繼承許可權,除了系統管理權限外角色服務沒有其它目的。許可權可以被授予,也可以用同樣的方式撤銷。
  建立和使用角色
  如前所訴,角色存在的目的就是為了使許可權的管理變得輕鬆。建立角色使用CREATE ROLE語句,他的文法如下:
CREATE ROLE role_name IDENTIFIED BY password
CREATE ROLE role_name IDENTIFIED EXTERNALLY
CREATE ROLE role_name IDENTIFIED GLOBALLY
  預設情況下建立的角色沒有password或者其他的識別。如果使用IDENTIFIED BY 子句建立,那麼角色不會自動響應,必須用SET ROLE啟用。
SET ROLE role_name IDENTIFIED BY password
  EXTERNALLY和GLOBALLY類型的角色由作業系統和ORACLE Service server驗證。通常使用者需要許可權修改應用程式中使用的表單中的資料,但是只有在應用程式運行時而不是在使用ad hoc工具時,這種上下文敏感安全可以通過有PASSWORD的角色來實現。當使用者在應用程式內部連結資料庫時,代碼將執行SET ROLE命令,通過安全驗證。所以使用者不需要知道角色的password,也不需要自己輸入SET ROLE命令。
  對象許可權
  對象許可權就是指在表、視圖、序列、過程、函數或包等對象上執行特殊動作的權利。有九種不同類型的許可權可以授予給使用者或角色。如下表:

許可權

ALTER

DELETE

EXECUTE

INDEX

INSERT

READ

REFERENCE

SELECT

UPDATE

Directory

no

no

no

no

no

yes

no

no

no

function

no

no

yes

no

no

no

no

no

no

procedure

no

no

yes

no

no

no

no

no

no

package

no

no

yes

no

no

no

no

no

no

DB Object

no

no

yes

no

no

no

no

no

no

Libary

no

no

yes

no

no

no

no

no

no

Operation

no

no

yes

no

no

no

no

no

no

Sequence

yes

no

no

no

no

no

no

no

no

Table

yes

yes

no

yes

yes

no

yes

yes

yes

Type

no

no

yes

no

no

no

no

no

no

View

no

yes

no

no

yes

no

no

yes

yes

  對象由不止一個許可權,特殊許可權ALL可以被授予或撤銷。如TABLE的ALL許可權就包括:
   SELECT,INSERT,UPDATE和DELETE,還有INDEX,ALTER,和REFERENCE。
  如何看這個表我們以ALTER許可權為例進行說明
  ALTER許可權
  允許執行ALTER TABLE和LOCK TABLE操作,ALTER TABLE可以進行如下操作:
    . 更改表名
    . 增加或刪除列
    . 改變列的資料類型或大小
    . 將錶轉變為分區表
  在SEQUENCE上的ALTER許可權允許執行ALTER Sequence語句,重新給sequence分配最小值、增量和緩衝區大小。
  系統許可權
  系統許可權需要授予者有進行系統級活動的能力,如串連資料庫,更改使用者會話、建立表或建立使用者等等。你可以在資料字典視圖SYSTEM_PRIVILEGE_MAP上獲得完整的系統許可權。對象許可權和系統許可權都通過GRANT語句授予使用者或角色。需要注意的是在授予對象許可權時語句應該是WITH GRANT OPTION子句,但在授予系統權象時語句是WITH ADMIN OPTION,所以在你試圖授予系統許可權時,使用語句WITH GRANT OPTION系統會報告一個錯誤:ONLY
ADMIN OPTION can be specified。在考試中要特別注意這個文法和錯誤資訊。

聯繫我們

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