审计安全性、构件更改和 LCM 事件
服务管理员可以启用安全审计以跟踪对 Essbase 服务器所做的更改。
Essbase 根据您在审计策略文件中指定的参数,收集有关对系统级别的安全性、构件、LCM 事件和执行的 MaxL 语句(包括导入)所做更改的信息。Essbase 将跟踪信息合并到审计日志文件中,或将其流式传输到外部数据库。每个事件的跟踪信息包括时间、客户端、用户、受影响的构件、持续时间、ID、应用程序和数据库名称、状态以及说明。
可使用 AUDITTRAIL SECURITY Essbase 配置设置启用对这些事件进行的服务器级别的审计。
- 为 Essbase 服务器启用安全审计的工作流
- 关于审计策略文件
- 安全审计事件
为 Essbase 服务器启用安全审计的工作流
此工作流介绍如何使用 AUDITTRAIL SECURITY 在 Essbase 服务器上启用安全审计。启用审计后,便可定义 EssbaseSecurityAuditLogPolicy。您可以让 Essbase 将审计记录写入 CSV 文件或将其流式传输到外部数据库。
在此工作流中,Oracle 数据库是外部数据库,但您也可以使用 SQL Server、MySQL 或 DB2。
要完成该工作流,您必须是系统管理员,并且您需要访问 Essbase Server 计算机上的 <Essbase Config Path>。
- essbase.cfg 配置文件
- 默认安全审计策略文件
-
通过向 Essbase 服务器计算机上的 essbase.cfg 添加以下配置,启用对服务器事件的审计:
审计追踪安全性
更新配置后,重新启动 Essbase。
请参阅 Set Server-Level Configuration Properties 和 Start,Stop,and Check Servers 。
-
Essbase 服务器上会创建默认的策略文件 (XML)。此文件 (
EssbaseSecurityAuditLogPolicy.xml) 位于您在部署配置阶段指定的用于存储 Essbase 配置的路径中(<Essbase Config Path>,这也是 essbase.cfg 所在位置)。创建的默认策略文件包含以下内容:<?xml version="1.0" encoding="UTF-8"?> <security-audit-policy> <audit_events_to_capture>LOGIN,LOGINAS,LOGIN_FAIL,LOGOUT,SERVICE_ROLE_ASSIGN,SERVICE_ROLE_REVOKE,APPLICATION_ROLE_ASSIGN,APPLICATION_ROLE_REVOKE,ARTIFACT_UPLOADED,ARTIFACT_MODIFIED,ARTIFACT_DELETED,ARTIFACT_CREATE,ARTIFACT_RENAMED,APPLICATION_DELETED,APPLICATION_CREATE,APPLICATION_RENAMED,DATABASE_DELETED,DATABASE_CREATE,DATABASE_RENAMED,LCM_EXPORT_START,LCM_EXPORT_END,LCM_IMPORT_START,LCM_IMPORT_END,LCM_IMPORT_FAIL,DATA_LOAD_MAXL,LOAD_DATA_JOB_START,LOAD_DATA_JOB_END,LOAD_DATA_JOB_FAILED,DELETE_SESSION,EXECUTE_MAXL,APPLICATION_SET_ACTIVE,APPLICATION_START,APPLICATION_STOP,DATABASE_START,DATABASE_STOP</audit_events_to_capture> <audit_sinks> <audit_sink> <audit_sink_type>CSV</audit_sink_type> <max-file-size>50000000</max-file-size> <roll-nos>100</roll-nos> </audit_sink> </audit_sinks> </security-audit-policy>CSV 是默认的审计输出类型。如果要使用默认的审计输出类型 (CSV),并且希望测试审计详细信息是否写入安全审计日志 CSV 文件,请执行以下操作:- 执行属于可审计事件的操作,例如创建应用程序。您可以选择在您策略的 <audit_events_to_capture> 部分中列出的任何操作。
- 通过 SSH 连接到 Essbase 服务器。
- 导航到
<DOMAIN_HOME>/servers/serverName/logs/essbase/。如果您不知道 <DOMAIN_HOME> 的位置,请参阅 Essbase 平台中的环境位置。 - 打开并查看文件
SecurityAuditLog_n.csv。安全审计日志 CSV 文件示例:

