审计安全性、构件更改和 LCM 事件

服务管理员可以启用安全审计以跟踪对 Essbase 服务器所做的更改。

Essbase 根据您在审计策略文件中指定的参数,收集有关对系统级别的安全性、构件、LCM 事件和执行的 MaxL 语句(包括导入)所做更改的信息。Essbase 将跟踪信息合并到审计日志文件中,或将其流式传输到外部数据库。每个事件的跟踪信息包括时间、客户端、用户、受影响的构件、持续时间、ID、应用程序和数据库名称、状态以及说明。

可使用 AUDITTRAIL SECURITY Essbase 配置设置启用对这些事件进行服务器级别的审计。

Essbase 服务器启用安全审计的工作流

此工作流介绍如何使用 AUDITTRAIL SECURITY 在 Essbase 服务器上启用安全审计。启用审计后,便可定义 EssbaseSecurityAuditLogPolicy。您可以让 Essbase 将审计记录写入 CSV 文件或将其流式传输到外部数据库。

在此工作流中,Oracle 数据库是外部数据库,但您也可以使用 SQL Server、MySQL 或 DB2。

要完成该工作流,您必须是系统管理员,并且您需要访问 Essbase 服务器计算机上的 <Essbase Config Path>。

此路径包含需要编辑的文件:
  • essbase.cfg 配置文件
  • 默认安全审计策略文件
  1. 通过向 Essbase 服务器计算机上的 essbase.cfg 添加以下配置,启用对服务器事件的审计:

    AUDITTRAIL SECURITY

    更新配置后,重新启动 Essbase

    请参阅 "Set Server-Level Configuration Properties" 和 "Start, Stop, and Check Servers"。

  2. 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 文件,请执行以下操作:
    1. 执行属于可审计事件的操作,例如创建应用程序。您可以选择在您策略的 <audit_events_to_capture> 部分中列出的任何操作。
    2. 通过 SSH 连接到 Essbase 服务器。
    3. 导航到 <DOMAIN_HOME>/servers/serverName/logs/essbase/。如果您不知道 <DOMAIN_HOME> 的位置,请参阅 "Environment Locations in the Essbase Platform"。
    4. 打开并查看文件 SecurityAuditLog_n.csv

      安全审计日志 CSV 文件示例:
      安全审计 csv 文件的图像。

  3. 如果您希望安全审计线索流式传输到外部数据库,请执行以下操作:

    1. 创建与外部源的连接。请参阅创建全局连接和数据源创建应用程序级别连接和数据源
    2. 编辑策略文件以将审计输出更改为 DATABASE。
    3. 在 <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>
  4. 测试审计详细信息流式传输到数据库。

    1. 执行属于可审计事件的操作,例如创建应用程序。您可以选择在您策略的 <audit_events_to_capture> 部分中列出的任何操作。

      Essbase 应在外部数据库方案中创建一个名为 ESSBASE_SECURITY_AUDIT_EVENT_LOG 的审计表。

    2. 登录外部 RDBMS 并运行查询以检查是否存在该表。例如,登录 SQL Developer 并运行
      select * from ESSBASE_SECURITY_AUDIT_EVENT_LOG
  5. 使用数据可视化工具查看并分析安全审计记录。您可以使用 Smart View、Oracle Data Desktop(通过 Oracle 技术网许可证获取)、开源或非 Oracle 数据库供应商提供的开源可视化工具。

关于审计策略文件

审计策略在 XML 文件中定义,您可以根据需要对其进行编辑。您可以在此文件中指定要跟踪的 Essbase 服务器事件,以及是否将数据写入安全审计日志或将其流式传输到外部数据库。如果要将数据写入审计日志,您可以指示最大文件大小和要保留的安全审计日志文件数。

当您在启用安全审计后重新启动 Essbase 时,Essbase 会创建 EssbaseSecurityAuditLogPolicy.xml。您随后可以根据需要编辑该文件以细化审计策略。该文件位于您在部署配置阶段指定的用于存储 Essbase 配置的路径(<Essbase Config Path>,这也是 essbase.cfg 所在位置)中。如果您不知道这在环境中的位置,请参阅 "Environment Locations in the Essbase Platform" 查看说明。

要编辑审计策略文件,请执行以下操作:
  1. 导航到 EssbaseSecurityAuditLogPolicy.xml。该文件所在的应用程序目录是在 Essbase 部署配置阶段指定的。

  2. 在文本编辑器中打开该文件。

  3. 编辑审计输出、日志记录详细信息和要跟踪的事件。

    1. (可选)添加 <audit_sink_type>DATABASE</audit_sink_type>(如果要将数据流式传输到外部数据库)。

    2. 如果在步骤 a 中指示了审计输出类型 DATABASE,则在下一行中添加包含您在为 Essbase 服务器启用安全审计的工作流中定义的数据库连接名称的 <db_connection_name>ConnectionName</db_connection_name>。

    3. 如果要将数据写入审计日志文件,可使用 <max-file-size>n</max-file-size> 更改最大文件大小(可选),其中 n = 字节数。默认值为 50000000 字节。

    4. 如果要将数据写入审计日志文件,则使用 <roll-nos>n</roll-nos> 指示要保存多少个安全审计日志 CSV 文件,其中 n = 文件数。

    5. 使用 <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 服务器启用安全审计的工作流

安全审计日志和审计表包含每个事件的以下信息(如果适用):
  • 时间 — 事件的发生时间
  • 客户端 — 客户端 IP 地址或主机名
  • 用户名 — 启动操作的用户
  • 会话 ID — Essbase 会话 ID
  • 事件类型 — 事件类型
  • 构件类型 — 事件中涉及的构件的类型
    构件类型示例:
    • 事件类型 ARTIFACT_UPLOADED 涉及的构件类型 partition_file
    • 事件类型 LCM_EXPORT_START 涉及的构件类型 Application
    • 事件类型 APPLICATION_ROLE_ASSIGN 涉及的构件类型 User
  • 构件名称 — 事件中涉及的构件的名称。例如文件名、用户名或应用程序名称
  • 其他信息 — 与事件关联的其他信息
  • 说明 — 事件说明

    “说明”字段内容已本地化。

  • ID — 描述事件的 128 位通用唯一标识符。

    示例:123e4567-e89b-12d3-a456-426614174000

  • 持续时间 — 事件的持续时间(毫秒)
  • 应用程序名称 — 应用程序的名称
  • 数据库名称 — 数据库的名称
  • 状态 — 成功或失败