Oracle筆記(十四) 使用者管理

來源:互聯網
上載者:User

SQL語句分為三類:DML、DDL、DCL,之前已經講解完了DML和DDL,現在就差DCL操作的,DCL主要表示的是資料庫的控制語句,控制的就是操作許可權,而在DCL之中,主要有兩個文法:GRANT、REVOKE;

許可權的操作基礎是需要有使用者的,而這個時候就需要通過一個新的使用者進行示範,而要想建立新使用者則首先必須是具備管理員權限的sys、system兩個使用者操作。

範例:建立一個dog使用者,密碼為wangwang

CONN sys/change_on_install AS SYSDBA;CREATE USER dog IDENTIFIED BY wangwang;

此時一個新的使用者就建立完成了。

注意:“ORA-00988:口令缺失或無效” 錯誤,這種情況通常發生於建立 Oracle 常式時指定了非正常的全域資料庫名稱或系統使用者密碼。請注意全域資料庫名稱不能以數字開頭,口令密碼也不能由數字開頭。

Oracle對密碼的要求如下:

  • 系統使用者(SYS、SYSTEM)口令長度不能小於7個字元;
  • 密碼由1 到 30 個字元 (characters)組成;
  • 必須以字母開頭,不能是符號或者數字;
  • 只接受字母,數字,以及三個符號 "#", "_" and "$";
  • 密碼不能包含像"SELECT","DELETE","CREATE"這類的 Oracle/SQL 關鍵字;

但是此時這個新建立的使用者並不能登入,會提示如下的錯誤資訊:

ORA-01045: user DOG lacks CREATE SESSION privilege; logon denied

提示使用者現在沒有建立SESSION的許可權,在之前曾經解釋過,對於sqlplusw而言,每一個使用者都表示一個SESSION,如果沒有建立SESSION的許可權就意味著不能登入,所以下面要授權。

範例:將CREATE SESSION的許可權給dog使用者

GRANT CREATE SESSION TO dog;

現在新使用者登入成功之後,下面就可以執行表的建立操作。

CREATE SEQUENCE myseq;CREATE TABLE mytab(  id NUMBER PRIMARY KEY,  name VARCHAR2(50));

解釋:關於資料表的儲存問題

在Oracle之中所有的資料表都是儲存在硬碟上的,但不是每一張資料表都儲存在硬碟上的,而是資料表空間儲存在硬碟上,而資料表儲存在資料表空間之中。

如果把硬碟表示成整個一個圖書館的話,那麼資料表空間就表示每一個書櫃,每一張表就表示柜子上的一本書。

範例:將建立表的許可權給dog使用者

GRANT CREATE TABLE TO dog;

此時只是將資料表的建立許可權給了dog使用者,但是並沒有把資料表空間的操作許可權給dog使用者,所以使用者仍然無法建立表,因為表沒有地方可以儲存。

為瞭解決使用者的授權操作,在Oracle之中為使用者提供了許多的角色,每一個角色會包含多個許可權,而角色主要有兩個:CONNECT、RESOURCE;

範例:將CONNECT和RESOURCE TO dog;

GRANT CONNECT,RESOURCE TO dog;

但是現在一旦存在了使用者的操作,那麼就需要有使用者的管理操作,最簡單的一個功能,使用者有可能丟掉自己的密碼。

範例:修改密碼

ALTER USER dog IDENTIFIED BY miaomiao;

但是當管理員為一個使用者重設一個密碼之後,往往會希望使用者在第一次登入的時候可以修改密碼,所以此時可以通過如下的命令讓密碼失效:

ALTER USER dog PASSWORD EXPIRE;

也可以控制一個使用者的鎖定操作:

ALTER USER dog ACCOUNT LOCK;ALTER USER dog ACCOUNT UNLOCK;

以上是針對於一個基本的使用者操作,但是在之前也學習過,不同的使用者可以訪問其他使用者的資料表,此時只需要加上完整的“使用者名稱.表名稱”即可。

範例:使用dog使用者查詢scott.emp表

SELECT * FROM scott.emp;

但是現在卻無法尋找,此時需要將scott使用者的許可權授予dog使用者才可以讓dog使用者訪問scott使用者的資源,主要的許可權有四個:INSERT、DELETE、UPDATE、SELECT。

範例:將scott.emp表的SELECT和INSERT許可權給dog使用者

GRANT SELECT,INSERT ON scott.emp TO dog;

既然現在有授權的功能,那麼就可以進行許可權的回收,許可權的回收使用REVOKE指令。

範例:回收dog使用者的許可權

REVOKE SELECT,INSERT ON scott.emp FROM dog;REVOKE CONNECT,RESOURCE,CREATE TABLE,CREATE SESSION FROM dog;

既然使用者連許可權都沒了,那麼按照中國的一句話:“捲鋪蓋走人”。

DROP USER dog CASCADE;

以上的所有操作都是由DBA負責。

相關文章

聯繫我們

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