最近項目要用oracle,卻沒(méi)能事先看點(diǎn)相關(guān)資料:(硬著(zhù)頭皮只能上。
用慣了sql server所以一開(kāi)始真是不適應,開(kāi)始想象數據庫應該相通區別不大的吧??墒茄b上用發(fā)現突然不知道該做些什么了,以前用sql server干活前的一些準備工作,如今不知道怎么在oracle中建立。
有朋友給我寫(xiě)了一個(gè)簡(jiǎn)單的建立用戶(hù)的例子。稍微有點(diǎn)概念。
最后得知公司另外一個(gè)小組的一個(gè)同事2年前曾用過(guò)oracle8i,可惜他們小組太忙不可能給我做技術(shù)支持。只能從他那里得到他以前做項目時(shí)腳本寫(xiě)的一些建用戶(hù),空間,角色的資料,邊看邊試。
接著(zhù)我就把這些經(jīng)過(guò)我目前測試的步驟記錄下來(lái),希望能給以后象我目前狀況一樣的oracle初學(xué)者一個(gè)幫助。閑話(huà)少說(shuō)開(kāi)始進(jìn)入正題吧。
所有代碼均在oracle 9i的sql*plus中測試。以下這些步驟最好各建立獨立文件來(lái)運行。
一,創(chuàng )建自己的用戶(hù)文件(表的擁有者)。
PROMPT -------------------------------------;
PROMPT This part is to setup object creator.;
PROMPT -------------------------------------;
PROMPT;
DROP USER 你要建立的用戶(hù)名 CASCADE;
CREATE USER 你要建立的用戶(hù)名 IDENTIFIED BY 你要建立的用戶(hù)密碼
DEFAULT TABLESPACE USERs(USERs這里注意8i聽(tīng)說(shuō)是USER_DATA)
TEMPORARY TABLESPACE TEMP;(TEMP這里注意8i聽(tīng)說(shuō)是TEMPORARY_DATA)
GRANT DBA TO 用戶(hù)名 WITH ADMIN OPTION;
二、 disc退出;然后用自己建的用戶(hù)登錄:conn 用戶(hù)名/密碼@連接字符串;
以下操作順序不可顛倒:
三、創(chuàng )建自己的表空間及對應的數據文件(創(chuàng )建的表都在這些表空間上。)文件
注:我目前的了解這些表空間個(gè)數的建立根據你的數據量,數據量大的表或者模塊可以分配單獨的空間。
這里的數據文件需要說(shuō)明一下ora只能建立數據文件,所以代碼中的存放路徑要你事先建立。
也就是說(shuō)‘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
.....
代碼幾乎一樣就不重復了。
四、創(chuàng )建系統用到的角色文件(根據系統的功能劃分)
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;
五、創(chuàng )建系統一些默認的用戶(hù)文件(如admin,backup等),并分配相應的角色;
PROMPT -----------------------------------;
PROMPT This part is to setup needed users.;
PROMPT -----------------------------------;
PROMPT;
DROP USER ADMIN用戶(hù)名 CASCADE;
CREATE USER admin用戶(hù)名 IDENTIFIED BY admin密碼
DEFAULT TABLESPACE USERs(上面提過(guò)這里不重復了)
TEMPORARY TABLESPACE TEMP;(上面提過(guò)這里不重復了)
GRANT 角色b (這里結合步驟四來(lái)看就是把最大權限的角色b分給了admin用戶(hù))to admin用戶(hù)名;
DROP USER 用戶(hù)名a CASCADE;
CREATE USER 用戶(hù)名a IDENTIFIED BY 密碼
DEFAULT TABLESPACE USERs
TEMPORARY TABLESPACE TEMP;
GRANT 一個(gè)前面(四)建立的角色 to test;
DROP USER 用戶(hù)名b CASCADE;
CREATE USER 用戶(hù)名b IDENTIFIED BY 密碼
DEFAULT TABLESPACE USERs
TEMPORARY TABLESPACE TEMP;
grant create session to 用戶(hù)名b;
.....
注:四,五這2步不是必需的,根據情況自己選擇吧。
六、創(chuàng )建表文件:最好根據實(shí)際的業(yè)務(wù)劃分,分成多個(gè)文件(如all.sql,a.sql,b.sql),方便以后的數據庫維護.
all.sql的內容:@a.sql;
@b.sql;
a.sql的內容:@table1.sql;
@table2.sql;
b.sql的內容:@table4.sql;
@table5.sql;
執行的時(shí)候根據需要選擇執行。
補充說(shuō)明:
1.如果你用的也是SQL*PLUS,執行上述文件前,先把以上所涉及的各個(gè)文件復制到Oracle安裝目錄下的\bin下面,執行方式如下:
SQL>@文件名;
可能有人會(huì )問(wèn)為什么純用腳本建立?便于日后查閱維護。
現學(xué)現寫(xiě)不妥之處還請各位指正。
聯(lián)系客服