程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oracle創建user詳細說明

oracle創建user詳細說明

編輯:Oracle教程

一、用戶的概念
  用戶,即user,通俗的講就是訪問oracle數據庫的“人”。在oracle中,可以對用戶的各種安全參數進行控制,以維護數據庫的安全性,這些概念包括模式(schema)、權限、角色、存儲設置、空間限額、存取資源限制、數據庫審計等。每個用戶都有一個口令,使用正確的用戶/口令才能登錄到數據庫進行數據存取。

二、用戶默認表空間
  表空間是信息存儲的最大邏輯單位、當用戶連接到數據庫進行資料存儲時,若未指出數據的目標存儲表空間時,則數據存儲在用戶的默認表空間中。
比如:create table mytable(id varchar2(20),name varchar2(100));這條語句創建了一個表mytable,並將其存儲在當前用戶的默認表空間中,
若要指定表空間,則:create table mytable(id varchar2(20),name varchar2(100)) tablespace tbs1;。
用戶的默認表空間可以在創建用戶時指定,也可以使用aler user命令進行指定,具體語法見後面的介紹。

三、用戶臨時表空間
  臨時表空間主要用於order by語句的排序以及其它一些中間操作。
在oracle9i之前,可以指定用戶使用不同的臨時表空間,從9i開始,臨時表空間是通用的,所的用戶都使用TEMP作為臨時表空間。

四、用戶資源文件
  用戶資源文件用來對用戶的資源存取進行限制,包括:cpu使用時間限制、內存邏輯讀個數限制、每個用戶同時可以連接的會話數據限制、
一個會話的空間和時間限制、一個會話的持續時間限制、每次會話的專用SGA空間限制。

五、用戶表空間限額
  表空間存儲限制是用戶在某一個表空間中可以使用的存儲空間總數。
在創建或修改用戶時,可以由參數quota指出。若用戶在向表空間存儲數據時,超出了此限額,則會產生錯誤。
錯誤信息如:'ORA-01536:space quota exceeded for tablespace tablespacename..'。可以通過查詢字典dba_ts_quotas查看表空間限額信息。

六、創建用戶資源文件
創建用戶資源文件的語法如下:
  CREATE PROFILE filename LIMIT
  SESSION_PER_USER integer
  CPU_PER_SESSION integer
  USER_PER_CALL integer
  CONNECT_TIME integer
  ......
  基中:
  SESSION_PER_USER: 用戶可以同時連接的會話數量限額;
  CPU_PER_SESSION:用戶在一次數據庫會期間可占用的CPU時間總量限額,單位為百分之一秒;
  USER_PER_CALL:用戶一次SQL調用可用的CPU時間總量限額,單位為百分之一秒;
  LOGICAL_READS_PER_SESSION:在一次數據庫會話期間能夠讀取的數據庫塊的個數限額;
  LOGICAL_READS_PER_CALL:一次SQL調用可以讀取的數據庫塊數限額;
  IDLE_TIME:用戶連接到數據庫後的可空閒時間限額,單位為分鐘,若空閒時間超過此值,則連接被斷開;
  CONNECT_TIME:一次連接的時間總量限額,單位為分鐘,連接時間超過此值時,連接被斷開;
  PRIVATE_SGA:用戶麼有的SGA區的大小,單位為數據庫塊,默認值為UNLIMITED;
  COMPOSITE_LIMIT:這是一項由上述限制參數構成的組合資源項。
舉例來說,假設資源設置如下:
  IDLE_TIME 20
  CONNECT_TIME 120
  CPU_PER_CALL 750
  COMPOSITE_LIMT 800
那麼,當會話空間超過20分鐘,或者連接時間超過120分鐘,又或者執行一個SQL耗費超過7.5秒,再或者這幾個資源限制加起來的總數超過800,
則系統自動終止會話。
  FAILED_LOGIN_ATTEMPTS:用戶登錄時,允許用戶名/密碼校驗失敗致使用登錄失敗的次數限額,超過該次數,帳戶被鎖定;
  PASSWORD_LIFE_TIME:口令有效時間,單位為天數,超過這一時間,拒絕登錄,須重新設置口令,默認值為UNLIMITED;
  PASSWORD_REUSE_TIME:一個失效口令經過多少天後才可重新利用,默認為UNLIMITED;
  PASSWORD_REUSE_MAX:一個口令可重復使用的次數;
  PASSWORD_LOCK_TIME:當登錄失敗達到FAILED_LOGIN_ATTEMPS時,帳戶被鎖定,該參數用於設定被鎖定的天數;
下面舉例如下:
1)創建一個用戶資源文件
  create profile tax_users limit
  session_per_user 3
  cpu_per_session UNLIMITED
  connect_time 30
  logical_reads_per_session DEFAULT
  logical_reads_per_call 1000
  private_sga 15K
  composite_limit 500000
  password_life_time 90
2)查詢用戶資源文件信息
  sql>select *from dba_profile where profile = 'tax_users'
3)指定用戶資源文件給用戶
  sql>alter user us1 profile tax_users

七、創建、修改、刪除用戶
1.創建用戶
  創建用戶的詳細語法請查詢oracle的官方參數文檔,這裡介紹典型的語法。語法如下:
  CREATE USER username
  IDENTIFIED BY password
  DEFAULT TABLESPACE tablespace
  TEMPORARY TABLESPACE tablespace
  PROFILE profile
  QUOTA integer|UNLIMITED ON tablespace
各選項含義如下:
  IDENTIFIED BY password:用戶口令;
DEFAULT TABLESPACE tablespace:默認表空間;
  TEMPORARY TABLESPACE tablespace:臨時表空間;
  PROFILE profile|DEFAULT:用戶資源文件;
  QUOTA integer[K|M]|UNLIMITED ON tablespace:用戶在表空間上的空間使用限額,可以指定多個表空間的限額。
  舉例:
  CREATE USER us1 IDENTITIED BY abc123
  DEFAULT TABLESPACE user01
  TEMPORARY TABLESPACE temp
  PROFILE DEFAULT
  QUOTA 1000M ON user01;
2.修改用戶
Alter User 用戶名
Identified 口令
Default Tablespace tablespace
Temporary Tablespace tablespace
Profile profile
Quota integer/unlimited on tablespace;

1、修改口令字:
Alter user acc01 identified by "12345";
2、修改用戶缺省表空間:
Alter user acc01 default tablespace users;
3、修改用戶臨時表空間
Alter user acc01 temporary tablespace temp_data;
4、強制用戶修改口令字:
Alter user acc01 password expire;
5、將用戶加鎖
Alter user acc01 account lock; // 加鎖
Alter user acc01 account unlock; // 解鎖
3.刪除用戶
  刪除用戶,是將用戶及用戶所創建的schema對象從數據庫刪除。如下:
  DROP USER us1;
若用戶us1含有schema對象,則無上述語句將執行失敗,須加入關鍵字CASCADE才能刪除,意思是連並其對象一起刪除,如下:
  DROP USER us1 CASCADE;
4.查看用戶信息
select * from dba_users;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved