回顾基本查询select列名,…Nfrom方案.表名条件查询select列名,…Nfrom方案.表名where表达式排序查询select列名,…Nfrom方案.表名orderby表达式分组查询select列名,…Nfrom方案.表名groupby表达式多表查询select列名,…Nfrom方案.表名1[left/right/full]join方案.表名2on表达式授课目标数据库的备份与还原数据的导入和导出Oracle的安全管理1、Oracle安全机制数据库的安全性是指保护数据库已防止不合法的使用造成的数据泄露、更改或破坏。系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安全性是紧密联系、相互支持的。Oracle安全机制数据库中的数据的安全性主要涉及到以下几个方面:身份验证:保证只有合法的用户才能登录并使用数据库。访问控制:即使是合法用户,也要控制用户对数据库对象的访问,拒绝非授权访问,防止信息泄密。可审计性:哪怕是非法用户的入侵行为和破坏行为也能跟踪,恢复数据。语义保密性:数据库中的数据以某种加密的形式存储,这样非法用户即使得到数据文件也无法利用。Oracle安全机制当用户连接到一个Oracle数据库时,必须经过身份认证,Oracle有两种身份验证方式:一.数据库身份验证二.外部身份验证创建用户帐号用户帐号状态用户的帐号有两种状态,DBA可以通过设置状态的方法使账户可用或不可用。一.帐号锁定锁定帐号可以使某个帐号不可用。二.账户解锁该状态下,帐号可以正常登陆。数据库权限的种类•权限是执行某一种操作的能力,在Oracle数据库中是利用权限来进行安全管理的,Oracle系统通过授予和撤销权限来实现对数据库安全的访问控制,这些权限可以分为两类:•系统权限:指在系统级控制数据库的存取和使用的机制。如是否能启动、停止数据库。是否能修改数据库参数等。Oracle提供了众多的系统权限,每一种系统权限指明用户进行某一种或某一类特定的数据库操作。系统权限中带有ANY关键字指明该权限的范围为数据库中的所有方案。•对象权限:对象权限指在特定数据库对象上执行某项操作的能力。与系统权限相比,对象权限主要是在Oracle对象上能够执行的操作,如查询、插入、修改、删除、执行等。这里的Oracle对象主要包括表、视图、聚簇、索引、序列、快照、函数、包等。不同的Oracle对象具有不同的对象权限,如表具有插入的对象权限,而序列却没有,而序列具有的执行对象权限表也没有。授予系统权限授予对象权限通过SQL命令对用户授权GRANT[对象权限]|[,]TO用户[WITHGRANTOPTION];角色概述•权限是Oracle数据库定义好的执行某些操作的能力。角色是权限管理的一种工具,即有名称的权限的集合。权限和角色是密不可分的。DBA可以利用角色来简化权限的管理。•Oracle数据库就借用了角色这种概念来实现这种权限管理的方法,达到简化权限管理的目的。角色是对权限进行集中管理(授予、回收)的一种方法,它是一组相关权限的组合,即将不同的权限组合到一起就形成了角色。创建角色系统预定义角色名称简介CONNECT,RESOURCE,DBA这些预定义角色主要是为了向后兼容。其主要是用于数据库管理。oracle建议用户自己设计数据库管理和安全的权限规划,而不要简单的使用这些预定角色。DELETE_CATALOG_ROLE,EXECUTE_CATALOG_ROLE,SELECT_CATALOG_ROLE这些角色主要用于访问数据字典视图和包。EXP_FULL_DATABASE,IMP_FULL_DATABASE这两个角色用于数据导入导出工具的使用。AQ_USER_ROLE,AQ_ADMINISTRATOR_ROLE这两个角色用于oracle高级查询功能SNMPAGENT用于oracleenterprisemanager和IntelligentAgentRECOVERY_CATALOG_OWNER用于创建拥有恢复库的用户。2、数据库的备份与还原尽管Oracle数据库采取了许多措施来保证数据库的安全性和完整性,但故障仍然不可避免。包括–系统故障–用户错误–硬件故障–自然灾难–。。。“备份”是数据的副本,用于在系统发生故障的时候能够恢复现有数据。2、数据库备份的类型完整备份即数据库的完整备份,包括事务日志备份。还原时的数据库与备份完成时的状态一致。差异备份即备份自上次完整备份后发生更改的数据。事务日志备份备份自上次事务日志备份后对数据库执行所有事务。2、备份示例-12、备份示例-22、备份示例-32、备份示例-42、备份示例-52、备份示例-61、备份示例-71、备份示例-82、备份示例-92、数据库的还原还原方案就是从一个或多个备份中还原数据,并在最后一个备份后恢复数据库。支持的方案取决于恢复模式:简单还原模式完全还原模式2、简单还原示例数据库备份1故障点数据库备份4数据库备份7差异备份2此部分数据丢失差异备份3差异备份5差异备份6差异备份8差异备份9恢复策略:恢复数据库备份7和差异备份92、完全还原示例数据库备份1故障点数据库备份3日志备份1此部分数据丢失日志备份3日志备份2差异备份2日志备份4日志备份5日志备份7日志备份6差异备份4日志备份8恢复策略:恢复数据库备份3、差异备份4、日志备份7和83、数据的导入导出导出是数据库的逻辑备份,导入是数据库的逻辑恢复。在Oracle中,Export实用程序就是用来完成这样的数据库备份的。若要恢复使用由一个导出生成的文件,可使用Import实用程序。导出有三种模式:(1)交互模式。在输入Exp命令后,根据系统的提示输入导出参数,如:用户名、口令和导出类型等参数。(2)命令行模式。命令行模式和交互模式类似,不同的是使用命令模式时,只能在模式被激活后,才能把参数和参数值传递给导出程序。(3)参数文件模式。参数文件模式的关键参数是Parfile。Parfile的对象是一个包含激活控制导出对话的参数和参数值的文件名。Export选项Export选项导出模式表模式用户模式表空间模式数据库模式表定义表定义表定义表定义表数据(所有或者选择的行)表数据表数据拥有的权限拥有的权限授予权限授予权限拥有表的索引拥有表的索引索引索引表的约束表的约束表的约束表的约束触发器命令行模式语法:expkeyword=(value,value2,…,valuen)例子:exphr/hrTABLES=(employees,departments)rows=yfile=exp1.dmpexpsystem/managerOWNER=hrfile=expdat.dmpexpsystem/managerTRANSPORT_TABLESPACE=yTABLESPACES=(ts_emp)log=ts_emp.logexpsystem/managerFULL=yfile=expcum1.dmp导出例:C:\expuserid=test/testfile=d:\impexp.dmp导入当数据库出现错误的修改或删除操作时,利用导入操作通过导出文件恢复重要的数据。在使用应用程序前对其操作的表导出到一个概要中,这样,如果由于应用程序中的错误而删除或修改了表中数据时,可以从已经导出到概要的备份表中恢复误操作的数据。Import选项Import选项导入模式描述表导入指定的表到方案中.用户导入一个方案中的所有对象表空间导入一个表空间中包含的所有对象的定义数据库导入整个导出的数据库的数据模式命令行模式语法:impkeyword=valueorkeyword=(value,value2,…valuen)例子:imphr/hrTABLES=(employees,departments)rows=yfile=exp1.dmpimpsystem/managerFROMUSER=hrfile=exp2.dmpimpsystem/managerTRANSPORT_TABLESPACE=yTABLESPACES=ts_employeesimpsystem/managerFULL=yfile=expfull.dmp导入例impuserid=test/testfull=yfile=d:\impexp.dmp使用数据泵导入导出文件概述Oracle10g及以上版本中使用数据泵来代替以前的EXP和IMP实用程序。其中:DataPumpExport:数据泵导出可以对数据和数据库元数据执行不同形式的逻辑备份;DataPumpImport:数据泵导入可以恢复有导出产生的文件,以实现对数据库的回复。数据泵的结构当启动数据泵导入或导出程序时,在数据库服务器端启动相应的服务器进程,完成数据的导入及导出任务,导入及导出的数据文件也保存在数据库服务器端。用EXPDP导出的备份文件写入数据库服务器端的磁盘,文件格式filename.dat。导入备份文件时只能用IMPDP导入程序完成。EXPDP数据泵导出实用程序IMPDP数据泵导入实用程序导入服务器进程导出服务器进程导出.DAT文件导入.DAT文件数据库数据泵的作用1、实现逻辑备份和逻辑回复;2、在数据库用户之间移动对象;3、在数据库之间移动对象;4、实现表空间迁移。数据泵与EXP/IMP技术的区别数据泵只是是服务器端工具,支持网络操作;Oracle10g以前的EXP和IMP是客户端工具。数据泵采用并行流技术比传统的EXP/IMP实现更快速的数据移动。数据泵技术类似于启动作业的控制进程,能控制整个导入或导出过程。数据泵技术使用目录和目录对象存储导出文件,导出数据前必须先创建目录对象。两种方式的导出文件不兼容。数据泵导入导出的目录对象Oracle要求数据泵必须使用目录对象。如果当前用户是DBA用户,可以使用默认的目录对象而不必再创建。数据泵作业会将备份文件、日志文件以及SQL文件存储在该目录下,如下指令查找该默认目录:SQLselect*fromdba_directorieswheredirectory_name='DATA_PUMP_DIR';OWNERDIRECTORY_NAMEDIRECTORY_PATH-------------------------------------------------SYSDATA_PUMP_DIRF:\app\Administraor\admin\orcl\dpdump\创建数据泵备份目录用户创建自己数据泵备份目录,以test用户为例:1.向test用户授权SQLconnsystem/orcl@orcl已连接。SQLgrantcreateanydirectorytotest;2.创建目录SQLconntest/test@orcl已连接。SQLcreatedirectorytest_diras‘d:\testdir’;DataPumpExport数据泵导出能将数据和元数据转存到转储文件集的一组操作文件中。提供了三种提取数据的方法:一是只提取数据库中的元数据即数据库对象的定义;二是只提取数据库中的数据而忽略数据库对象的定义;三是同时提取数据库中的元数据和数据。DataPumpExport数据泵导出(EXPDP)数据库实例导出整个数据库:使用SYSTEM用户登录数据库,限制备份的数据文件的大小为100M,一旦备份数据文件满,则自动创建一个新的备份文件,使用了替换变量%U来实现备份文件的自动创建,其中NOLOGFILE=Y即不记录备份过程。命令:C:\expdpsystem/orcl@orcldumpfile=mydb_%u.datfilesize=100mnologfile=yfull=y;DataPumpExport数据泵导出(EXPDP)数据库实例导出一个模式导出test模式,默认导出登数据库时的模式对象。命令:C:\expdptest/test@orcldirectory=test