最近項目要用oracle,卻沒能事先看點相關(guān)資料:(硬著頭皮只能上。
用慣了sql server所以一開始真是不適應(yīng),開始想象數(shù)據(jù)庫應(yīng)該相通區(qū)別不大的吧。可是裝上用發(fā)現(xiàn)突然不知道該做些什么了,以前用sql server干活前的一些準(zhǔn)備工作,如今不知道怎么在oracle中建立。
有朋友給我寫了一個簡單的建立用戶的例子。稍微有點概念。
最后得知公司另外一個小組的一個同事2年前曾用過oracle8i,可惜他們小組太忙不可能給我做技術(shù)支持。只能從他那里得到他以前做項目時腳本寫的一些建用戶,空間,角色的資料,邊看邊試。
接著我就把這些經(jīng)過我目前測試的步驟記錄下來,希望能給以后象我目前狀況一樣的oracle初學(xué)者一個幫助。閑話少說開始進(jìn)入正題吧。
所有代碼均在oracle 9i的sql*plus中測試。以下這些步驟最好各建立獨立文件來運行。
一,創(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)建自己的表空間及對應(yīng)的數(shù)據(jù)文件(創(chuàng)建的表都在這些表空間上。)文件
注:我目前的了解這些表空間個數(shù)的建立根據(jù)你的數(shù)據(jù)量,數(shù)據(jù)量大的表或者模塊可以分配單獨的空間。
這里的數(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 一個前面(四)建立的角色 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ù)實際的業(yè)務(wù)劃分,分成多個文件(如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í)行的時候根據(jù)需要選擇執(zhí)行。
補(bǔ)充說明:
1.如果你用的也是SQL*PLUS,執(zhí)行上述文件前,先把以上所涉及的各個文件復(fù)制到Oracle安裝目錄下的\bin下面,執(zhí)行方式如下:
SQL>@文件名;
可能有人會問為什么純用腳本建立?便于日后查閱維護(hù)。
現(xiàn)學(xué)現(xiàn)寫不妥之處還請各位指正。