版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 SYSTEM SCOTT PUBLIC用户组用户属性 认证方式数据库身份认证 外部身份认证 全局身份认证 默认表空间 DEFAULT TABLE
5、SPACE 临时表空间TEMPORARY TABLESPACE 表空间配额QUOTA ON 概要文件限制用户对数据库系统资源的使用设置用户的口令管理策略 账户状态是否过期是否锁定用户属性权限管理n 所谓权限就是执行特定类型SQL命令或访问其他用户的对象的权利。n Oracle中用户权限的分类 n 获取途径的权限系统权限管理 系统权限分类对数据库某一类对象的操作能力,通常带有ANY关键字数据库级别的某种操作能力 系统权限的授予语法结构: GRANT sys_list | role_list | PUBLIC WITH ADMIN OPTION ;示例:为PUBLIC用户组授予CREATE SES
6、SION系统权限 GRANT CREATE SESSION TO PUBLIC; 系统权限管理 系统权限授予时需要注意的几点:只有DBA才应当拥有ALTER DATABASE 系统权限。应用程序开发者一般需要拥有CREATE TABLE、CREATE VIEW和CREATE INDEX等系统权限。普通用户一般只具有CREATE SESSION系统权限。只有授权时带有WITH ADMIN OPTION子句时,用户才可以将获得的系统权限再授予其他用户,即系统权限的传递性。 系统权限的回收语法结构 REVOKE sys_priv_list FROM user_list| role_list; 注意事
7、项多个管理员者授予用户同一个系统权限后,其中一个管理员回收其授予该用户的系统权限时,该用户不再拥有该系统权限。为了回收用户系统权限的传递性(授权时使用了WITH ADMIN OPTION子句),必须先回收其系统权限,然后再授予其相应的系统权限。如果一个用户获得的系统权限具有传递性(授权时使用了WITH ADMIN OPTION子句),并且给其他用户授权,那么该用户系统权限被回收后,其他用户的系统权限并不受影响。系统权限管理 对象权限分类:对象权限的授权语法结构 GRANT obj_priv_list | ALL ON schema.object TO user_list | role_list
8、 WITH GRANT OPTION示例示例:将:将scott模式下的模式下的emp表的表的SELECT、UPDATE、 INSERT权限授予权限授予user1用户。用户。 GRANT SELECT,INSERT,UPDATE ON scott.emp TO user1;对象权限管理 对象权限的回收语法结构 REVOKE obj_priv_list | ALL ON schema.object FROM user_list|role_list; 需要注意的几点多个管理员者授予用户同一个对象权限后,其中一个管理员回收其授予该用户的对象权限时,不影响该用户从其他管理员处获得的对象权限。为了回收用户
9、对象权限的传递性(授权时使用了WITH GRANT OPTION子句),必须先回收其对象权限,然后再授予其相应的对象权限。如果一个用户获得的对象权限具有传递性(授权时使用了WITH GRANT OPTION子句),并且给其他用户授权,那么该用户的对象权限被回收后,其他用户的对象权限也被回收。对象权限管理角色管理 角色:一系列相关权限的集合。 角色的分类 数据库系统预定义角色 用户自定义角色 角色的管理 定义、授权、修改、生效与失效、删除、查询 利用角色对用户间接授权 概要文件的作用限制用户对数据库和系统资源的使用以及进行用户口令管理 资源限制级别会话级限制调用级限制 资源限制类型CPU使用时间
10、逻辑读每个用户的并发会话数用户连接数据库的空闲时间用户连接数据库的时间私有SQL区和PL/SQL区的使用概要文件管理 启用或停用资源限制在数据库启动前启用或停用资源限制 将数据库初始化参数文件中的参数RESOURCE_LIMIT的值设置为TRUE或FALSE在数据库启动后启用或停用资源限制使用ALTER SYSTEM语句修改RESOURCE_LIMIT参数值为TRUE或FALSE 概要文件管理概要文件中参数 资源限制参数 CPU_PER_SESSION CPU_PER_CALL CONNECT_TIME IDLE_TIME SESSIONS_PER_USER LOGICAL_READS_PER
11、_SESSION LOGICAL_READS_PER_CALL PRIVATE_SGA COMPOSITE_LIMIT 口令管理参数 FAILED_LOGIN_ATTEMPTS PASSWORD_LOCK_TIME PASSWORD_GRACE_TIME PASSWORD_LIFE_TIME PASSWORD_REUSE_MAX PASSWORD_REUSE_TIME PASSWORD_VERIFY_FUNCTION概要文件中参数数据库审计 数据库是用来监视和记录用户在数据库中的活动。Oracle安全性的另一个重要领域。审记的方式:1、SQL审计命令 通过AUDIT语句我们可以对成功或者不成功
12、的特定对象的读取,更新操作进行审计。2、用对象触发器进行审计 由客户自行开发放置于特定数据库对象上的触发器 数据库审计3、用系统级触发器进行审计 当用户登录数据库或者离开数据库时,都可以通过自定义的触发器来记录用户名称,操作时间,终端标识号等信息。 4、用LogMiner进行审计 用LogMiner工具用于挖掘重作日志中的所有操作5、细精度审计(FGA) 能够记录 SCN 号和行级的更改以重建旧的数据 备份与恢复 备份与恢复的基本概念 备份的原则与策略 恢复的原则与策略备份与恢复的必要性 数据库备份与恢复的目的 数据库系统在运行中可能发生故障,轻则导致事务异常中断,影响数据库中数据的正确性,重
13、则破坏数据库,使数据库中的数据部分或全部丢失。 数据库备份与恢复的目的就是为了保证在各种故障发生后,数据库中的数据都能从错误状态恢复到某种逻辑一致的状态。 数据库的不一致状态 如果数据库系统在运行中发生故障,有些提交的事务对数据库所做的修改有一部分写入物理数据库,这时数据库就处于一种不正常的状态,或者说是不一致的状态。备份与恢复的基本概念 备份分为物理备份和逻辑备份 物理备份,是指通过将重要的物理文件备份起来,以避免物理故障造成的损失。 逻辑备份,通常是SQL语句的集合。 在实际应用中,应该以物理备份为主,逻辑备份作为补充。恢复类型 完全恢复 从一个物理备份中恢复一个已丢失的数据文件的拷贝,然
14、后根据从此刻起的所有归档日志文件与重做日志文件进行恢复,这样能够得到从备份以来发生的所有变化,这种恢复称为完全恢复。 不完全恢复 如果归档日志文件有丢失的情况发生,那么数据库只能恢复到这个归档日志文件以前的状态,没有得到从备份以来的所有变化,这种恢复称为不完全恢复。物理备份 物理备份分为冷备份与热备份。 冷备份又称为脱机备份。是在数据库保持关闭状态下,把数据库的配置文件、数据文件、控制文件、重做日志文件和归档日志文件复制到其他地方保存起来。 热备份又称为联机备份或者归档备份。是在数据库保持开放状态下对数据库进行备份,热备份的好处是不必关闭数据库,不影响数据库系统的正常运行,但是热备份的操作要比
15、冷备份复杂。物理备份与恢复 冷备份与恢复 热备份与恢复 不完全恢复物理备份方法冷备份与恢复 冷备份冷备份 关闭数据库实例,用操作系统的实用工具备份数据文件。关闭数据库实例,用操作系统的实用工具备份数据文件。 如果没有启用归档模式,数据库不能恢复到备份完成后的如果没有启用归档模式,数据库不能恢复到备份完成后的任意时刻。任意时刻。关闭数据库,关闭数据库,开始备份开始备份故障时刻故障时刻 备份备份恢复恢复 重装备份副本重装备份副本恢复丢失数据恢复丢失数据备份完成备份完成冷备份 如果启用归档模式,从冷备份结束后到出现故障这如果启用归档模式,从冷备份结束后到出现故障这段时间的数据库恢复,可以利用联机日志
16、文件和归段时间的数据库恢复,可以利用联机日志文件和归档日志文件实现。档日志文件实现。 冷备份步骤 步骤:步骤: 1、关闭数据库、关闭数据库 2、备份所有相关的数据库文件:、备份所有相关的数据库文件: 数据文件数据文件 控制文件控制文件 Redo 日志日志 归档的归档的 Redo 日志日志 初始化文件初始化文件冷备份的恢复 非归档模式下恢复 关闭数据库 用备份文件覆盖原有文件 重新启动数据库 热备份是备份数据库的最佳方法。热备份是备份数据库的最佳方法。 系统工作在归档模式下。系统工作在归档模式下。 转到归档模式后,应立即进行热备份。转到归档模式后,应立即进行热备份。热备份与恢复热备份 热备份热备
17、份 当数据库正在运行时进行的数据库备份过程。当数当数据库正在运行时进行的数据库备份过程。当数据库处在可归档日志模式下,可使用热备份。据库处在可归档日志模式下,可使用热备份。 有些关键数据库应用系统可能需要数据库每天有些关键数据库应用系统可能需要数据库每天24小小时,每周时,每周7天的运行,就应该使用热备份。天的运行,就应该使用热备份。 热备份的优点:热备份的优点: 备份时,数据库可以是打开的。备份时,数据库可以是打开的。 可用来全面恢复数据库(可用来在任何一点上恢可用来全面恢复数据库(可用来在任何一点上恢复)。复)。设置归档模式SHUTDOWNSTARTUP MOUNT ALTER DATAB
18、ASE 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 BACKUP;使用操作系统命令将该表
19、空间所有数据文使用操作系统命令将该表空间所有数据文件备份件备份 结束该表空间的备份模式结束该表空间的备份模式ALTER TABLESPACE name BEGIN BACKUP;对数据库的每个表空间,执行步骤对数据库的每个表空间,执行步骤3、4、5操作。操作。 ALTER DATABASE BACKUP CONTROLFILE TO d:backcontrol.bkp reuse; ALTER DATABASE BACKUP CONTROLFILE TO TRACE 热备份:备份控制文件 归档当前的联机日志文件 备份归档日志文件 备份初始化参数文件 热备份:备份的其他文件热备份下的数据库恢复
20、利用热备份恢复语法 RECOVER AUTOMATIC DATABASE|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 DATA
21、BASE OPEN;表空间级别的恢复 用备份的表空间对应的所有数据文件复制到原来的目录,覆盖受损的数据文件。 恢复表空间 RECOVER TABLESPACE tablespacename; 将数据库修改为打开状态 ALTER DATABASE OPEN;数据库完全恢复步骤确保数据库已经关闭(使用确保数据库已经关闭(使用ABORT操作操作) SHUTDOWN ABORT;用最后的数据库备份恢复数据文件。用最后的数据库备份恢复数据文件。如果当前控制文件丢失,使用镜像版本如果当前控制文件丢失,使用镜像版本复制到已修好的磁盘中,或者重新创建复制到已修好的磁盘中,或者重新创建控制文件。控制文件。还原所
22、有已归档的日志。还原所有已归档的日志。 如果服务器参数文件损坏,则利用备份如果服务器参数文件损坏,则利用备份的初始化参数文件创建服务器参数文件。的初始化参数文件创建服务器参数文件。CREATE SPFILE FROM PFILE;数据库完全恢复步骤(续) 将数据库启动到将数据库启动到MOUNT状态,状态, STARTUP MOUNT; 使用使用RECOVER命令进行恢复。命令如下:命令进行恢复。命令如下: RECOVER DATABASE; 将数据库修改为打开状态:将数据库修改为打开状态: ALTER DATABASE OPEN; RECOVER DATABASE; 恢复完成后,重新打开数据库
23、恢复完成后,重新打开数据库 ALTER DATABASE OPEN;不完全恢复 基于CANCEL的恢复 基于时间的恢复 基于SCN的恢复基于CANCEL的恢复 关闭数据库 SHUTDOWN IMMEDIATE; 把原来备份的文件拷贝到对应路径 加载数据库 STARTUP MOUNT; 对数据库进行恢复 RECOVER DATABASE UNTIL CANCEL ; 打开数据库 ALTER DATABASE OPEN RESETLOG;或 ALTER DATABASE OPEN NORESETLOG;基于时间的恢复基于时间的恢复n关闭数据库关闭数据库 SHUTDOWN IMMEDIATE;n把原
24、来备份的文件拷贝到对应路径把原来备份的文件拷贝到对应路径n加载数据库加载数据库 STARTUP MOUNT;n对数据库进行恢复对数据库进行恢复 RECOVER DATABASE UNTIL TIME 12月月-10-2003,19:23:39n打开数据库打开数据库 ALTER DATABASE OPEN RESETLOG;或或 ALTER DATABASE OPEN NORESETLOG;基于基于SCNSCN的恢复的恢复n关闭数据库关闭数据库 SHUTDOWN IMMEDIATE;n把原来备份的文件拷贝到对应路径把原来备份的文件拷贝到对应路径n加载数据库加载数据库 STARTUP MOUNT;
25、n对数据库进行恢复对数据库进行恢复 RECOVER DATABASE UNTIL CHANGE 87654;n打开数据库打开数据库 ALTER DATABASE OPEN RESETLOG; 或或 ALTER DATABASE OPEN NORESETLOG;逻辑备份与恢复 优点:优点: 能容易快速地进行一个或更多单个表或行恢复。 升级数据库时,更加方便。 跨平台移动数据库时,更加方面。 数据库可一直运行。 目的:目的: 挽救由用户或应用错误造成的损失(用户或应用偶尔删除一行和数据库表造成的数据丢失)注意事项:注意事项:1、逻辑备份不能代替冷备份或热备份。冷备份或热备份 是对物理数据库文件的冷
26、备份或热备份。逻辑备份是 对特定的逻辑对象的备份。2、冷备份或热备份用于数据库发生介质故障时的恢复。 逻辑备份用于用户或应用偶而删除一行和数据库表造成的数据丢失的恢复。3、不可能在导入中应用归档日志文件从而使它恢复到导出执行后的某一时间点。使用方法 命令行命令行EXP/IMP,指定需要的参数指定需要的参数 Enterprise Manager使用EXP/IMP命令导出和导入数据 EXP/IMP命令 交互式数据导出和导入 命令行模式的数据导出与导入 参数模式的数据导出与导入导出模式 表 导出表定义、数据、授权、索引、约束 用户 导出指定用户模式下的所有表定义、数据、授权、索引、约束 全数据库 导
27、出数据库中所有表定义、数据、授权、索引、约束EXPORT命令 语法: exp keyword=(value1,value2, valuen) 举例: exp scott/tiger TABLES=(emp,dept) rows=y file=exptable.dmp exp system/manager OWNER=scott file=d:exptable.dmp exp system/manager FULL=y inctype=cumulative file=d:exptable.dmpIMPORT命令 语法: imp keyword=(value1,value2, valuen) 举例
28、: imp scott/tiger TABLES=(emp,dept) rows=y file=exptable.dmp imp system/manager FROMUSER=scott file=d:exptable.dmp imp system/manager file=d:exptable.dmp导入过程1. 创建新的表和索引创建新的表和索引2. 数据导入,索引更新数据导入,索引更新3. 触发器导入,在新表上建立完整性约束触发器导入,在新表上建立完整性约束三、sql injection 安全问题SQL Injection 随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也
29、越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。 SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况。能不能根据具体情况进行分析,构造巧妙的SQL语句,从而成功获取想要的数据。 SQL注入技术的含
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年建筑施工联盟协议3篇
- 汽车租赁经营合同
- 农业科技电梯改造合同
- 2024年修订版个人购房融资协议3篇
- 2024年事业单位改革后聘用合同3篇
- 文化活动犬只管理准则
- 商业中心外墙体租赁合同
- 机场木门油漆施工协议
- 4S店选址汽车销售租赁合同
- 2024年度设备租赁合同条款解释3篇
- 储能运维安全注意事项
- 《汽车营销方案》课件
- 海鸥课件教学课件
- 河南省郑州市2023-2024学年高二上学期期末考试英语试题 附答案
- 人工智能语言与伦理学习通超星期末考试答案章节答案2024年
- 胡蜂蛰伤规范化诊治中国专家共识解读课件
- 电缆敷设专项施工方案
- 石油测井方案与应急处置预案
- 500地形图测绘技术设计方案
- GB/T 22838.6-2024卷烟和滤棒物理性能的测定第6部分:硬度
- 2023-2024年福建高中物理会考试卷(福建会考卷)
评论
0/150
提交评论