本讲主要内容:
1.表空间管理:表空间的作用,创建,修改,删除及管理;
2.用户管理:创建用户,修改用户,删除用户,修改密码,解锁;
3.用户权限管理:授权,撤销授权
4.数据库的备份与恢复
5.数据库导入导出
表空间
表空间管理
•表空间可以分为两大类:
•管理表空间主要包括以下操作:
•创建表空间
•创建表空间
CREATE TABLESPACE "APP"
LOGGING
DATAFILE 'C:\ORACLE\ORADATA\EXAMPLE\APP1.DBF' SIZE 5M REUSE
AUTOEXTEND ON NEXT 512K MAXSIZE 10M
•创建本地管理的临时表空间
CREATE temporary TABLESPACE "APPTEMP"
TEMPFILE 'C:\ORACLE\ORADATA\EXAMPLE\APPTEMP.DBF' SIZE 5M
EXTENT MANAGEMENT LOCAL
Uniform size 1 M
•创建本地管理的还原表空间
CREATE undo TABLESPACE “roolback1"
DATAFILE 'C:\ORACLE\ORADATA\EXAMPLE\roolback1.DBF' SIZE 5M
表空间的状态
ALTER TABLESPACE "APP" OFFLINE Normal
ALTER TABLESPACE "APP" ONLINE
•更改表空间的状态
•设置表空间为只读,只读表空间不能写数据,可删除数据
•设置表空间为读/写
•删除表空间
DROP TABLESPACE “APP” INCLUDING CONTENTS AND DATAFILES
带INCLUDING CONTENTS可删除表空间的对象,不删文件
带AND DATAFILE删除数据文件
•改变表空间数据文件大小
ALTER DATABASE DATAFILE ‘d:\oracle\oradata\study\myapp01.dbf’
Resize 50m --改变大小
ALTER TABLESPACE ‘MYAPP’
ADD DATAFILE ‘d:\oracle\oradata\study\mypp02.dbf’ size 10m;
•改变表空间数据文件
举例
表空间离线
Alter tablespace ‘myapp’ offline
修改数据文件名称,在操作系统下改
修改表空间数据文件
alter tablespace myapp
rename datafile ’d:\oracle\oradata\study\myapp01.dbf’
to ’d:\oracle\oradata\study\myapp02.dbf’
脚本创建表空间
CREATE TABLESPACE "STORE"
LOGGING
DATAFILE 'D:\ORACLE\ORADATA\STUDY\STORE.ora' SIZE 5M EXTENT
MANAGEMENT LOCAL
创建用户
举例
•创建用户
CREATE USER "ST" IDENTIFIED BY "123" DEFAULT TABLESPACE "STORE"
ACCOUNT UNLOCK;
GRANT "CONNECT" TO "ST";
GRANT "RESOURCE" TO "ST";
修改用户的默认表空间
ALTER USER kong default tablespace=store
修改用户在表空间上的空间使用限额
ALTER USER kong quote 10m ON STORE
修改用户密码
Alter user test identified by test11;
启动两个SQL PLUS:A、B表示
A>conn sys/change_on_install as sysdba
A>create user test identified by test123 default tablespace store;
B>conn test/test123 --出错,没有create session的权限
A>grant create session to test; --授权成功
B>conn test/test123 --连接成功
B>create table ab(a number(5), b varchar2(20)); --权限不足
A>grant create table to test; --赋给操作权限
B>create table ab(a number(5), b varchar2(20)); --没有表空间store的权限
A>grant unlimited tablespace to test; --赋给用户表空间资源的操作权限
B>create table ab(a number(5), b varchar2(20)); --创建成功
B>select * from scott.dept; --表或试图不存在,因为没权限
B>grant select any table to test; --赋给用户可以查询任何表空间的表的数据
B>select * from scott.dept; --OK
B>create user test1 identified by test1 --权限不足
A>grant create user to test with admin option; --给test赋给创建用户的权限, 并且test可以将创建用户的权限赋给其他用户
A>grant create session to test with admin option;
B>create user test1 identified by test1 --创建成功
B>conn test1/test1 --连接失败,没有权限
B>grant create session to test1 --test用户将create session权限赋给test1
B>conn test1/test1 --连接成功
对象权限
SQL> GRANT SELECT, UPDATE ON EMP TO user;
SQL> GRANT SELECT ON EMP TO user WITH GRANT OPTION;
SQL> GRANT UPDATE(SAL, HIREDATE) ON EMP TO user;
SQL> REVOKE SELECT, UPDATE ON EMP FROM user;
查看用户的权限
SQL>select * from user_role_privs;
查看当前用户的系统权限和表级权限
SQL>select * from user_sys_privs;
SQL>select * from user_tab_privs;
select * from session_privs; //用户连上后
select * from dba_sys_privs where grantee in ('CONNECT','RESOURCE');
select * from role_sys_privs where role='角色名';
常用字典信息
•表空间信息表
•数据文件信息表
•临时文件信息
•查看用户及其默认的表空间
备份与恢复简介
Oracle数据库的备份包括以下两种类型:
故障类型
导致数据库操作中止的故障包括四种类型:
数据库备份
导出和导入实用程序
使用以下三种方法调用导出和导入实用程序:
导出和导入数据库对象的四种模式是:
•导出实用程序有以下常用命令参数:
参数 | 说明 |
USERID | 确定执行导出实用程序的用户名和口令 |
BUFFER | 确定导出数据时所使用的缓冲区大小,其大小用字节表示 |
FILE | 指定导出的二进制文件名称,默认的扩展名是.dmp |
FULL | 指定是否以全部数据库方式导出,只有授权用户才可使用此参数 |
OWNER | 要导出的数据库用户列表 |
HELP | 指定是否显示帮助消息和参数说明 |
ROWS | 确定是否要导出表中的数据 |
TABLES | 按表方式导出时,指定需导出的表和分区的名称 |
PARFILE | 指定传递给导出实用程序的参数文件名 |
TABLESPACES | 按表空间方式导出时,指定要导出的表空间名 |
导入实用程序
•导入实用程序有如下常用命令参数:
参数 | 说明 |
USERID | 指定执行导入的用户名和密码 |
BUFFER | 指定用来读取数据的缓冲区大小,以字节为单位 |
COMMIT | 指定是否在每个数组(其大小由BUFFER参数设置)插入后进行提交 |
FILE | 指定要导入的二进制文件名 |
FROMUSER | 指定要从导出转储文件中导入的用户模式 |
TOUSER | 指定要将对象导入的用户名。FROMUSER与TOUSER可以不同 |
FULL | 指定是否要导入整个导出转储文件 |
TABLES | 指定要导入的表的列表 |
ROWS | 指定是否要导入表中的行 |
PARFILE | 指定传递给导入实用程序的参数文件名,此文件可以包含这里列出的所有参数 |
IGNORE | 导入时是否忽略遇到的错误,默认为N |
TABLESPACES | 按表空间方式导入,列出要导入的表空间名 |
本人从事软件项目开发20多年,2005年开始从事Java工程师系列课程的教学工作,录制50多门精品视频课程,包含java基础,jspweb开发,SSH,SSM,SpringBoot,SpringCloud,人工智能,在线支付等众多商业项目,每门课程都包含有项目实战,上课PPT,及完整的源代码下载,有兴趣的朋友可以看看我的在线课堂
讲师课堂链接:https://edu.csdn.net/lecturer/893