-
如果您希望安全审计线索流式传输到外部数据库,请执行以下操作:
- 创建与外部源的连接。请参阅创建全局连接和数据源或创建应用程序级连接和数据源。
- 编辑策略文件以将审计输出更改为 DATABASE。
- 在 <audit_sink> 参数中添加 <db_connection_name> 参数。<db_connection_name> 参数的值应为在上面的子步骤 a 中创建的连接的准确名称。
将安全审计线索流式传输到 Oracle 数据库的编辑后审计策略示例:<?xml version="1.0" encoding="UTF-8"?> <security-audit-policy> <audit_events_to_capture>LOGIN,LOGINAS,LOGIN_FAIL,LOGOUT,SERVICE_ROLE_ASSIGN,SERVICE_ROLE_REVOKE,APPLICATION_ROLE_ASSIGN,APPLICATION_ROLE_REVOKE,ARTIFACT_UPLOADED,ARTIFACT_MODIFIED,ARTIFACT_DELETED,ARTIFACT_CREATE,ARTIFACT_RENAMED,APPLICATION_DELETED,APPLICATION_CREATE,APPLICATION_RENAMED,DATABASE_DELETED,DATABASE_CREATE,DATABASE_RENAMED,LCM_EXPORT_START,LCM_EXPORT_END,LCM_IMPORT_START,LCM_IMPORT_END,LCM_IMPORT_FAIL,DATA_LOAD_MAXL,LOAD_DATA_JOB_START,LOAD_DATA_JOB_END,LOAD_DATA_JOB_FAILED,DELETE_SESSION,EXECUTE_MAXL,APPLICATION_SET_ACTIVE,APPLICATION_START,APPLICATION_STOP,DATABASE_START,DATABASE_STOP</audit_events_to_capture> <audit_sinks> <audit_sink> <audit_sink_type>DATABASE</audit_sink_type> <db_connection_name>OraclePDB</db_connection_name> </audit_sink> </audit_sinks> </security-audit-policy> -
测试审计详细信息流式传输到数据库。
- 执行属于可审计事件的操作,例如创建应用程序。您可以选择在您策略的 <audit_events_to_capture> 部分中列出的任何操作。
Essbase 应在外部数据库方案中创建一个名为 ESSBASE_SECURITY_AUDIT_EVENT_LOG 的审计表。
- 登录外部 RDBMS 并运行查询以检查是否存在该表。例如,登录 SQL Developer 并运行
select * from ESSBASE_SECURITY_AUDIT_EVENT_LOG
- 执行属于可审计事件的操作,例如创建应用程序。您可以选择在您策略的 <audit_events_to_capture> 部分中列出的任何操作。
-
使用数据可视化工具查看并分析安全审计记录。您可以使用 Smart View、Oracle Data Desktop(通过 Oracle 技术网许可证获取)、开源或非 Oracle 数据库供应商提供的开源可视化工具。
关于审计策略文件
审计策略在 XML 文件中定义,您可以根据需要对其进行编辑。您可以在此文件中指定要跟踪的 Essbase 服务器事件,以及是否将数据写入安全审计日志或将其流式传输到外部数据库。如果要将数据写入审计日志,您可以指示最大文件大小和要保留的安全审计日志文件数。
当您在启用安全审计后重新启动 Essbase 时, Essbase 会创建 EssbaseSecurityAuditLogPolicy.xml。您随后可以根据需要编辑该文件以细化审计策略。此文件位于您在部署配置阶段指定的用于存储 Essbase 配置的路径中(<Essbase Config Path>,这也是 essbase.cfg 所在位置)。如果您不知道环境中的位置,请参阅 Essbase 平台中的环境位置以获取说明。
-
导航到
EssbaseSecurityAuditLogPolicy.xml。该文件所在的应用程序目录是在 Essbase 部署配置阶段指定的。 -
在文本编辑器中打开该文件。
-
编辑审计输出、日志记录详细信息和要跟踪的事件。
-
(可选)添加
<audit_sink_type>DATABASE</audit_sink_type>(如果要将数据流式传输到外部数据库)。 -
如果在步骤 a 中指示了审计输入类型 DATABASE,则在下一行中添加包含数据库 <db_connection_name>ConnectionName</db_connection_name>,该名称包含在 Workflow to Enable Security Auditing for Essbase Server 中定义的数据库连接的名称。
-
如果要将数据写入审计日志文件,可使用
<max-file-size>n</max-file-size>更改最大的文件大小(可选),其中 n = 字节数。默认值为 50000000 字节。 -
如果要将数据写入审计日志文件,则使用
<roll-nos>n</roll-nos>指示要保存多少个安全审计日志 CSV 文件,其中 n = 文件数。 -
使用
<audit_events_to_capture>events_list</audit_events_to_capture>指示要捕获哪些审计事件。
-
对于您在审计策略文件中指示的事件,将在安全审计日志文件中进行跟踪,或流式传输到外部数据库。
您可以在审计策略文件中指示捕获以下事件:
| 事件 | 说明 |
|---|---|
| LOGIN | 用户 [x] 已成功登录 |
| LOGIN_AS | 用户 [x] 以 [y] 身份登录 |
| LOGOUT | 用户 [x] 已注销 |
| LOGIN_FAIL | 用户 [x] 登录失败 |
| SERVICE_ROLE_ASSIGN | 已将 Essbase 服务角色 [x] 分配给 [y] |
| SERVICE_ROLE_REVOKE | 已从 [y] 撤消 Essbase 服务角色 [x] |
| APPLICATION_ROLE_ASSIGN | 已在应用程序 [z] 上为用户/组 [x] 预配角色 [y] |
| APPLICATION_ROLE_REVOKE | 已在应用程序 [z] 上撤消用户/组 [x] 的角色 [y] |
| ARTIFACT_CREATE | 已创建类型为 [y] 的构件 [x] |
| ARTIFACT_UPLOADED | 针对应用程序 [a]、数据库 [b]、对象名称 [c]、对象类型 [d] 调用了构件上载请求 |
| ARTIFACT_MODIFIED | 已修改类型为 [y] 的构件 [x] |
| ARTIFACT_DELETED | 已删除类型为 [y] 的构件 [x] |
| ARTIFACT_RENAMED | 已将类型为 [y] 的构件 [x] 重命名为 [z] |
| APPLICATION_DELETED | 已删除应用程序 [x] |
| APPLICATION_CREATE | 已创建应用程序 [x] |
| APPLICATION_RENAMED | 应用程序 [x] 已重命名为 [y] |
| DATABASE_DELETED | 已删除应用程序 [y] 中的数据库 [x] |
| DATABASE_CREATE | 已在应用程序 [y] 中创建数据库 [x] |
| DATABASE_RENAMED | 应用程序 [z] 中的数据库 [x] 已重命名为 [y] |
| LCM_EXPORT_START | LCM 导出作业已开始,文件名为 [x] |
| LCM_EXPORT_END | LCM 导出作业已完成,文件名为 [x],作业状态为 [y] |
| LCM_IMPORT_START | 应用程序 [x] 的 LCM 导入已开始,文件名为 [y] |
| LCM_IMPORT_END | 应用程序 [x] 的 LCM 导入已完成,文件名为 [y] |
| LCM_IMPORT_FAIL | 应用程序 [x] 的 LCM 导入失败,文件名为 [y] |
| DATA_LOAD_MAXL | 用户 [z] 对应用程序 [x]、数据库 [y] 执行了 MaxL 导入数据语句 |
| EXECUTE_MAXL | 已从用户 [y] 执行 MaxL 语句 [x] |
| LOAD_DATA_JOB_START | 已使用数据文件 [x] 和规则文件 [y] 启动数据加载作业 |
| LOAD_DATA_JOB_END | 使用数据文件 [x] 和规则文件 [y] 执行的数据加载作业已完成,状态为 [z] |
| LOAD_DATA_JOB_FAILED | 由于 [x],数据加载作业失败 |
| DELETE_SESSION | 已删除会话 [x] |
安全审计事件
Essbase 安全审计事件会在安全审计日志文件中跟踪,或者流式传输到外部数据库,具体取决于您在审计政策文件中指示的审计接收器。
有关打开安全审计日志或外部数据库方案中的审计表的说明,请参见 Workflow to Enable Security Auditing for Essbase Server 。
- 时间 — 事件的发生时间
- 客户端 — 客户端 IP 地址或主机名
- 用户名 — 启动操作的用户
- 会话 ID — Essbase 会话 ID
- 事件类型 — 事件类型
- 构件类型 — 事件中涉及的构件的类型
构件类型示例:
- 事件类型 ARTIFACT_UPLOADED 涉及的构件类型 partition_file
- 事件类型 LCM_EXPORT_START 涉及的构件类型 Application
- 事件类型 APPLICATION_ROLE_ASSIGN 涉及的构件类型 User
- 构件名称 — 事件中涉及的构件的名称。例如文件名、用户名或应用程序名称
- 其他信息 — 与事件关联的其他信息
- 说明 — 事件说明
“说明”字段内容已本地化。
- ID — 描述事件的 128 位通用唯一标识符。
示例:123e4567-e89b-12d3-a456-426614174000
- 持续时间 — 事件的持续时间(毫秒)
- 应用程序名称 — 应用程序的名称
- 数据库名称 — 数据库的名称
- 状态 — 成功或失败