oracle数据库安全.ppt

上传人:夺命阿水 文档编号:242097 上传时间:2023-03-16 格式:PPT 页数:67 大小:300.50KB
返回 下载 相关 举报
oracle数据库安全.ppt_第1页
第1页 / 共67页
oracle数据库安全.ppt_第2页
第2页 / 共67页
oracle数据库安全.ppt_第3页
第3页 / 共67页
oracle数据库安全.ppt_第4页
第4页 / 共67页
oracle数据库安全.ppt_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《oracle数据库安全.ppt》由会员分享,可在线阅读,更多相关《oracle数据库安全.ppt(67页珍藏版)》请在课桌文档上搜索。

1、数据库安全,目录,一、数据库安全技术二、Oracle数据库安全三、SQL Injection 安全问题,一、数据库安全,数据库安全是指保护数据库以防止非法用户的越权使用、窃取、更改或破坏数据。数据库的安全性含义防止非法用户对数据库的访问 防止用户的非法操作,数据库安全的内容,物理层:重要的计算机系统必须在物理上受到保护,以防止入侵者强行进入或暗中潜入。人员层:数据库系统的建立、应用和维护等工作,一定要由政治思想上过硬的合法用户来治理。操作系统层:要进入数据库系统,首先要经过操作系统,假如操作系统的安全性差,数据库将面临着重大的威胁。网络层:由于几乎所有网络上的数据库系统都答应通过终端或网络进行

2、远程访问,所以网络的安全和操作系统的安全一样重要,网络安全了,无疑对数据的安全提供了保障。数据库系统层:数据库系统应该有完善的访问控制机制,以防止非法用户的非法操作。为了保证数据库的安全,必须在以上所有层次上进行安全性控制。,数据库系统安全的主要风险,1、来自操作系统的风险:病毒、后门、数据库系统和操作系统的关联 2、来自管理的风险:安全意识薄弱,安全管理措施不落实。3、来自用户的风险:用户帐号、作用和对特定数据库目标的操作许可4、来自数据库系统内部的风险:,数据库安全的主要技术,1、数据库加密 对数据库中存储的重要数据进行加密处理,以实现数据存储的安全保护。2、存取管理技术(1).用户认证技

3、术 a.用户身份验证 b.用户身份识别(2).访问控制 a.按功能模块对用户授权 b.将数据库系统权限赋予用户,数据库安全的主要技术,3、备份与恢复 数据库备份常用的备份方法有:静态备份、动态备份和逻辑备份等;而数据库恢复则可以通过磁盘镜像、数据库备份文件和数据库日志三种方式来完成。4、建立安全的审计机制 审计就是对指定用户在数据库中的操作进行监控和记录的一种数据库功能。,二、oracle 数据库安全,ORACEL概述,Oracle是关系型数据库管理系统。从总体上而言,Oracle数据库是业界安全性方面最完备的数据库产品。在数据库安全性的国际标准中,Oracle通过了14项标准的测试,是所有数

4、据库产品中通过安全性标准最多、最全面的产品。Oracle在C2级的操作系统上(如商用UNIX,VMS操作系统),不仅满足NCSC C2级安全标准,而且已经正式通过了NCSC C2标准的测试。在B1级的操作系统上不仅满足NCSC B1级安全标准,而且已经通过了NCSC B1级标准的测试。,Oracle数据安全控制机制,用户管理 权限管理 角色管理 表空间设置和配额 用户资源限制 数据库审计 数据库的备份和恢复,用户管理,数据库初始用户SYS数据库中具有最高权限的DBA,可以启动、修改和关闭数据库,拥有数据字典SYSTEM一个辅助的DBA,不能启动和关闭数据库,但可以进行其他一些管理工作SCOTT

5、口令tiger,用于测试网络的连接PUBLIC用户组为数据库中所有用户设定必需的对象权限和系统权限,用户属性,认证方式数据库身份认证 外部身份认证 全局身份认证默认表空间DEFAULT TABLESPACE临时表空间TEMPORARY TABLESPACE,表空间配额QUOTA ON 概要文件限制用户对数据库系统资源的使用设置用户的口令管理策略账户状态是否过期是否锁定,用户属性,权限管理,所谓权限就是执行特定类型SQL命令或访问其他用户的对象的权利。Oracle中用户权限的分类系统权限在数据库级别执行某种操作的权限,或针对某一类对象执行某种操作的权限。对象权限对某个特定的数据库对象执行某种操作

