Oracle创建表空间和用户

1、创建表空间:
格式: create temporary(临时) tablespace 表空间名 logging datafile ‘数据文件名’ size 表空间大小 autoextend on next 50m maxsize 20000m extent management local;
例:创建表空间名为data 大小 2000M 表是 数据文件名 包含全路径
create tablespace data
logging datafile ‘d:\oracle\oradata\data.dbf’ size 2000M
autoextend on
next 50m maxsize 20000m
extent management local;
查询表空间
select * from user_tablespaces
2、建用户:
格式: create user 用户名 identified by 密码 default tablespace 表空间表;
例:创建一个用户名为 test ,密码为 test , 表空间为 data.
create user test identified by test default tablespace data ;
将用户重新指定表空间
alter user username default tablespace userspace;
查询用户对应的表空间
select username,default_tablespace from dba_users;
修改密码
alter user test identified by newtest
删除用户test
drop user test cascade;
–查看当前用户信息
select * from user_users;
–查看你能管理的所有用户!
select * from all_users

3.给新用户授权
–表示把 connect,resource,dba权限授予test用户
grant connect,resource,dba to test;
用户只有查询指定表的权限
grant connect to 用户名;
grant select on 表名 to 用户名
–查看用户所拥有的角色
select * from user_role_privs;
DBA:该角色具有数据库所有的权限。
CONNECT:该角色具有连接数据库的权限,和create session的权限一样。
RESOURCE:该角色是应用程序开发角色。
角色其实就是一类权限的分组,所以给用户分配角色其实也是在给用户分配权限。在oracle中有三个比较常用的角色。对于一般不是很严格的系统可以授予开发用户CONNECT、RESOURCE角色权限即可!

4.删除表空间
DROP TABLESPACE tablespacename INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS
5.创建表
create table teacher(
uuid number(10) primary key,
name varchar2(20) not null,
sex varchar2(2) default ‘男’ check(sex in(‘男’,‘女’))
);
–查看表所属的变空间
select table_name 表名 ,tablespace_name 所使用表空间 from user_tables;
6.备份 EXP/IMP用法

 EXP:
1.全库备份 exp user/psw@orcl full=y file= ../database.dmp log=../database.log buffer=80960000
--不包括sys用户 即数据字典没有导出 
--如想导出sys和system用户对象和数据字典,则:  exp \’/ as sysdba\’ owner=sys file=database.dmp buffer=80960000 —在服务器本地导出sys

2.用户备份 exp user/psw@orcl owner=user file=database.dmp buffer=80960000  exp \’/ as sysdba\’ owner=user file=database.dmp
buffer=80960000

3.表备份 exp user/psw@orcl tables=tablename,class file=tablename.dmp buffer=80960000

4.表级别带where条件的数据导出 exp user/psw@orcl tables=tablename query=\”where id>\500\” file=database.dmp buffer=80960000 ——linux平台  exp
user/psw@orcl tables=tablename query=’where id”>”500’
file=database.dmp buffer=80960000 —–windows平台

IMP: 向下兼容—–全库数据>用户>表>where条件的表 > 大于号 映射含义:包含的意思

1.全库导入 imp system/psw@orcl full=y file=database.bmp log=database.log buffer=80960000 ignore=y  注意不要造成数据重复
system用户下的表不会被数据重复,只需注意手动建成的用户的数据

2.利用全库备份导入一个用户 imp system/psw@orcl fromuser=user1 touser=user2 file=database.dmp log=data.log buffer=80960000 ignore=y 
提前建好tom用户和分配权限  imp system/psw@orcl fromuser=user1 touser=user2
file=database.dmp log=data.log buffer=80960000 ignore=y 
利用全库备份导入某一个表  imp system/psw@orcl fromuser=user1 touser=user2
tables=tablename file=database.dmp log=database.log buffer=80960000
ignore=y  — 全备导入tom用户下的mail表到jerry用户下

3.利用用户备份—-导入用户数据 imp user/psw@orcl file=database.dmp buffer=80960000 ignore=y;  前提用户存在,权限够—导入整个用户

imp user/psw@orcl tables=tablename,c file=database.dmp
buffer=80960000 ignore=y;  —导入特定的表

4.利用where条件导出的数据导入 imp user/psw@orcl tables=tablename file=database.dmp buffer=80960000 ignore=y;  —-直接导入where筛选出来的行数

补充:
1.提高导入导出速度 exp/imp导入导出加速—可加选项 direct=y (直接路径导出) 或者设置buffer size的大小 buffer=2000000 (数据缓冲)

2.数据库对象有主外键约束 这发生在将几个包含表的DMP文件分别导入数据库时,不符合主外键约束, 数据便会导入失败;解决办法: 先导入主表, 再导入依存表
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值