Oracle学习笔记之七(用户管理、角色与权限、导入导出等)

下面这些基本的SQL语句应该熟悉,能够灵活运用。最好在不查资料的情况下,能够写出如下的任何代码。

1. 用户操作

--create user username identified by password
--[default tablespace tablespace_default]
--[temporary tablespace tablespace_temp]
--[profiles profilename]
--[account lock|account unlock]

--创建用户
create user df identified by pass1
    default tablespace users
    temporary tablespace temp;

--修改用户配额
alter user df quota 20m on users;

--修改用户密码
alter user df identified by pass2;

--解锁用户
alter user df account unlock;

--删除用户
drop user df cascade;

--授权
--grant sys_privi|role to user|role|public with admin option
grant connect to mytest;
grant resource to mytest;
grant dba to mytest;
grant exp_full_database to mytest;
grant imp_full_database to mytest;

--回收权限
--revoke sys_privi|role from user|role|public
revoke dba from mytest;

--对象授权
--grant obj_privi|all column on schema.object to user|role|public [with grant option]|[with hierarchy option]
grant select,insert,delete,update on BBS.BBSDETAIL to MYTEST;   

--回收对象授权
--revoke obj_privi|all on schema.object from user|role|public cascade constraints
revoke delete,update,insert,select on BBS.BBSDETAIL from MYTEST;

2. 角色与权限

表1:部分常用预定义角色的权限说明

角色名   包含权限
CONNECT                                            

ALTER SESSION                                                                        

CREATE CLUSTER

CREATE DATABASE LINK

CREATE SEQUENCE

CREATE SESSION

CREATE SYNONYM

CREATE TABLE

CREATE VIEW

 

CREATE CLUSTER

CREATE INDEXTYPE

CREATE OPERATOR

CREATE PROCEDURE

CREATE  SEQUENCE

CREATE TABLE

CREATE TRIGGER

CREATE TYPE 

 DBA  所有权限,不受限制
 EXP_FULL_DATABASE

SELECT ANY TABLE

BACKUP ANY TABLE

EXECUTE ANY PROCEDURE

EXECUTE ANY TYPE

ADMINS RESOURCE MANAGER

 IMP_FULL_DATABASE

EXECUTE_CATALOG_ROLE

SELECT_CATALOG_ROLE

 

3. EXPDP和IMPDP

数据泵导出包括导出表、导出模式、导出表空间和导出全部数据库4种模式。EXPDP工具只能将导出的转储文件存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录。因此,使用EXPDP工具时,必须首先建立DIRECTORY对象,并且需要为数据库用户授予使用使用DIRECTORY对象的权限。

示范:

create directory DUMP_DIR as 'F:\dpdump';
grant read,write on directory DUMP_DIR to MYTEST;

其中,我这里的F盘为移动硬盘,数据库存放目录与DUMP目录不在一个物理盘上,保证了导出与导入的速度。

3.1 EXPDP导出命令

expdp mytest/test001@orcl directory=DUMP_DIR dumpfile=mytest_s.dmp schemas=MYTEST

EXPDP命令参数:

1). CONTENT

该参数用于指定要导出的内容,默认值为ALL,语法如下:

content=[all|data_only|metadata_pnly]

2). QUERY

该参数用于指定过滤导出数据的WHERE条件,语法如下:

query=[schema.][table_name:]query_clause

expdp mytest/test001@orcl directory=DUMP_DIR dumpfile=mytest_s.dmp tables=DEPT query='where DEPTNO=10'

3). DIRECTORY

该参数指定转储文件和日志文件所在的目录,语法如下:

directory=directory_object

4). DUMPFILE

该参数用于指定转储文件的名称,默认名称为expdat.dmp,语法如下:

dumpfile=[directory_object:]file_name[,...]

5). FULL

该参数用于指定数据库模式导出,默认为n,语法如下:

full={y|n}

6). LOGFILE

该参数用于指定导出日志文件的名称,默认名称为export.log,语法如下:

logfile=[directory_object:]file_name

7). STATUS

该参数用于指定显示导出作业进程的详细状态,默认值为0,语法如下:

status=integer

integer用于指定显示导出作业状态的时间间隔,单位为秒。指定该参数后,每隔特定时间间隔会显示作业完成的百分比。

8). TABLES

该参数用于指定表模式导出,语法如下:

tables=[schema.]table_name[:partition_name][,...]

9). TABLESPACE

该参数用于指定要导出表空间列表。

10). COMPRESSION

减少转储文件大小。
有效的关键字值为: ALL, DATA_ONLY, [METADATA_ONLY] 和 NONE。

11). ENCRYPTION

加密某个转储文件的一部分或全部。
有效的关键字值为: ALL, DATA_ONLY, ENCRYPTED_COLUMNS_ONLY, METADATA_ONLY 和 NONE

12). ENCRYPTION_MODE
生成加密密钥的方法。
有效的关键字值为: DUAL, PASSWORD 和 [TRANSPARENT]。

13). ENCRYPTION_PASSWORD
用于在转储文件中创建加密数据的口令密钥。

综合示范(将数据库模式为mytest下面内容导出到mytest_s.dmp文件,压缩,加密):

expdp mytest/test001@orcl compression=ALL directory=DUMP_DIR dumpfile=mytest_s.dmp 
    encryption=ALL encryption_mode=PASSWORD encryption_password=yourpasshere schemas=MYTES

3.2 IMPDP导入命令

impdp mytest/test001@orcl directory=DUMP_DIR dumpfile=mytest_s.dmp  schemas=MYTEST

IMPDP命令参数:
1). REMAP_SCHEMA
将一个方案中的对象加载到另一个方案。语法如下:

remap_schema=source_schema:target_schema

2). REMAP_TABLESPACE
将表空间对象重新映射到另一个表空间。语法如下:

remap_tablespace=source_tablespace:target_tablespace

3). SQLFILE
可以从DMP文件中提取对象的 SQL DDL 语句,写入指定的文件,以便之后使用。

4). TABLE_EXISTS_ACTION
导入对象已存在时执行的操作。
有效的关键字为: APPEND, REPLACE, [SKIP] 和 TRUNCATE。

5). TRANSPORT_DATAFILES
按可传输模式导入的数据文件的列表。示范(向当前数据库中导入test.dbf数据文件):

impdp system/1qaz2wsx directory=DUMP_DIR dumpfile=tran_datafiles.dmp transport_datafile='d:\OracleData\test.dbf'


综合示范(导入加密的文件):

impdp mytest/test001@orcl directory=DUMP_DIR dumpfile=mytest_s.dmp encryption_password=yourpasshere schemas=MYTEST

 

你可能感兴趣的:(oracle学习)