6、的权限 获取途径的权限直接授权间接授权,系统权限管理,系统权限分类对数据库某一类对象的操作能力,通常带有ANY关键字数据库级别的某种操作能力系统权限的授予语法结构:GRANT sys_list|role_list|PUBLIC WITH ADMIN OPTION;示例:为PUBLIC用户组授予CREATE SESSION系统权限 GRANT CREATE SESSION TO PUBLIC;,系统权限管理,系统权限授予时需要注意的几点:只有DBA才应当拥有ALTER DATABASE 系统权限。应用程序开发者一般需要拥有CREATE TABLE、CREATE VIEW和CREATE INDEX

7、等系统权限。普通用户一般只具有CREATE SESSION系统权限。只有授权时带有WITH ADMIN OPTION子句时,用户才可以将获得的系统权限再授予其他用户,即系统权限的传递性。,系统权限的回收语法结构 REVOKE sys_priv_list FROM user_list|role_list;注意事项多个管理员者授予用户同一个系统权限后,其中一个管理员回收其授予该用户的系统权限时,该用户不再拥有该系统权限。为了回收用户系统权限的传递性(授权时使用了WITH ADMIN OPTION子句),必须先回收其系统权限,然后再授予其相应的系统权限。如果一个用户获得的系统权限具有传递性(授权时使

8、用了WITH ADMIN OPTION子句),并且给其他用户授权,那么该用户系统权限被回收后,其他用户的系统权限并不受影响。,系统权限管理,对象权限分类:对象权限的授权语法结构 GRANT obj_priv_list|ALL ON schema.object TO user_list|role_list WITH GRANT OPTION示例:将scott模式下的emp表的SELECT、UPDATE、INSERT权限授予user1用户。GRANT SELECT,INSERT,UPDATE ON scott.emp TO user1;,对象权限管理,对象权限的回收语法结构 REVOKE obj_

9、priv_list|ALL ON schema.object FROM user_list|role_list;需要注意的几点多个管理员者授予用户同一个对象权限后,其中一个管理员回收其授予该用户的对象权限时,不影响该用户从其他管理员处获得的对象权限。为了回收用户对象权限的传递性(授权时使用了WITH GRANT OPTION子句),必须先回收其对象权限,然后再授予其相应的对象权限。如果一个用户获得的对象权限具有传递性(授权时使用了WITH GRANT OPTION子句),并且给其他用户授权,那么该用户的对象权限被回收后,其他用户的对象权限也被回收。,对象权限管理,角色管理,角色:一系列相关权限

10、的集合。角色的分类 数据库系统预定义角色 用户自定义角色角色的管理定义、授权、修改、生效与失效、删除、查询利用角色对用户间接授权,概要文件的作用限制用户对数据库和系统资源的使用以及进行用户口令管理资源限制级别会话级限制调用级限制资源限制类型CPU使用时间逻辑读每个用户的并发会话数用户连接数据库的空闲时间用户连接数据库的时间私有SQL区和PL/SQL区的使用,概要文件管理,启用或停用资源限制在数据库启动前启用或停用资源限制 将数据库初始化参数文件中的参数RESOURCE_LIMIT的值设置为TRUE或FALSE在数据库启动后启用或停用资源限制使用ALTER SYSTEM语句修改RESOURCE_

11、LIMIT参数值为TRUE或FALSE,概要文件管理,概要文件中参数,资源限制参数CPU_PER_SESSIONCPU_PER_CALLCONNECT_TIMEIDLE_TIMESESSIONS_PER_USERLOGICAL_READS_PER_SESSION LOGICAL_READS_PER_CALLPRIVATE_SGACOMPOSITE_LIMIT,口令管理参数FAILED_LOGIN_ATTEMPTSPASSWORD_LOCK_TIMEPASSWORD_GRACE_TIME PASSWORD_LIFE_TIMEPASSWORD_REUSE_MAXPASSWORD_REUSE_TIM

