您的位置:首页 > 数据库 > Oracle

倪蒙oralce学习笔记之Oracle创建删除用户、角色、表空间、导入导出数据库总结

2009-11-23 11:43 1141 查看
Oracle

创建删除用户、角色、表空间、导入导出数据库总结

创建新的用户必须以
system
或者
sysman(
这二者的权限最大
)
的身份登录后才可创建


创建用户


create user
用户名

identified by
密码

例如:
create
user
nim

identified by
nim
;


创建完成后,必须分配权限,否则连不上数据库和
sqlplus


grant
connect,resource,dba to
nim
;
这样数据库就可以通过
nim
/
nim
连上了。那些
select

update

delete

insert
的权限就不必分配了,因为每个用户默认都有这些基本权限。

创建用户前须先建好临时表空间和数据表空间两个表空间。

创建临时表空间

create

temporary

tablespace
nimeng_temp
tempfile

D:/oracle/oradata/neusoft/nimeng_temp.dbf'

size

100
m
autoextend

on next

32
m
maxsize

2048
m
extent

management

local
;

说明:

1

nimeng_temp

表空间的名字

2

D:/oracle/oradata

存放数据库文件的地方,一般是安装数据库后有控制文件,数据文件和日志文件的文件夹
,
再加上要创建表空间的名字
+dbf(
数据文件
)

3

100M
表空间的初始大小

4

32M
表空间自动增长的大小

5

2048M
表空间最大的大小



创建数据表空间

create

tablespace
nimeng
logging

datafile

'D:/ORACLE/ORADATA/NEUSOFT/NIMENG.DBF'

SIZE

100
M
AUTOEXTEND

ON

NEXT
32
M
MAXSIZE

2048
M
EXTENT

MANAGEMENT

LOCAL
;

创建用户并指定表空间

create
user zfmi identified by zfmi default tablespace zfmi temporary tablespace
zfmi_temp;



给用户授予权限

grant
connect,resource dba to zfmi;
(dba
:指定所有权限
)

完成。



删除用户以及用户所有的对象

drop
user zfmi cascade;

cascade
参数是级联删除该用户所有对象,经常遇到如用户有对象而未加此参数则用户删不了的问题,所以习惯性的加此参数

删除oracle
用户nim
出现下面的错误:

SQL> drop user nim cascade;

drop user nim cascade

*

ERROR
位于第 1
行:

ORA-00604:
递归 SQL
层 1
出现错误

ORA-24005:
必须使用
DBMS_AQADM.DROP_QUEUE_TABLE
删除队列表

处理方式:

先执行这条语句:alter session set events'10851 trace name context
forever,level 2';

再执行:drop user nim cascade;
删除用户nim

删除表空间

前提:删除表空间之前要确认该表空间没有被其他用户使用之后再做删除

drop

tablespace
nimeng
including

contents

and

datafiles

cascade

constraints
;

including contents
删除表空间中的内容,如果删除表空间之前表空间中有内容,而未加此参数,表空间删不掉,所以习惯性的加此参数

including datafiles
删除表空间中的数据文件

cascade constraints
同时删除
tablespace
中表的外键参照

如果在清除表空间之前,先删除了表空间对应的数据文件,会造成数据库无法正常启动和关闭。可使用如下方法恢复:

下面的过程中,
filename
是已经被删除的数据文件,如果有多个,则需要多次执行;
tablespace_name
是相应的表空间的名称。

$ sqlplus /nolog

SQL> conn / as sysdba;

如果数据库已经启动,则需要先执行下面这行:

SQL> shutdown abort

SQL> startup mount

SQL> alter database datafile 'filename' offline drop;

SQL> alter database open;

SQL> drop tablespace tablespace_name including contents;



导入导出命令

Oracle
数据导入导出
imp/exp
就相当于
oracle
数据还原与备份。
exp
命令可以把数据从远程数据库服务器导出到本地的
dmp
文件,
imp
命令可以把
dmp
文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。

数据导出


1
将数据库
TEST
完全导出
,
用户名
system
密码
manager
导出到
D:daochu.dmp


exp system/manager@TEST

file=d:
/
daochu.dmp full=y

2
将数据库中
system
用户与
sys
用户的表导出

exp system/manager@TEST

file=d:
/
daochu.dmp owner=(system,sys)

3
将数据库中的表
inner_notify

notify_staff_relat
导出

exp aichannel/aichannel@TESTDB2

file= d:
/
datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)

4
将数据库中的表
table1
中的字段
filed1

"00"
打头的数据导出

exp system/manager@TEST

file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"

上面是常用的导出,对于压缩,既用
winzip

dmp
文件可以很好的压缩。

也可以在上面命令后面 加上
compress=y
来实现。

数据的导入


1

D:daochu.dmp
中的数据导入
TEST
数据库中。

imp system/manager@TEST

file=d:daochu.dmp

imp aichannel/aichannel@HUST

full=y
file=d:datanewsmgnt.dmp ignore=y

上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。

在后面加上
ignore=y
就可以了。

2

d:daochu.dmp
中的表
table1
导入

imp system/manager@TEST

file=d:daochu.dmp tables=(table1)

基本上上面的导入导出够用了。不少情况要先是将表彻底删除,然后导入。

注意:

操作者要有足够的权限,权限不够它会提示。

数据库时可以连上的。可以用
tnsping TEST
来获得数据库
TEST
能否连上。



给用户增加导入数据权限的操作

第一
,
启动
sql*puls

第二,以
system/manager
登陆

第三,
create user
用户名
IDENTIFIED BY
密码

第四,
GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,

DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,

DBA,CONNECT,RESOURCE,CREATE SESSION TO
用户名字

第五
,
运行
-cmd-
进入
dmp
文件所在的目录
,

imp userid=system/manager full=y file=*.dmp

或者
imp
userid=system/manager full=y file=filename.dmp
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