《Oracle Database 10g安全性高效设计》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)David Knox著;刘桂清等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2006
  • ISBN:7302120978
  • 页数:453 页
图书介绍:本书全面地介绍了如何利用Oracle最常用的产品功能来高效地设计开发并部署安全的数据库应用程序。

第Ⅰ部分 快速入门 3

第1章 良好的安全习惯 3

1.1 安全策略 4

1.1.1 基于不同需求的不同安全策略 4

1.1.2 理解安全需求 5

1.1.3 制定安全策略 6

1.1.4 安全策略的可操作性 6

1.2 安全信条 7

1.2.1 安全设计 8

1.2.2 深度防御 8

1.2.3 最少权限 9

1.3 风险分析 9

1.3.1 记录风险分析结果 10

1.3.2 处理正常情况和异常情况 11

1.3.3 对偶然事件作出应对计划 11

1.4 快照和对环境的了解 12

1.5 加固基础结构 13

1.5.1 操作系统 14

1.5.2 网络 15

1.5.3 应用服务器 17

1.6 小结 17

第2章 保护数据库的安全 19

2.1 保护默认的用户账号 19

2.1.1 对数据库的访问和登录进行保护 20

2.1.2 示例说明 21

2.1.3 抛弃任何陈旧的东西 26

2.2 Oracle密码 26

2.2.1 使用Oracle本地存储的密码验证密码 27

2.2.2 检测弱密码或默认密码 29

2.2.3 不可能的密码 32

2.2.4 管理并确保安全密码 33

2.3 限制数据库资源 37

2.4 默认角色 38

2.4.1 CONNECT 39

2.4.2 RESOURCE 39

2.4.3 DBA 40

2.5 公共权限 41

2.5.1 何时给PUBLIC组授予权限 41

2.5.2 Oracle支持的对象 42

2.6 确保网络的安全 45

2.6.1 加密 45

2.6.2 数据库监听器 46

2.6.3 外部调用 46

2.6.4 IP地址验证 47

2.7 小结 47

第Ⅱ部分 身份识别和身份验证 51

第3章 理解身份识别和认证 51

3.1 身份识别和认证的重要性 51

3.2 身份识别的方法 52

3.2.1 用户提供的识别信息 52

3.2.2 技术识别 53

3.3 身份识别面临的风险 54

3.3.1 欺骗 54

3.3.2 识别信息的窃取 55

3.4 认证 56

3.4.1 认证方法 56

3.4.2 安全认证的良好习惯 57

3.5 单点登录 58

3.5.1 为什么需要单点登录 58

3.5.2 单点登录所面临的挑战 59

3.6 数据库的I&A 59

3.6.1 关联用户与数据库模式 60

3.6.2 用户与数据的分离 61

3.6.3 身份识别信息的保护 62

3.6.4 使用合适的I&A 62

3.7 小结 63

第4章 连接池与代理身份验证 65

4.1 身份验证策略简史 66

4.1.1 基于主机的身份识别和身份验证 66

4.1.2 客户端-服务端的身份识别和身份验证 68

4.2 Web应用 69

4.2.1 无状态环境 70

4.2.2 Web数据库 70

4.3 连接池 73

4.3.1 Oracle隐式连接缓存 74

4.3.2 安全风险 77

4.4 会话池和Oracle OCI连接池 78

4.4.1 OCI连接池示例 79

4.4.2 密码管理风险 82

4.5 代理身份验证 82

4.5.1 代理身份验证的示例 82

4.5.2 代理身份验证的数据库设置 85

4.5.3 代理身份验证模式 90

4.5.4 强制代理身份验证 91

4.6 小结 91

第5章 用户身份管理与企业用户 93

5.1 用户身份管理 94

5.1.1 目录服务 94

5.1.2 IM的组成 95

5.1.3 Oracle Internet Directory 95

5.2 企业用户 96

5.3 配置EUS 96

5.3.1 LDAP的配置 96

5.3.2 数据库配置 97

5.4 应用EUS 100

