Oracle 新手语法记录
一、用户
1. 创建用户
语法:create user 用户名 identified by 口令;
create user test identified by test;
2. 修改用户
语法:alter user 用户名 identified by 口令;
alter user test identified by 123456;
3. 删除用户
语法:drop user 用户名;
drop user test;
若用户拥有对象,则不能直接删除,否则将返回一个错误值,指定关键字 cascade ,可删除用户所有的对象,然后再删除用户
语法:drop user 用户名 cascade;
drop user test cascade;
4. 解锁用户
alter user 用户名 account unlock;
二、授权角色
1.含义概述
三种标准角色
connect role(连接角色)
- 临时用户,特指不需要建表的用户,通常只赋予他们 connect role
- connect是使用Oracle简单权限,这种权限只对其他用户的表有访问权限,包括
select/insert/update/delete
等。- 拥有connect role 的用户还能创建表,师徒,序列(sequence),簇(cluster),同义词(synonym),回话(session)和其他 数据的链(link)
resource (资源角色)
- 更可靠和正式的数据库用户可以授予 resource role
- resource 提供给用户另外的权限以穿件他们自己的表,序列,过程(procedure),触发器(tigger),索引(Index)和簇(cluster)
dba role (数据库管理员角色)
- dba role 拥有所有的系统权限
- 包括无限制的空间限额和其他用户授予各种权限的能力,system 由dba 用户拥有。
2.授权命令
语法:grant connect,resource to 用户名;
grant connect,resource to test;
3.撤销权限
语法:revoke connect,resource from 用户名;
revoke connect,resource from test;
三、创建、授权、删除角色
除了前面讲到的三种系统角色----connect、resource和dba,用户还可以在oracle创建自己的role。用户创建的role可以由表或系统权限或两者的组合构成。为了创建role,用户必须具有create role系统权限。
1. 创建角色
语法:create role 角色名;
create role testrole;
2. 授权角色
语法:grant select on class to 角色名;
grant select on class to testRole;
3. 删除角色
语法:drop role 角色名;
drop role testRole;
注意:与testRole角色相关的权限将从数据库全部删除
四、创建表空间
1. 创建临时表空间
create temporary tablespace xlzf_temp
tempfile 'C:\Data\xlzf_temp.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
2. 创建数据表空间
create tablespace xlzf_data
logging
datafile 'C:\Data\xlzf_data.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
3. 创建用户并指定表空间
create user xlzf identified by xlzf
default tablespace xlzf_data
temporary tablespace yuhang_temp;
4. 给用户授予权限
grant connect,resource,dba to yuhang;
5. 删除表空间
drop tablespace 表空间名 including CONTENTS and datafiles;
五、导入、导出数据库
执行环境:DOC
1. 导出数据库
将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
将数据库中system用户与sys用户的表导出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
将数据库中的表table1 、table2导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)
将数据库中的表table1中的字段filed1以"00"打头的数据导出
exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"
2. 导入数据库
将D:\daochu.dmp 中的数据导入 TEST数据库中。
imp system/manager@TEST file=d:\daochu.dmp
上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。
将d:\daochu.dmp中的表table1 导入
imp system/manager@TEST file=d:\daochu.dmp tables=(table1)