Collection Contents 上一页 下一页 PDF

SQL Anywhere Studio 安全指南

审计

审计记录


本页介绍了如何以等效于 C2 安全认证配置的方式对 Adaptive Server Anywhere 进行操作。它不提供有关此主题的一般信息。

本节说明由引擎或服务器生成的不同审计记录、该记录中包含的信息以及生成该记录的时间。由 dblog、dbtran 和 dbwrite 三个数据库实用程序在 .alg 文件中生成的审计记录将在审计数据库实用程序部分说明。

类型 信息 用途
尝试操作 日期/时间、尝试的操作的 SQL 该记录显示正在尝试的操作。因为事务日志的工作方式要求,这样做很有必要。

事务日志包含 SQL 以便在有必要恢复时复制对数据库数据或模式进行的更改。审计记录成为该日志的一部分,以便在每次发生权限检查时都进行记录,从而使数据库上的活动可在以后重新创建。

然而,如果权限检查失败了,则尝试的操作并没有真正发生,因而不被记录。在这种情况下,事后就无从知道尝试过什么样的操作。当非 DBA 用户尝试执行需要 DBA 权限的操作时,这尤其重要。

因此,所有 DDL 语句(以及其它几个语句)都在被尝试之前记录下来。

操作成功/失败 日期/时间、成功或失败 此记录表示最近的操作尝试是否成功,包括设置公共选项的尝试或者为同一个连接 ID 进行 SETUSER 记录的尝试。
检查权限 日期/时间、权限的类型/权限、表名(如果适用)、列名(如果适用)、过程/函数名(如果适用) 该记录表示是否发生过某种类型的权限检查。表示所讨论的权限,它们可以是下列权限之一:

DBA/资源权限

对表的插入/更新/选择/删除/变更/资源权限

对表和列的更新/选择/资源权限

授予对表的插入/更新/选择/删除/变更/资源权限

授予对表和列的更新/选择/资源权限

对过程或函数的执行权限

授予对过程或函数的执行权限

检查用户 日期/时间、用户名 该记录表示发生过用户检查。这有助于确定对象的所有权,例如,用户 bob 拥有表 T。如果尝试对表 T 进行插入,则必须查看当前用户是否为用户 bob。记录的文字是 [正在检查用户是否是用户名]。
设置公共选项 日期/时间、选项的名称 该记录表示用户尝试设置由 PUBLIC 用户拥有的选项。只允许具有 DBA 权限的用户这样做,因此在该检查后面总是会进行 DBA 权限检查。[操作成功/失败] 记录表示成功与否。
已启用/已禁用审计 日期/时间 该记录表示审计公共选项已发生变化。该记录将总是跟在 [设置公共选项] 记录后面。无论审计是否打开,都将生成该记录。但是,如果用户在审计已经打开的情况下将审计变量设置为 ON,或者如果用户在审计已经关闭的情况下将该变量设置为 OFF,将不生成该记录。
尝试 SETUSER 日期/时间、用户名 该记录表示用户尝试过执行带有参数的 SETUSER 命令。只允许具有 DBA 权限的用户这样做,因此该记录后面总是带有 DBA 权限检查。[操作成功/失败] 记录表示成功与否。注意,由于任何用户都可以执行不带任何参数的 SETUSER 命令,因此对于该语句既不进行审计也不记录。
尝试连接 日期/时间、用户名(如果成功)、计算机地址(如果是同一台计算机,则为本地地址)、端口类型、成功与否 该记录表示发生过连接尝试。
触发器触发/结束 日期/时间、触发器的名称 该记录表示触发器已被触发或执行完毕。位于这两个记录之间的同一个连接的所有审计记录正在审计触发器的执行情况。注意,触发器使用表所有者而非调用者的权限来执行,这样在 [触发器触发] 和 [触发器结束] 记录之间审计的任何权限检查都针对表的所有者来完成。检查导致触发器触发的 SQL 语句将揭示表的所有者。查看同一个连接的紧挨在 [触发器触发] 记录前面的 SQL 语句。它将是针对表的插入、更新或删除操作。表名将采用 [所有者.表] 的格式。
字符串 日期/时间、字符串 可使用名为 sa_audit_string 的系统存储过程将这种类型的记录插入到审计追踪中。该过程只能由具有 DBA 权限的用户来执行。可以指定任何字符串(最多 128 个字符)。

表 6.2 – 审计记录的格式 – 固定
表 6.3 – 审计记录的格式 – 依类型而变

Collection Contents 上一页 下一页 PDF