5.4.1 创建企业用户 100

5.4.2 连接过程 101

5.5 用户-模式映射 103

5.5.1 创建共享模式 103

5.5.2 目录映射 104

5.5.3 映射排列示例 104

5.5.4 专有模式 108

5.6 需要考虑的因素 110

5.6.1 单一凭证和性能 111

5.6.2 依赖关系 111

5.7 小结 111

第6章 Web应用的身份识别和身份验证 113

6.1 身份识别和身份验证的应用过程 114

6.2 集成身份验证 114

6.2.1 创建应用程序用户 114

6.2.2 连接应用程序用户与数据库 116

6.2.3 获取用户身份识别信息 117

6.2.4 数据库账号的设置 119

6.2.5 用户的数据库账号 119

6.2.6 身份验证的蓝图 120

6.2.7 性能 121

6.3 替代代理身份验证的方案 123

6.3.1 应用程序控制的安全 123

6.3.2 使用匿名连接池机制确保数据库的安全 132

6.4 身份识别信息 136

6.5 小结 137

第Ⅲ部分 授权与审核 141

第7章 权限和角色 141

7.1 访问控制、授权和权限 141

7.1.1 访问控制 142

7.1.2 实施访问控制 142

7.1.3 授权 142

7.2 权限 142

7.2.1 系统权限 143

7.2.2 对象权限 146

7.2.3 同义词 149

7.2.4 系统权限和对象权限的组合 150

7.2.5 权限的持久性 151

7.3 角色 155

7.3.1 角色层次 156

7.3.2 设计定义权和调用权 159

7.3.3 有选择性地启用权限 161

7.3.4 有选择性地启用权限的用例 164

7.4 基于密码保护的角色 166

7.4.1 基于密码保护的角色的示例 166

7.4.2 基于密码保护的角色与代理身份验证 167

7.4.3 确保密码安全的挑战 168

7.5 安全应用角色 169

7.6 全局角色和企业角色 174

7.6.1 创建与授予全局角色和企业角色 174

7.6.2 组合标准角色和全局(企业)角色 176

7.7 理智地使用角色 177

7.7.1 太多的角色 177

7.7.2 命名 177

7.7.3 依赖关系 178

7.8 示例——组合各种技术 179

7.8.1 应用程序的身份验证 179

7.8.2 验证用户 180

7.8.3 设置安全应用角色 182

7.8.4 确保源代码的安全 182

7.9 小结 184

第8章 为确保责任而有效地审核 185

8.1 安全周期 186

8.1.1 为了责任而审核 186

8.1.2 审核提供了反馈途径 187

8.1.3 审核并不是多余的 187

8.2 审核的方法 188

8.2.1 应用服务器的日志 188

8.2.2 应用程序的审核 188

8.2.3 应用程序审核的示例 189

8.2.4 触发器审核 194

8.2.5 触发器审核的示例 194

8.2.6 自治事务与审核 197

8.3 数据版本 199

8.3.1 回退版本查询 200

8.3.2 回退事务查询 201

8.4 标准数据库审核 203

8.4.1 强制审核 203

8.4.2 审核SYS 203

8.4.3 使用标准审核 204

8.4.4 审核用户、权限和对象 205

8.4.5 审核的良好习惯 205

8.4.6 判断审核状态 209

8.4.7 利用客户身份识别扩展审核数据 210

8.4.8 性能测试 214

8.4.9 警告 215

8.5 细粒度审核 215

8.5.1 审核条件 215

8.5.2 列敏感 218

8.5.3 捕获SQL 221

8.5.4 作为响应的审核 221

8.5.5 警告 224

8.6 小结 225

第Ⅳ部分 细粒度访问控制 229

第9章 面向安全和性能的应用上下文 229

9.1 应用上下文 230

9.2 默认的USERENV上下文 230

9.3 本地上下文 232

9.3.1 创建应用上下文 233

9.3.2 设置上下文属性和相应的值 233

9.3.3 在安全中使用应用上下文 236

