Oracle笔记(十四) 用户管理
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負責。
轉載于:https://www.cnblogs.com/MonkTang/p/9204874.html
總結
以上是生活随笔為你收集整理的Oracle笔记(十四) 用户管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百度地图API功能
- 下一篇: spring 学习总结