12、EPASSWORD_VERIFY_FUNCTION,概要文件中参数,数据库审计,数据库是用来监视和记录用户在数据库中的活动。Oracle安全性的另一个重要领域。审记的方式:1、SQL审计命令 通过AUDIT语句我们可以对成功或者不成功的特定对象的读取,更新操作进行审计。2、用对象触发器进行审计 由客户自行开发放置于特定数据库对象上的触发器,数据库审计,3、用系统级触发器进行审计 当用户登录数据库或者离开数据库时,都可以通过自定义的触发器来记录用户名称,操作时间,终端标识号等信息。4、用LogMiner进行审计 用LogMiner工具用于挖掘重作日志中的所有操作5、细精度审计(FGA)能够记录

13、SCN 号和行级的更改以重建旧的数据,备份与恢复,备份与恢复的基本概念备份的原则与策略恢复的原则与策略,备份与恢复的必要性,数据库备份与恢复的目的数据库系统在运行中可能发生故障,轻则导致事务异常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中的数据部分或全部丢失。数据库备份与恢复的目的就是为了保证在各种故障发生后,数据库中的数据都能从错误状态恢复到某种逻辑一致的状态。数据库的不一致状态如果数据库系统在运行中发生故障,有些提交的事务对数据库所做的修改有一部分写入物理数据库,这时数据库就处于一种不正常的状态,或者说是不一致的状态。,备份与恢复的基本概念,备份分为物理备份和逻辑备份物理备份

14、,是指通过将重要的物理文件备份起来,以避免物理故障造成的损失。逻辑备份,通常是SQL语句的集合。在实际应用中,应该以物理备份为主,逻辑备份作为补充。,恢复类型,完全恢复从一个物理备份中恢复一个已丢失的数据文件的拷贝,然后根据从此刻起的所有归档日志文件与重做日志文件进行恢复,这样能够得到从备份以来发生的所有变化,这种恢复称为完全恢复。不完全恢复如果归档日志文件有丢失的情况发生,那么数据库只能恢复到这个归档日志文件以前的状态,没有得到从备份以来的所有变化,这种恢复称为不完全恢复。,物理备份,物理备份分为冷备份与热备份。冷备份又称为脱机备份。是在数据库保持关闭状态下,把数据库的配置文件、数据文件、控

15、制文件、重做日志文件和归档日志文件复制到其他地方保存起来。热备份又称为联机备份或者归档备份。是在数据库保持开放状态下对数据库进行备份,热备份的好处是不必关闭数据库,不影响数据库系统的正常运行,但是热备份的操作要比冷备份复杂。,物理备份与恢复,冷备份与恢复热备份与恢复不完全恢复,物理备份方法,冷备份与恢复,冷备份关闭数据库实例,用操作系统的实用工具备份数据文件。如果没有启用归档模式,数据库不能恢复到备份完成后的任意时刻。,关闭数据库,开始备份,故障时刻,备份,恢复,重装备份副本,恢复丢失数据,备份完成,冷备份,如果启用归档模式,从冷备份结束后到出现故障这段时间的数据库恢复,可以利用联机日志文件和

16、归档日志文件实现。,冷备份步骤,步骤:1、关闭数据库 2、备份所有相关的数据库文件:数据文件 控制文件 Redo 日志 归档的 Redo 日志 初始化文件,冷备份的恢复,非归档模式下恢复关闭数据库用备份文件覆盖原有文件重新启动数据库,热备份是备份数据库的最佳方法。系统工作在归档模式下。转到归档模式后,应立即进行热备份。,热备份与恢复,热备份,热备份当数据库正在运行时进行的数据库备份过程。当数据库处在可归档日志模式下,可使用热备份。有些关键数据库应用系统可能需要数据库每天24小时,每周7天的运行,就应该使用热备份。热备份的优点:备份时,数据库可以是打开的。可用来全面恢复数据库(可用来在任何一点上

17、恢复)。,设置归档模式,SHUTDOWNSTARTUP MOUNT ALTER DATABASE ARCHIVELOGALTER DATABASE OPEN ALTER SYSTEM ARCHIVE LOG STARTALTER SYSTEM SET log_archive_dest=e:archives ALTER SYSTEM SET log_archive_format=“oracle1%S.ARC,热备份:备份数据文件,查询视图v$datafile 和视图v$tablespace决定需要备份的数据文件将某个表空间设为备份模式 ALTER TABLESPACE name BEGIN BA

