Oracle用戶與模式(創建,修改,刪除用戶和用戶權限管理)


一.模式

模式又稱方案(Schema),是用戶所擁有的所有數據庫對象的集合,如表、索引、觸發器等邏輯對象都存儲在模式對象中。
模式的名稱和用戶的名稱相同,用戶與模式一一對應。默認情況下,用戶所創建的數據庫對象都保存在自己的同名模式中

注意事項:

用戶可以直接訪問自己模式中的對象,如要訪問其他模式中的對象,則必須具有相應的對象權限
數據庫中的對象名在同一個模式中是唯一的,但在不同模式中可以具有相同的對象名。
當用戶訪問其他模式中的對象時,必須加模式名來做前綴。即:模式名.對象名

1.模式的選擇與切換

如果用戶以NORMAL身份登錄,則進入同名模式。
如果用戶以SYSDBA身份登錄,則進入SYS模式。

CONNCE SYS/ORACLE10  AS SYSDBA

如果用戶以SYSOPER身份登錄,則進入PUBLIC模式

CONN SYS/ORACLE 10  AS  SYSOPER

2.模式對象與非模式對象

模式對象
主要包括表、索引、DML觸發器、視圖、存儲過程、程序包、JAVA類、自定義類型等。
注意:模式對象名最多為30個字符,且小寫字母會被轉換為大寫字母。如使用的不是標准標識符,則需要將其封裝在雙引號中。
非模式對象
包括表空間、用戶、角色、概要文件等。

二.創建用戶

1 ORACLE 初始用戶

SYS 是數據庫中具有最高權限的數據庫管理員,可以啟動、修改、關閉數據庫,擁有數據字典。

SYSTEM 是一個輔助的數據庫管理員,不能啟動和關閉數據庫,但可以進行其他一些管理工作,如創建用戶、刪除用戶等。

PUBLIC 是一個用戶組,數據庫中任何一個用戶都屬於該組成員。要為數據庫中每個用戶都授予某個權限,只需要把權限授予PUBLIC 就可以了。

 2 查詢用戶信息的數據字典

1)ALL_USERS:包含數據庫所有用戶的用戶名、用戶id 和用戶創建時間。
2)DBA_USERS:包含數據庫所有用戶的詳細信息。
3)USER_USERS:包含當前用戶的詳細信息。
4)DBA_TS_QUOTAS:包含所有用戶的表空間配額信息。
5)USER_TS_QUOTAS:包含當前用戶的表空間配額信息。

3、SQL語句創建用戶

CREATE  USER user_name
IDENTIFIED BY password
[DEFAULT TABLESPACE  tablespace_name]
[TEMPORARY TABLESPACE temp_tablespace_name]
[QUOTA [number[K|M] |UNLIMITED] ON tablespace_name]
[ACCOUNT LOCK|UNLOCK];

語法說明:
IDENTIFIED BY:指定帳戶的初始口令
DEFAULT TABLESPACE :用戶的默認表空間
TEMPORARY TABLESPACE :用戶的臨時表空間
QUOTA:用戶在表空間中使用的限額
ACCOUNT :鎖定或解鎖帳戶
【例】使用SQL語句創建用戶orac_test,默認表空間為USERS,臨時表空間為TEMP.

CREATE  USER orac_test
IDENTIFIED BY oracle
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

【例】使用用戶orac_test連接數據庫
注意:初始建立的數據庫用戶是沒有任何權限的,不能執行任何數據庫操作

三.權限管理

1、在 ORACLE中,權限分為兩類:

(1)系統權限
       在數據庫級別執行某種操作的權限,或針對某一類對象執行某種操作的權限。如 CREATE SESSION CREATE TABLE。
(2)對象權限
        對某個特定的數據庫對象執行某種操作的權限。如對特定表的插入、刪除、修改、查詢的權限。

2 、在ORACLE 中,將權限授予用戶有如下兩種方法:

(1)直接授權
   利用 GRANT 命令直接為用戶授權。
(2)間接授權
   先將權限授予角色,然后再將角色授予用戶。

3、在給用戶授權時,應該注意以下4個方面

(1) 只有DBA才應當擁有ALTER DATABASE系統權限。
(2)應用程序開發者一般需要擁有CREATE TABLE  CREATE VIEW和CREATE INDEX等系統權限。
(3)普通用戶一般只具有CREATE SESSION 系統權 限。
(4)只有授權時帶有WITH ADMIN OPTION子句時,用戶可以將獲得權限授予其他用戶。

 4 、給用戶賦予權限

語法格式:
  GRANT 權限或角色 TO 用戶;
【例】使用SQL語句給用戶orac_test授予與刪除CREATE SESSION系統權限

   GRANT CREATE SESSION TO orac_test;
REVOKE CREATE SESSION from orac_test;

5、使用數據字典user_users查看當前用戶的詳細信息

SQL>SELECT username FROM  user_users;

6、在當前用戶下創建數據表,觀察提示。

7、以 SYS登錄,授權ORAC_TEST用戶CREATE TABLE等權限

8、重新以ORAC_TEST登錄,創建表,觀察提示。     

如果成功創建表之后,在表中錄入數據:
我們可以 重新以SYS登錄,修改ORAC_TEST的默認表空間使用配額

alter user orac_test quoto 1m on users

然后再以ORAC_TEST用戶登錄,向表中錄入數據,觀察提示
 補充:角色管理
角色:一系列相關權限的集合。
ORACLE中有三個常用的預定義角色:
CONNECT  
RESOURCE
DBA

四.修改用戶

ALTER  USER  user_name
IDENTIFIED BY password
[DEFAULT TABLESPACE  tablespace_name]
[TEMPORARY TABLESPACE temp_tablespace_name]
[QUOTA [number[K|M] |UNLIMITED] ON tablespace_name]
[PASSWORD EXPIRE]password expire://用來設置用戶口令過期,失效,強制用戶登錄數據庫時候必須修改口令.
[ACCOUNT LOCK|UNLOCK];

【例】使用SQL語句更改用戶orac_test的密碼;

 ALTER USER orac_test
     IDENTIFIED BY zhl123

【例】使用SQL語句鎖定用戶orac_test;

 ALTER USER orac_test
     ACCOUNT lock;

【例】使用SQL語句解鎖用戶orac_test;

   ALTER USER orac_test
     ACCOUNT unlock;

五.刪除用戶

語法格式:

DROP  USER  user_name
[CASCADE]
說明:

如果用戶已創建了模式對象,在刪除用戶時必須增加CASCADE選項,表示刪除用戶時連同該用戶創建的對象也刪除,否則系統將提示錯誤信息
例:使用SQL語句刪除用戶orac_test;

     DROP USER orac_test  CASCADE


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM