原文链接: http://www.dbaleet.org/buildin_security_features_of_exadata/     Oracle在这篇白皮书(ORACLE EXADATA DATABASE MACHINE SECURITY OVERVIEW)中对Exadata的安全特性做了一个总体性的概括。不过先等一等,不要急于打开。为什么?因为它基本上什么都没说!!!我来简单概括一下吧:文中一共介绍了“Exadata的几大安全特性”: 1. Exadata可以使用Advanced Security Option来对数据进行加密解密。使用ASE算法的时候可以利用Intel XEON 5600 CPU内建的硬件级的加密/解密技术大幅提升加/解密的速度; 2. Exadata可以使用Oracle Database Vault对数据库进行访问控制; 3. Exadata可以使用Oracle Audit Vault对数据库进行审计; 4. Exadata可以使用Oracle Database Firewall防范数据库的非法访问和注入攻击; 5. Oracle ERP/SAP已经对Advanced Security Option, Oracle Database Vault, Oracle Audit Vault, Oracle Database Firewall进行了认证。 拜托, 老兄,这个也能算作Exadata的安全特性?被你打败了。。。 Exadata除了可以支持标准Oracle Database 11gR2的一些安全组件和安全特性以外,还提供了三大安全模式。它们分别是:Open Security Mode(开放安全模式), ASM-Scoped Security Mode (ASM范畴安全模式)以及Database-Scoped Security Mode(数据库范畴安全模式)。这三大模式是针对ASM/database访问cell节点的griddisk是否进行限制以及如何限制进行划分的。     Open Security Mode 最简单的肯定是Open Security Mode, 从open这个词就可以看出其安全的级别是最低的,换而言之就是不对Cell节点的griddisk做任何的访问限制,任何数据库客户端都可以访问到griddisk。Oracle官方手册上是这样说的:“Open security mode is useful for test or development databases where there are no security requirements.” 显然这种模式是对没有特殊安全需求的系统适用,主要针对开发和测试系统。Exadata默认创建的griddisk就是处于这种安全模式下的。   ASM-Scoped Security Mode 而ASM-Scoped Security Mode则是在Open Security Mode上的加强,表示Cell上的griddisk仅允许特定的ASM客户端进行访问。 a. 在DB节点上: 关闭牵涉到griddisk变更受影响的所有数据库和ASM实例 b. 在Cell节点上: 1. 在CellCLI模式下,使用CREATE KEY命令创建一个密钥, 例如:
CellCLI> CREATE KEY
66e12adb996805358bf82258587f5050
2. 在CellCLI模式下,使用ASSIGN KEY命令将这个密钥分配给特定的ASM实例(准确的说是ASM unique name, 下文以默认的+ASM为例);
CellCLI> ASSIGN KEY FOR '+ASM'='66e12adb996805358bf82258587f5050'
其中 cluster_name可以使用以下任何语句都可以查询得到:
SQL> SHOW PARAMETER db_unique_name;
SQL> SELECT name, value FROM V$PARAMETER WHERE name = 'db_unique_name';
3. 在CellCLI模式下, 将availableTo属性赋予所有包含ASM实例名的griddisk; 如果是使用此安全策略创建新的griddisk:
CellCLI> CREATE GRIDDISK ALL PREFIX=report, size=75G, availableTo='+ASM'
如果是修改已有的griddisk的安全策略:
CellCLI> ALTER GRIDDISK report_CD_01_cell01, report_CD_02_cell01, report_CD_03_cell01, report_CD_04_cell01, report_CD_05_cell01, report_CD_06_cell01 availableTo='+ASM'
注: 以上仅仅是针对cell01这个节点的griddisk进行限制,如果需要对所有的cell节点的griddisk进行限制,最好使用dcli进行处理。 c. DB节点 1. 使用ASM owner(一般为grid)创建/etc/oracle/cell/network-config/cellkey.ora 文件,权限为600。
key=66e12adb996805358bf82258587f5050
asm=+asm
realm=my_realm
2. 重新启动这些ASM实例和数据库实例。 Database-Scoped Security Mode 而Database Security Mode则是在ASM-Scoped Security Mode的进一步细化,表示Cell上的griddisk仅允许特定的数据库客户端进行访问。   a. 在DB节点上: 关闭牵涉到griddisk变更受影响的所有数据库和ASM实例 b. 在Cell节点上: 1. 在CellCLI模式下,使用CREATE KEY命令创建一个密钥, 例如:
CellCLI> CREATE KEY
51a826646ebe1f29e33c6ed7c4965c9a

CellCLI> CREATE KEY
bd0843beeed5e18e6664576cf9805b69

CellCLI> CREATE KEY
6679ef9ec02fa664582c3464d4b0191f
  2. 在CellCLI模式下,使用ASSIGN KEY命令将这个密钥分配给特定的数据库实例(准确的说是database unique name)
CellCLI> ASSIGN KEY FOR
'ebs'='51a826646ebe1f29e33c6ed7c4965c9a',
'peoplesoft'='bd0843beeed5e18e6664576cf9805b69',
'siebel'='6679ef9ec02fa664582c3464d4b0191f'
  3. 在CellCLI模式下, 将availableTo属性赋予所有包含ASM实例名的griddisk; 如果是使用此安全策略创建新的griddisk:
CellCLI> CREATE GRIDDISK report_CD_00_cell01, report_CD_01_cell01 size=75G, -
availableTo='+asm,ebs'
CellCLI> CREATE GRIDDISK report_CD_02_cell01, report_CD_03_cell01 size=75G, -
availableTo='+asm,peoplesoft'
CellCLI> CREATE GRIDDISK report_CD_04_cell01, report_CD_05_cell01 size=75G, -
availableTo='+asm,siebel'
如果是修改已有的griddisk的安全策略:
CellCLI> ALTER GRIDDISK report_CD_01_cell01, report_CD_02_cell01 -
availableTo='+asm,ebs'
CellCLI> ALTER GRIDDISK report_CD_03_cell01, report_CD_04_cell01 -
availableTo='+asm,peoplesoft'
CellCLI> ALTER GRIDDISK report_CD_05_cell01, report_CD_06_cell01 -
availableTo='+asm,siebel'
c. DB节点 1. 在/ORACLE_HOME/admin/ebs/pfile/ 目录下创建cellkey.ora 文件,所有者为oracle:dba, 权限为600。
key=51a826646ebe1f29e33c6ed7c4965c9a
asm=+asm
realm=my_realm
按照同样的步骤完成其它数据库的cellkey.ora的创建。 2. 重新启动这些ASM实例和数据库实例。 以上是对Exadata内建安全特性中的三种安全模式以及实施方法进行介绍,鉴于目前使用非Open Security Mode的客户比较少,仅作研究Exadata安全特性之用。如果需要在生产环境上实施,请进行全方位的测试。 以上。  
© Steven Lee for Oracle Exadata & Best practices, 2013. |