所有代碼均在oracle 9i的sql*plus中測試。以下這些步驟最好各建立獨立檔案來運行。
一,建立自己的使用者檔案(表的擁有者)。
PROMPT -------------------------------------;
PROMPT This part is to setup object creator.;
PROMPT -------------------------------------;
PROMPT;
DROP USER 你要建立的使用者名稱 CASCADE;
CREATE USER 你要建立的使用者名稱 IDENTIFIED BY 你要建立的使用者密碼
DEFAULT TABLESPACE USERs(USERs這裡注意8i聽說是USER_DATA)
TEMPORARY TABLESPACE TEMP;(TEMP這裡注意8i聽說是TEMPORARY_DATA)
GRANT DBA TO 使用者名稱 WITH ADMIN OPTION;
二、 disc退出;然後用自己建的使用者登入:conn 使用者名稱/密碼@連接字串;
以下操作順序不可顛倒:
三、建立自己的資料表空間及對應的資料檔案(建立的表都在這些資料表空間上。)檔案
註:我目前的瞭解這些資料表空間個數的建立根據你的資料量,資料量大的表或者模組可以分配單獨的空間。
這裡的資料檔案需要說明一下ora只能建立資料檔案,所以代碼中的存放路徑要你事先建立。
也就是說'd:/database/ora/自訂的模組名a/d01.ora'這塊你要事先在你的系統建立d:/database/ora/自訂的模組名a目錄。
PROMPT;
PROMPT ------------------------------------------;
PROMPT This part is to setup needed table spaces.;
PROMPT ------------------------------------------;
CREATE TABLESPACE 自訂的模組名a
DATAFILE 'd:/database/ora/projet_info/d01.ora' SIZE 2M REUSE
DEFAULT STORAGE ( INITIAL 50K NEXT 50K
PCTINCREASE 0
MAXEXTENTS UNLIMITED
)
ONLINE;
CREATE TABLESPACE 自訂的模組名b
.....
代碼幾乎一樣就不重複了。
四、建立系統用到的角色檔案(根據系統的功能劃分)
PROMPT -----------------------------------;
PROMPT This part is to setup needed roles.;
PROMPT -----------------------------------;
PROMPT;
CREATE ROLE 角色1;
CREATE ROLE 角色2;
。。。。
GRANT create session,create view TO 角色x,角色y;
grant create session to 角色a;
GRANT create session,
alter user,create user,drop user,
grant any role to 角色b;
五、建立系統一些預設的使用者檔案(如admin,backup等),並分配相應的角色;
PROMPT -----------------------------------;
PROMPT This part is to setup needed users.;
PROMPT -----------------------------------;
PROMPT;
DROP USER ADMIN使用者名稱 CASCADE;
CREATE USER admin使用者名稱 IDENTIFIED BY admin密碼
DEFAULT TABLESPACE USERs(上面提過這裡不重複了)
TEMPORARY TABLESPACE TEMP;(上面提過這裡不重複了)
GRANT 角色b (這裡結合步驟四來看就是把最大許可權的角色b分給了admin使用者)to admin使用者名稱;
DROP USER 使用者名稱a CASCADE;
CREATE USER 使用者名稱a IDENTIFIED BY 密碼
DEFAULT TABLESPACE USERs
TEMPORARY TABLESPACE TEMP;
GRANT 一個前面(四)建立的角色 to test;
DROP USER 使用者名稱b CASCADE;
CREATE USER 使用者名稱b IDENTIFIED BY 密碼
DEFAULT TABLESPACE USERs
TEMPORARY TABLESPACE TEMP;
grant create session to 使用者名稱b;
.....
註:四,五這2步不是必需的,根據情況自己選擇吧。
六、建立表檔案:最好根據實際的業務劃分,分成多個檔案(如all.sql,a.sql,b.sql),方便以後的資料庫維護.
all.sql的內容:@a.sql;
@b.sql;
a.sql的內容:@table1.sql;
@table2.sql;
b.sql的內容:@table4.sql;
@table5.sql;
執行的時候根據需要選擇執行。
補充說明:
1.如果你用的也是SQL*PLUS,執行上述檔案前,先把以上所涉及的各個檔案複製到Oracle安裝目錄下的/bin下面,執行方式如下:
SQL>@檔案名稱;
可能有人會問為什麼純用指令碼建立?便於日後查閱維護。
現學現寫不妥之處還請各位指正。
出處: http://oracle.chinaitlab.com/induction/717300.html