18、CKUP;使用操作系统命令将该表空间所有数据文件备份 结束该表空间的备份模式ALTER TABLESPACE name BEGIN BACKUP;对数据库的每个表空间,执行步骤3、4、5操作。,ALTER DATABASE BACKUP CONTROLFILE TO d:backcontrol.bkp reuse;ALTER DATABASE BACKUP CONTROLFILE TO TRACE,热备份:备份控制文件,归档当前的联机日志文件 备份归档日志文件 备份初始化参数文件,热备份:备份的其他文件,热备份下的数据库恢复,利用热备份恢复语法RECOVER AUTOMATIC DATABAS

19、E|TABLESPACE tabname|DATAFILE dfname UNTIL CANCEL|TIME time|CHANGE scn USING BACKUP CONTROLFILE,数据文件级别的恢复,将受损的数据文件脱机ALTER DATAFILE datafile OFFLINE用备份的数据文件覆盖受损的数据文件恢复数据文件RECOVER DATAFILE datafile;将数据文件联机ALTER DATAFILE datafile ONLINE;将数据库修改为打开状态ALTER DATABASE OPEN;,表空间级别的恢复,用备份的表空间对应的所有数据文件复制到原来的目录,

20、覆盖受损的数据文件。恢复表空间RECOVER TABLESPACE tablespacename;将数据库修改为打开状态ALTER DATABASE OPEN;,数据库完全恢复步骤,确保数据库已经关闭(使用ABORT操作)SHUTDOWN ABORT;用最后的数据库备份恢复数据文件。如果当前控制文件丢失,使用镜像版本复制到已修好的磁盘中,或者重新创建控制文件。还原所有已归档的日志。如果服务器参数文件损坏,则利用备份的初始化参数文件创建服务器参数文件。CREATE SPFILE FROM PFILE;,数据库完全恢复步骤(续),将数据库启动到MOUNT状态,STARTUP MOUNT;使用REC

21、OVER命令进行恢复。命令如下:RECOVER DATABASE;将数据库修改为打开状态:ALTER DATABASE OPEN;RECOVER DATABASE;恢复完成后,重新打开数据库 ALTER DATABASE OPEN;,不完全恢复,基于CANCEL的恢复基于时间的恢复基于SCN的恢复,基于CANCEL的恢复,关闭数据库 SHUTDOWN IMMEDIATE;把原来备份的文件拷贝到对应路径加载数据库 STARTUP MOUNT;对数据库进行恢复 RECOVER DATABASE UNTIL CANCEL;打开数据库 ALTER DATABASE OPEN RESETLOG;或 AL

22、TER DATABASE OPEN NORESETLOG;,基于时间的恢复,关闭数据库 SHUTDOWN IMMEDIATE;把原来备份的文件拷贝到对应路径加载数据库 STARTUP MOUNT;对数据库进行恢复 RECOVER DATABASE UNTIL TIME 12月-10-2003,19:23:39打开数据库 ALTER DATABASE OPEN RESETLOG;或 ALTER DATABASE OPEN NORESETLOG;,基于SCN的恢复,关闭数据库 SHUTDOWN IMMEDIATE;把原来备份的文件拷贝到对应路径加载数据库 STARTUP MOUNT;对数据库进行恢

23、复 RECOVER DATABASE UNTIL CHANGE 87654;打开数据库 ALTER DATABASE OPEN RESETLOG;或 ALTER DATABASE OPEN NORESETLOG;,逻辑备份与恢复,优点:能容易快速地进行一个或更多单个表或行恢复。升级数据库时,更加方便。跨平台移动数据库时,更加方面。数据库可一直运行。目的:挽救由用户或应用错误造成的损失(用户或应用偶尔删除一行和数据库表造成的数据丢失),注意事项:1、逻辑备份不能代替冷备份或热备份。冷备份或热备份 是对物理数据库文件的冷备份或热备份。逻辑备份是 对特定的逻辑对象的备份。2、冷备份或热备份用于数据库

