oracle 建表空间->创建用户并把表空间分配给用户->给用户授权->导库

时间:2022-08-26 08:40:08

首先注意:我参考网上使用的sysdba模式(normal)登陆的,其他的模式建不了用户(个人没有进行其他模式的表空间尝试,如有人尝试欢迎补充,感激不尽)

表空间相当于表的容器(一下所有的操作都适用于oracle10g):

--建表空间

  create tablespace SOA                        --soa是表空间的名字

  datafile 'D:\ a.dbf' size 50m                     --  'D:\ a.dbf' 表空间的存储路径            
  autoextend on next 50m maxsize 20480m                ----autoextend on 自动增长  
  extent management local;

--创建用户默认分配soa表空间
  create user shgbyp identified by "111111"
  default tablespace SOA;

//记录一个错误

  刚开始我是用的建用户的语句是create user shgbyp identified by  111111 default tablespace SOA;

  差别就在于 密码处 没有使用双引号

  报了一个oracle10g专属的错误ORA-00988: 口令缺失或无效

  据了解这个错误是10g才有的错误  所以11g的用户不用担心。

 

--给用户授权
  grant connect,resource,dba to shgbyp;

--导入导出
  imp/exp shgbyp/111111@orcl file="e:\20170310.dmp" full=y ignore=y

 

--相应的删除表空间

  drop tablespace SOA including contents and datafiles  

--删除用户

  drop user shgbyp cascade

  这里强调一下:删除了用户shgbyp,只是删除了该用户下的schema objects,不删除分配给用户的表空间。就应为表空间只是给你用户使用的,你用户没了只代表这个表空间少了一个用户使用!

 

 

附加:高版本oracle向低版本导入导出数据库:

从高版本导出:

expdp 用户名/密码@数据库实例名 directory=DATA_PUMP_DIR  dumpfile=导出的文件名.dmp logfile=导出的日志名.log version=oracle 建表空间->创建用户并把表空间分配给用户->给用户授权->导库10.2.0.1.0 

导入到低版本:impdp 低版本用户名/密码@orcl directory=DATA_PUMP_DIR dumpfile=导出的文件名.DMP logfile=导出的日志名.log version=oracle 建表空间->创建用户并把表空间分配给用户->给用户授权->导库10.2.0.1.0  table_exists_action=replace remap_schema=高版本用户名:低版本用户名

或许你需要知道DATA_PUMP_DIR 这个变量的值:那么

  请查看 select * from dba_directories 就能明白啦~~