9.3.4 安全地使用本地上下文 239

9.3.5 常见的错误 239

9.4 全局上下文 241

9.4.1 使用全局上下文 241

9.4.2 示例 242

9.5 外部和全局初始化 253

9.6 小结 255

第10章 利用视图实现细粒度的访问控制 257

10.1 细粒度访问的介绍 258

10.1.1 对象访问 258

10.1.2 细粒度访问 258

10.2 安全视图 259

10.2.1 基于列级安全保护的视图 260

10.2.2 基于行级安全保护的视图 267

10.2.3 视图存在的问题 270

10.3 小结 270

第11章 使用虚拟私有数据库确保行级安全 273

11.1 虚拟私有数据库的需求 274

11.2 快速了解行级安全 274

11.3 深入理解RLS 276

11.3.1 RLS的优势 277

11.3.2 RLS的设置 278

11.3.3 RLS的安全层 284

11.3.4 针对RLS策略的免除访问功能 286

11.3.5 调试RLS策略 289

11.3.6 分区细粒度访问控制 298

11.4 列敏感的VPD 298

11.5 VPD的性能 300

11.5.1 变量绑定 300

11.5.2 代码位置 301

11.5.3 策略缓存 301

11.5.4 使用缓存的注意点 310

11.5.5 VPD的性能与使用视图的RLS之间的比较 311

11.6 小结 312

第12章 Oracle标签安全 313

12.1 数据分类 313

12.2 OLS简史 314

12.2.1 标签与强制访问控制 315

12.2.2 可信任的Oracle 316

12.3 Oracle标签安全 317

12.3.1 OLS是如何发挥作用的 317

12.3.2 安装OLS 317

12.3.3 实施标签安全 318

12.4 标签示例 318

12.5 标签组件 321

12.5.1 级别 321

12.5.2 创建标签 323

12.5.3 应用OLS策略 325

12.5.4 授权访问 326

12.5.5 测试标签 327

12.5.6 OLS专用权限 328

12.5.7 区间 330

12.5.8 在受OLS保护的表中添加数据 334

12.5.9 组 337

12.5.10 使用默认的会话标签 342

12.5.11 比较标签 345

12.6 隐藏标签 346

12.7 对受OLS保护的表的写操作 349

12.7.1 理解写许可 350

12.7.2 组和区间之间的依赖关系 353

12.8 细节与诀窍 357

12.8.1 限制对标签的更新 357

12.8.2 可信任的过程 358

12.8.3 标签函数 360

12.8.4 在OID中存储标签 363

12.8.5 与连接池和共享模式一起使用标签 363

12.9 使用OLS需要考虑的因素 364

12.10 VPD与标签安全的比较 365

12.10.1 OLS的优势 365

12.10.2 VPD的优势 365

12.10.3 VPD与OLS 366

12.11 小结 368

第13章 数据库加密 369

13.1 加密简史 370

13.1.1 加密基础 370

13.1.2 加密选择 370

13.2 何时对数据库加密 373

13.2.1 不加密的理由 373

13.2.2 加密的理由 374

13.3 DBMS_CRYPTO 375

13.3.1 加密规则 376

13.3.2 DBMS_CRYPTO的简单示例 376

13.3.3 DATA_CRYPTO包 377

13.4 加密示例 381

13.4.1 加密字符、数字和日期 382

13.4.2 加密CLOB和BLOB 385

13.5 深度加密 388

13.5.1 密钥、数据和IV 388

13.5.2 存储加密数据 392

13.5.3 加密数据的大小 395

13.6 哈希 398

13.6.1 DBMS_CRYPTO哈希 398

13.6.2 消息身份验证代码 401

13.7 性能 403

13.8 密钥管理 406

13.8.1 密钥管理方案 407

13.8.2 最佳的密钥管理策略 414

13.9 小结 415

第Ⅴ部分 附录 419

附录A 设置安全管理员 419

附录B DATA_CRYPTO包 423

附录C DBMS_CRYPTO性能测试结果 445