`

oracle导入数据之创建表空间,新建用户,以及授权

阅读更多
创建表空间  
  今天公司给我一个dmp文件,让我把里面的数据导入数据库,并根据表名字段名等等,分析出我们需要的数据。
   新建一个数据库,感觉没有必要。于是就在这个库中创建一个表空间,把这个dmp文件导入新建的表空间。这个dmp文件将近2G,我第一次建表空间,不知道需要多大的,于是建立一个自动增长的表空间:建表空间的语句如下
create tablespace test_imp01  
datafile '/ora/oradata/radius/test_imp01.dbf' 
size 1024M  
autoextend on  
next 5M  
maxsize unlimited
EXTENT MANAGEMENT LOCAL; 

第一句中test_imp01就是新建表空间的名字
datafile 这个参数是数据文件存放的位置
size 指文件大小
autoextend 这个参数自动增长,以5M大小增长
maxsize unlimited 这句话说明这个表空间最大值不限定。

因为在存在的数据库创建一个表空间,临时表空间已经有,所以没有创建。不过也在网上找到创建临时表空间的语句:
create temporary tablespace user_temp  

tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' 

size 50m  

autoextend on  

next 50m maxsize 20480m  

extent management local;  

这是一个在windows上创建临时表空间的语句,其实可以看出和第一个并没有多大的不同。第一句话加了一个关键字temporary ,第二句话变成由datefile变成tempfile  后面跟的路径也是绝对路径。这个临时表空间的20480M,这个创建临时表空间的语句并没有使用。

创建用户
每个用户都是有一个表空间,所以创建一个用户。建立用户的语句
create user TEST_IMP
  identified by xxxxx
  default tablespace TEST_IMP01
  temporary tablespace TEMP
  profile DEFAULT;

我创建的用户名test_imp,identified by后面跟的是密码。
利用plsql来创建用户,如图,选择user,单击右键,点击“new”

会出现如下框:

这种方法,比较简单,不用写sql语句。

权限赋值
GRANT 
  CREATE SESSION, CREATE ANY TABLE, CREATE ANY VIEW ,CREATE ANY INDEX, CREATE ANY PROCEDURE,
  ALTER ANY TABLE, ALTER ANY PROCEDURE,
  DROP ANY TABLE, DROP ANY VIEW, DROP ANY INDEX, DROP ANY PROCEDURE,
  SELECT ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE
  TO TEST_IMP;

赋值之后,开始用test_imp登录库,进行数据库导入,结果出现一个错误:
IMP-00017: 由于 ORACLE 错误 1031
这是由于没有权限报错:仔细一看,原来没有创建sequence 权限。于是添加sequence权限
grant create sequence to test_imp;
  • 大小: 42.5 KB
  • 大小: 33.1 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics