第一部分 基础知识 1
第1章 安全构架 1
1.1 安全的发展 1
1.2 了解面临的威胁 4
1.2.1 来自内部的威胁 5
1.2.2 外部威胁 7
1.2.3 安全漏洞来自何方 9
1.3 确定谁可以做什么 11
1.3.1 验证 11
1.3.3 系统完整性 17
1.3.2 授权 17
1.3.4 不同授权模型概览 18
第2章 Oracle 安全实现 22
2.1 Oracle 安全背景知识 23
2.1.1 关于备份 24
2.1.2 向更强壮的安全性发展 26
2.1.3 Oracle 6以及新的安全措施 29
2.1.4 Oracle 7新特性 31
2.1.5 Oracle 8简介 36
2.2 Oracle8i 和因特网 39
第3章 安全规划 47
3.1 定义安全规划 47
3.1.1 安全权衡 48
3.1.2 安全规划的角色 49
3.1.3 全局和局部策略 50
3.1.4 分配责任 52
3.1.5 过程 53
3.2 估量风险 61
3.2.1 易受攻击的程度 61
3.2.2 价值评估 62
3.2.3 备用解决方案 64
3.3 数据库生命周期 64
3.3.1 旧系统 64
3.3.2 新系统 65
3.3.3 评估数据库软件包 66
第二部分 操作系统的安全 69
第4章 UNIX 操作系统上的数据库安全 69
4.1 为什么我们需要操作系统 69
4.2 确保 UNIX 的安全 72
4.2.1 UNIX 基本安全特性 72
4.2.2 锁定操作系统 79
4.3 保证 UNIX 上 Oracle 的安全 81
4.3.1 Oracle 数据库如何运行 82
4.3.2 在 UNIX 上安装 Oracle 82
4.3.3 使用安全临时目录 89
4.3.4 原始设备的安全 89
4.3.5 SUID 位启用的 Oracle 文件 90
4.3.6 OSDBA、OSOPER 和 Internal 92
4.3.7 关于使用 SQL*Plus 的一个警告 94
4.3.8 将审计日志写到操作系统中 94
第5章 Oracle 和 Windows NT/2000的安全 96
5.1 Windows NT/2000基础知识 96
5.2 Windows NT 上 Oracle 概述 109
5.2.1 Windows NT 是如何工作的 109
5.2.2 进程和线程 111
5.2.3 查看 Oracle 线程 113
5.2.4 Oracle 和 Windows 注册表 115
5.3 在 Windows NT/2000系统上保护 Oracle 118
第6章 操作系统验证 120
6.1 配置验证 120
6.1.1 设置参数 121
6.1.2 TNS 协议 122
6.2 Windows 验证 125
6.2.1 在网络上发送证书 126
6.2.2 创建 Windows 数据库用户 127
6.2.3 创建 Windows 用户 129
6.2.4 Windows 操作系统角色 134
6.3 UNIX 操作系统验证 137
第7章 密码和用户 141
第三部分 保护 Oracle 数据库 141
7.1 Oracle 密码管理特性 142
7.2 默认 Oracle 用户 148
7.3 外部和远程用户验证 157
第8章 特权、授权、角色和视图 162
8.1 关于对象和特权 162
8.2 关于用户 163
8.2.1 控制用户访问 164
8.2.2 关于授予特权 169
8.2.3 如何使用角色 171
8.2.4 Oracle 提供的角色 173
8.2.5 关于用户默认角色 176
8.3 使用视图 178
8.4 关于触发器 180
第9章 Oracle 和数据库链 182
9.1 基本数据库链架构 183
9.2 创建数据库链 185
9.3 数据库链的安全问题 190
9.4 关于共享数据库链 193
9.5 更多关于全局数据库链的信息 194
9.6 审计数据库链 198
第10章 安全和开发工具 199
10.1 应用程序安全性 199
10.1.1 数据库用户和应用程序用户 199
10.1.2 将应用程序安全建立进数据库 200
10.1.3 应用程序设计惯例 202
10.1.4 Oracle 调用接口 205
10.1.5 监视数据库活动的审计 210
10.2 虚拟专用数据库 212
10.2.1 细粒度访问控制 212
10.2.2 应用程序上下文 214
10.3 调用者权限和定义者权限 216
10.3.1 定义者权限 216
10.3.2 调用者权限 217
10.4 PL/SQL 包 218
10.4.1 DBMS_OBFUSCATION_TOOLKIT 218
10.4.2 UTL_FILE 包 219
第四部分 保护网络通信 221
第11章 网络完整性、验证和加密 221
11.1 Oracle 高级安全选项介绍 221
11.1.1 侦听和欺骗 221
11.1.2 劫持连接 224
11.1.3 保护网络上数据 224
11.2 OAS 固有特性 229
11.2.1 配置验证 230
11.2.2 配置完整性 231
11.2.3 配置加密 232
11.3.1 配置 SSL 233
11.3 安全套接字层协议 233
11.3.2 调试 SSL 连接 239
11.3.3 企业用户安全 240
11.4 推荐的协议 241
第12章 Oracle 安全选项 242
12.1 虚拟专用数据库 243
12.2 简要介绍 Oracle Label Security 250
12.3 Oracle 因特网目录 252
12.3.1 关于 LDAP 架构 253
12.3.2 Oracle 因特网目录的实现 256
13.1 防火墙工作机理 261
第13章 防火墙和 Oracle 261
13.1.1 防火墙方式 262
13.1.2 防火墙不能做什么 265
13.1.3 防火墙的类型 265
13.2 通过防火墙使用 Oracle 266
13.2.1 问题 267
13.2.2 决定连接问题的罪魁祸首是否是防火墙 268
13.2.3 防火墙代理 269
13.2.4 监听器服务 270
13.2.5 连接管理器 271
13.2.6 防止端口重定向 273
14.1 关于 Web 服务器 275
第14章 Apache HTTP 服务器的安全性 275
14.2 Oracle 的 Apache 实现 279
14.2.1 Apache 的安装和配置 280
14.2.2 Oracle 的 HTTP 配置文件 290
14.2.3 Apache 的安全问题 290
第15章 Oracle Portal 安全管理 292
15.1 Oracle Portal 概述 292
15.2 Portal 验证管理 296
15.3 用户管理 297
15.3.1 增加用户 297
15.3.2 编辑用户 302
15.3.3 自助式用户维护 307
15.4 配置登录服务器 308
15.4.1 密码策略管理 308
15.4.2 验证用户 312
15.5 对象访问管理 316
15.5.1 创建用户组 316
15.5.2 授予用户和用户组访问权限 319
15.5.3 授予对页面和应用程序的公共访问权限 323
第五部分 黑客和问题解决 325
第16章 实施审计 325
16.1 关于审计 325
16.1.1 要回答的审计问题 326
16.1.2 自定义数据库审计 335
16.2 表的审计方法 336
第17章 使数据库免于黑客攻击 347
17.1 攻击者 348
17.1.1 怀恨在心的雇员 348
17.1.2 职业黑客 353
17.1.3 破坏者 355
17.1.4 已授权用户获得多余的特权 356
17.2 攻击的种类 356
17.2.1 缓冲区溢出 357
17.2.2 SQL Injection 攻击 358
17.2.3 报告弱点 360
17.2.4 独立安全评估 361
17.3 保护数据库的工具 362
17.3.1 安全评定 362
17.3.2 入侵检测 362
17.3.3 加密 363
17.3.4 选择产品策略 364
附录 365
附录 A 词汇表 365
附录 B 安全风险评估检查表 370
附录 C 保护系统安全的步骤 377
附录 D 系统特权和审计选项 382
附录 E Oracle9i 安全特性 387