標籤:
oracle建立使用者:
CREATE USER 使用者名稱 IDENTIFIED BY 口令 [ACCOUNT LOCK|UNLOCK]
【注】LOCK|UNLOCK建立使用者時是否鎖定,預設為鎖定狀態。鎖定的使用者無法正常的登陸進行資料庫操作。
比如建立一個使用者tom,密碼是aaa,預設為非鎖定,格式是:
SQL>CREATE USER tom
2 IDENTIFIED BY aaa
3 ACCOUNT UNLOCK;
【注】Oracle在SQL*Plus中的命令以分號結尾,代表命令完畢並執行,系統同時會把該命令儲存在緩衝中,緩衝中只儲存最近執行過的命令,如果重新執行緩衝中的命令,直接使用斜杠符。如果命令不以分號結尾,該命令只是寫入緩衝儲存起來,但是並不執行。
儘管使用者成功建立,但是還不能正常登陸oracle資料庫系統,因為該使用者還沒有任何許可權。如果使用者能夠正常登陸,至少需要CREATE SESSION 系統許可權。
Oracle使用者對資料庫管理或對象操作的權利,分為系統許可權和資料庫物件許可權。系統許可權比如:CREATE SESSION,CREATE TABLE等。擁有系統許可權的使用者,允許擁有相應的系統操作。資料庫物件許可權,比如對錶中的資料進行增刪改操作等,擁有資料庫物件許可權的使用者可以對所擁有的對象進行相應的操作。
資料庫角色(role),資料庫角色就是若干個系統許可權的集合,常用的幾個角色如下:
- connect角色:主要應用在臨時使用者,特別是那些不需要建表的使用者,通常只賦予他們connect role。connect是使用Oracle的簡單許可權,擁有connect角色的使用者,可以與伺服器建立串連會話(session,用戶端對伺服器串連,稱為會話)。
- resource角色:更可靠和正式的資料庫使用者可以授權resource role。resource提供給使用者另外的許可權以建立他們自己的表、序列、過程、觸發器、索引等。
- dba角色:dba role擁有所有的系統許可權,包括無限制的空間限額和給其他使用者授權的能力。使用者system擁有dba角色。
一般情況下,一個普通的使用者,擁有connect和resource兩個角色即可進行常規的資料庫開發工作。
可以把某個許可權授予某個角色,可以把許可權、角色授予某個使用者。系統許可權只能由dba使用者授權,對象許可權由擁有該對象的使用者授權,授權文法為:
GRANT 角色|許可權 TO 使用者(角色)
回收許可權的文法是:
REVOKE 角色|許可權 FROM 使用者(角色)
修改使用者密碼的文法是:
ALTER USER 使用者名稱 IDENTIFIED BY 新密碼
修改使用者處於鎖定(非鎖定)狀態:
ALTER USER 使用者名稱 ACCOUNT LOCK|UNLOCK
Oracle資料類型:
- CHAR(length):儲存固定長度的字串。參數length指定了長度,如果儲存的字元創長度小於length,用空格填充。預設長度是1,最長不超過2000位元組。
- VARCHAR2(length):儲存可變長度的字串。length指定了該字串的最大長度。預設長度為1,最長不超過4000字元。
- VARCHAR(length):varchar和varchar2目前沒有區別,不過Oracle以後的版本就不支援varchar類型,如果想新版本的資料庫相容,就不要用varchar,如果想和其他的資料庫相容就不要用varchar2.
- NUMBER(p,s):既可以儲存浮點數,也可以儲存整數,p表示數位最大位元(如果是小數包括整數部分和小數部分和小數點,p預設是38位),s是指小數位元。
- DATE:儲存日期和時間,儲存紀元、4位年、月、日、時、分、秒,儲存時間從公園前4712年1月1日到公元後4712年12月31日。
- TIMESTAMP:不但儲存日期的年月日,時分秒,以及秒後6位,同時包含時區。
- CLOB:儲存大的文本,比如儲存非結構化的xml文檔。
- BLOB:儲存二進位對象,形、視頻、聲音等。
對應NUMBER類型的樣本:
| 格式 |
輸入的數字 |
實際的儲存 |
| NUMBER |
1234.567 |
1234.56 |
| NUMBER(6,2) |
123.4526 |
123.45 |
| NUMBER(4,2) |
12345.67 |
輸入的數字超過了所指定的精度,資料庫不能儲存 |
對於日期類型,可以使用sysdate內建函數可以擷取當前的系統日期和時間,返回DATE類型,用systimestamp函數可以返回當前日期、時間和時區。
SELECT SYSDATE,SYSTIMESTAMP FROM DUAL
Oracle的查詢中,必須使用“select 列···from 表”的完整文法,當查詢單行函數的時候,from後面使用DUAL表,dual表在系統中只有一行一列,該表在輸出單行函數時為了select...from的文法完整性而使用。
Oracle許可權和資料類型