最近项目要用oracle,却没能事先看点相关资料:(硬着头皮只能上。 用惯了sql server所以一开始真是不适应,开始想象数据库应该相通区别不大的吧。可是装上用发现突然不知道该做些什么了,以前用sql server干活前的一些准备工作,如今不知道怎么在oracle中建立。 有朋友给我写了一个简单的建立用户的例子。稍微有点概念。 最后得知公司另外一个小组的一个同事2年前曾用过oracle8i,可惜他们小组太忙不可能给我做技术支持。只能从他那里得到他以前做项目时脚本写的一些建用户,空间,角色的资料,边看边试。 接着我就把这些经过我目前测试的步骤记录下来,希望能给以后象我目前状况一样的oracle初学者一个帮助。闲话少说开始进入正题吧。
所有代码均在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>@文件名;
可能有人会问为什么纯用脚本建立?便于日后查阅维护。
现学现写不妥之处还请各位指正。
|