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