Oracle aud$ 数据是 Oracle 数据库中用于跟踪和记录数据库操作的一种日志,它包含有关数据库中发生的所有数据库级别 DDL 和 DML 操作以及任何成功或失败的登陆尝试的信息。
Oracle aud$ 数据非常重要,因为它可以用于监测数据库的安全性。例如,如果您的数据库不允许所有用户执行 CREATE TABLE 语句,但您注意到 aud$ 表中有许多 CREATE TABLE 操作,则很有可能是某个用户在做恶意行为。通过查看 aud$ 表,您可以查看这些操作以便进行调查。
下面是一些 aud$ 表中的重要列:
SESSIONID :会话ID,旨在在多个会话之间唯一标识一个登录; USERID :已登录用户的ID,未登录的操作记录为null; TIMESTAMP :表示用户操作发生的精确时间; ACTION_NAME :记录的操作名称,包括 CREATE、SELECT、UPDATE、 DELETE 等; OBJ$NAME :操作涉及的表或视图的名称; RETURNCODE :用于记录操作是否成功,0表示成功,其他数值表示失败;
除了 aud$ 表以外,Oracle 还提供了另一个与审计相关的表称为 FGA_LOG$,是Oracle数据库企业级审计功能的一部分。FGA (Fine Grained Auditing) 允许您对敏感数据进行细粒度审计,无需将审计级别设置到数据库级别。例如,您可以对某个表的某个指定的敏感列(例如银行帐户号码)进行审计,而不需要审计整个表。
类似于 aud$ 表,FGA_LOG$ 表中包含有关数据库中敏感数据访问的详细信息,具有会话 ID、用户 ID、时间戳和其他列。FGA 配置由 DBA 负责,它们可以通过以下语句设置:
DBMS_FGA.ADD_POLICY( object_schema => 'dbname', object_name => 'tablename', policy_name => 'policyname', audit_condition => 'audit_column_name = x', audit_column => 'audit_column_name', handler_schema => 'dbname', handler_module => 'audit_pkg.audit_function', statement_types => 'SELECT, UPDATE', audit_trail => DBMS_FGA.AUDIT_TRAIL_DB );
以上命令将在名为 FGA_LOG$ 的表中创建用于审计政策的新条目。
总的来说,Oracle aud$ 表是 Oracle 数据库中非常重要的一个表,它可以用于监测数据库安全性,并探寻恶意用户的行为。而 FGA 配置则可以用于监控对敏感数据的访问,享有更高的审计级别。熟练使用 aud$ 和 FGA 将有助于 DBA 更好地保护数据库的安全性。