24、发生介质故障时的恢复。逻辑备份用于用户或应用偶而删除一行和数据库表造成的数据丢失的恢复。3、不可能在导入中应用归档日志文件从而使它恢复到导出执行后的某一时间点。,使用方法,命令行EXP/IMP,指定需要的参数Enterprise Manager,使用EXP/IMP命令导出和导入数据,EXP/IMP命令交互式数据导出和导入命令行模式的数据导出与导入参数模式的数据导出与导入,导出模式,表导出表定义、数据、授权、索引、约束用户导出指定用户模式下的所有表定义、数据、授权、索引、约束全数据库导出数据库中所有表定义、数据、授权、索引、约束,EXPORT命令,语法:exp keyword=(value1,v

25、alue2,valuen)举例:exp scott/tiger TABLES=(emp,dept)rows=y file=exptable.dmpexp system/manager OWNER=scott file=d:exptable.dmpexp system/manager FULL=y inctype=cumulative file=d:exptable.dmp,IMPORT命令,语法:imp keyword=(value1,value2,valuen)举例:imp scott/tiger TABLES=(emp,dept)rows=y file=exptable.dmpimp sy

26、stem/manager FROMUSER=scott file=d:exptable.dmpimp system/manager file=d:exptable.dmp,导入过程,创建新的表和索引数据导入,索引更新触发器导入,在新表上建立完整性约束,三、sql injection 安全问题,SQL Injection,随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的

27、数据,这就是所谓的SQL Injection,即SQL注入。SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况。能不能根据具体情况进行分析,构造巧妙的SQL语句,从而成功获取想要的数据。,SQL注入技术的含义,(1)脚本注入式的攻击(2)恶意用户输入用来影响被执行的SQL脚本 当一个攻击者通过在查询语句中插入一系列的SQL语句来将数据写入到应用程序中,这种方法就可以定义成SQL注入。“从

28、一个数据库获得未经授权的访问和直接检索”,SQL注入攻击就其本质而言,它利用的工具是SQL的语法,针对的是应用程序开发者编程过程中的漏洞,“当攻击者能够操作数据,往应用程序中插入一些SQL语句时,SQL注入攻击就发生了”。实际上,SQL注入是存在于常见的多连接的应用程序中一种漏洞,攻击者通过在应用程序中预先定义好的查询语句结尾加上额外的SQL语句元素,欺骗数据库服务器执行非授权的任意查询。这类应用程序一般是网络应用程序(Web Application),它允许用户输入查询条件,并将查询条件嵌入SQL请求语句中,发送到与该应用程序相关联的数据库服务器中去执行。通过构造一些畸形的输入,攻击者能够操

29、作这种请求语句去获取预先未知的结果。,SQL注入攻击的防御手段,方案有:(1)在服务端正式处理之前对提交数据的合法性进行检查;(2)封装客户端提交信息;(3)替换或删除敏感字符/字符串;(4)屏蔽出错信息。,SQL注入攻击的防御手段,方案(1)在服务端正式处理之前对提交数据的合法性进行检查被公认是最根本的解决方案,在确认客户端的输入合法之前,服务端拒绝进行关键性的处理操作,不过这需要开发者能够以一种安全的方式来构建网络应用程序,虽然已有大量针对在网络应用程序开发中如何安全地访问数据库的文档出版,但仍然有很多开发者缺乏足够的安全意识,造成开发出的产品中依旧存在注入漏洞;,SQL注入攻击的防御手段,方案(2)封装客户端提交信息的做法需要RDBMS的支持,目前只有Oracle采用该技术;方案(3)替换或删除敏感字符/字符串则是一种不完全的解决措施。,SQL注入攻击的防御手段,方案(4)屏蔽出错信息是目前最常被采用的方法,很多安全文档都认为SQL注入攻击需要通过错误信息收集信息,有些甚至声称某些特殊的任务若缺乏详细的错误信息则不能完成,这使很多安全专家形成一种观念,即注入攻击在缺乏详细错误的情况下不能实施。而实际上,屏蔽错误信息是在服务端处理完毕之后进行补救,攻击其实已经发生,只是企图阻止攻击者知道攻击的结果而已。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号