如何做视频网站首页,深圳宝安沙井网站建设,长沙制作公园仿竹围栏报价,用ps怎么做网站导航条文章目录 1 审计文件#xff08;audit files#xff09;1.1 定义1.2 查看审计信息1.3 审计相关参数1.4 审计的类型1.4.1 语句审计1.4.2 权限审计1.4.3 对象审计1.4.4 细粒度的审计 1.5 与审计相关的数据字典视图 1 审计文件#xff08;audit files#xff09;
1.1 定义
审… 文章目录 1 审计文件audit files1.1 定义1.2 查看审计信息1.3 审计相关参数1.4 审计的类型1.4.1 语句审计1.4.2 权限审计1.4.3 对象审计1.4.4 细粒度的审计 1.5 与审计相关的数据字典视图 1 审计文件audit files
1.1 定义
审计Audit用于监视用户对数据库的操作审计记录保存在数据字典表中存储在 system 表空间中的 SYS.AUD$ 表中可通过视图 dba_audit_trail 查看或审计文件中默认位置为 ORACLEBASE/admin/ORACLE_BASE/admin/ORACLEBASE/admin/ORACLE_SID/adump/)。
审计是对特定的用户动作的监控和记录通常用于
审查可疑的活动监视和收集关于指定数据库活动的数据
不管是否打开数据库的审计功能以下这些操作会强制被记录用管理员权限连接 Instance、启动数据库、关闭数据库。 审计文件的位置由参数 audit_file_dest 决定
1.2 查看审计信息
SQL show parameter audit_file_dest NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string /u01/app/oracle/admin/orcl/adump查看审计文件
[oraclerac1 adump]$ cd /u01/app/oracle/admin/orcl/adump1.3 审计相关参数
和审计有关的参数主要有以下几个
show parameter auditNAME TYPE VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest string /u01/app/oracle/admin/orcl/adump
audit_sys_operations boolean FALSE
audit_syslog_level string
audit_trail string DBaudit_file_dest 如果AUDIT_TRAIL OS则审计记录的文件存放在 audit_file_dest 参数指定的目录中。如果指定的路径不存在会造成数据库无法启动Audit_trail 该参数用于关闭或开启审计功能取值如下 None不做审计。DB启用数据库审计将审计记录保存在数据库的 sys.AUD$ 的表中。OS启用数据库审计将审计记录保存在操作系统文件中文件位置由 audit_file_dest 参数指定。 Audit_sys_operations 指定是否启用对 SYS 用户的审计默认为 false。当设置为 true 时所有 sys 用户包括以 sysdba、sysoper 身份登录的用户的操作都会被记录。这些审计记录不会保存在 aud$ 表中而是被保存到操作系统文件中。当设置为 false 时只记录 sys 用户的连接、数据库的启动和停止。
1.4 审计的类型
1.4.1 语句审计
对某种类型的SQL语句审计不指定结构或对象如audittable会审计数据库中所有的create table、drop table、truncate table语句alter session by scott会审计scott用户所有的数据库连接
打开关闭audit 命令的格式如下所示
AUDIT sql_statement_clause
BY {SESSION | ACCESS} WHENEVER [NOT] SUCCESSFUL; 下表是可以审计的语句类型
语句选项SQL操作ALTER SYSTEM所有ALTER SYSTEM选项例如动态改变实例参数切换到下一个日志文件组以及终止用户会话CLUSTERCREATE、ALTER、DROP或TRUNCATE集群CONTEXTCREATE CONTEXT或DROP CONTEXTDATABASE LINKCREATE或DROP数据库链接DIMENSIONCREATE、ALTER或DROP维数DIRECTORYCREATE或DROP目录INDEXCREATE、ALTER或DROP索引MATERIALIZED VIEWCREATE、ALTER或DROP物化视图NOT EXISTS由于不存在的引用对象而造成的 SQL 语句的失败PROCEDURECREATE或DROP FUNCTION、LIBRARY、PACKAGE、PACKAGE BODY或PROCEDUREPROFILECREATE、ALTER或DROP配置文件PUBLIC DATABASE LINKCREATE或DROP公有数据库链接PUBLIC SYNONYMCREATE或DROP公有同义词ROLECREATE、ALTER、DROP或SET角色ROLLBACK SEGMENTCREATE、ALTER或DROP回滚段SEQUENCECREATE或DROP序列SESSION登录和退出SYNONYMCREATE或DROP同义词SYSTEM AUDIT系统权限的AUDIT或NOAUDITSYSTEM GRANTGRANT或REVOKE系统权限和角色TABLECREATE、DROP或TRUNCATE表TABLESPACECREATE、ALTER或DROP表空间TRIGGERCREATE、ALTER(启用/禁用)、DROP触发器具有ENABLE ALL TRIGGERS或DISABLE ALL TRIGGERS的ALTER TABLETYPECREATE、ALTER和DROP类型以及类型主体USERCREATE、ALTER或DROP用户VIEWCREATE或DROP视图ALTER SEQUENCE任何ALTER SEQUENCE命令ALTER TABLE任何ALTER TABLE命令COMMENT TABLE添加注释到表、视图、物化视图或它们中的任何列DELETE TABLE删除表或视图中的行EXECUTE PROCEDURE执行程序包中的过程、函数或任何变量或游标GRANT DIRECTORYGRANT或REVOKE DIRECTORY对象上的权限GRANT PROCEDUREGRANT或REVOKE过程、函数或程序包上的权限GRANT SEQUENCEGRANT或REVOKE序列上的权限GRANT TABLEGRANT或REVOKE表、视图或物化视图上的权限GRANT TYPEGRANT或REVOKE TYPE上的权限INSERT TABLEINSERT INTO表或视图LOCK TABLE表或视图上的LOCK TABLE命令SELECT SEQUENCE引用序列的CURRVAL或NEXTVAL的任何命令SELECT TABLESELECT FROM 表、视图或物化视图UPDATE TABLE在表或视图上执行UPDATE
注意 从Oracle Database 11g开始只有在初始参数AUDIT_TRAIL被设置为DB_EXTENDED时才填充DBA_AUDIT_TRAIL中的列SQL_TEXT和SQL_BIND。默认情况下AUDIT_TRAIL的值是DB。 为了关闭HR.JOBS表上KSHELTON的审计可以使用noaudit命令如下所示
SQL noaudit index by kshelton; Noaudit succeeded.也可能希望按常规方式审计成功的和不成功的登录这需要两个audit命令
SQL audit session whenever successful; Audit succeeded.
SQL audit session whenever not successful; Audit succeeded. 1.4.2 权限审计
当用户使用了该权限则被审计如CREATE TABLE或ALTER INDEX和语句审计一样权限审计可以指定一个或多个特定的用户作为审计的目标
打开关闭权限审计系统权限具有与语句审计相同的基本语法但审计系统权限是在sql_statement_clause中而不是在语句中指定系统权限。 例如可能希望将ALTER TABLESPACE权限授予所有的DBA但希望在发生这种情况时生成审计记录。启用对这种权限的审计的命令看起来类似于语句审计
SQL audit alter tablespace by access whenever successful;
Audit succeeded.每次成功使用 ALTER TABLESPACE权限时都会将一行内容添加到SYS.AUD$。
使用SYSDBA和SYSOPER权限或者以SYS用户连接到数据库的系统管理员可以利用特殊的审计。为了启用这种额外的审计级别可以设置初始参数AUDIT_SYS_OPERATIONS为TRUE。这种审计记录发送到与操作系统审计记录相同的位置。因此这个位置是和操作系统相关的。当使用其中一种权限时执行的所有SQL语句以及作为用户SYS执行的任何SQL语句都会发送到操作系统审计位置。
1.4.3 对象审计
审计特定模式对象上运行的特定语句如EMP表上的UPDATE语句模式对象审计应用于数据库中的所有用户
打开关闭操作 对象审计的访问看起来类似于语句审计和权限审计
AUDIT schema_object_clause BY {SESSION | ACCESS} WHENEVER [NOT] SUCCESSFUL; schema_object_clause 指定对象访问的类型以及访问的对象。可以审计特定对象上14种不同的操作类型下表中列出了这些操作。
对象选项说明ALTER改变表、序列或物化视图AUDIT审计任何对象上的命令COMMENT添加注释到表、视图或物化视图DELETE从表、视图或物化视图中删除行EXECUTE执行过程、函数或程序包FLASHBACK执行表或视图上的闪回操作GRANT授予任何类型对象上的权限INDEX创建表或物化视图上的索引INSERT将行插入表、视图或物化视图中LOCK锁定表、视图或物化视图READ对DIRECTORY对象的内容执行读操作RENAME重命名表、视图或过程SELECT从表、视图、序列或物化视图中选择行UPDATE更新表、视图或物化视图
1.4.4 细粒度的审计
根据访问对象的内容来审计表访问和权限使用程序包DBMS_FGA来建立特定表上的策略
从Oracle9i开始通过引入细粒度的对象审计或称为FGA审计变得更为关注某个方面并且更为精确。由称为DBMS_FGA的PL/SQL程序包实现FGA。
使用标准的审计可以轻松发现访问了哪些对象以及由谁访问但无法知道访问了哪些行或列。细粒度的审计可解决这个问题它不仅为需要访问的行指定谓词(或where子句)还指定了表中访问的列。通过只在访问某些行和列时审计对表的访问可以极大地减少审计表条目的数量。
程序包DBMS_FGA具有4个过程
ADD_POLICY添加使用谓词和审计列的审计策略DROP_POLICY删除审计策略DISABLE_POLICY禁用审计策略但保留与表或视图关联的策略ENABLE_POLICY启用策略
1.5 与审计相关的数据字典视图
下表包含了与审计相关的数据字典视图。
数据字典视图说 明AUDIT_ACTIONS包含审计跟踪动作类型代码的描述例如INSERT、DROP VIEW、DELETE、LOGON和LOCKall_def_audit_opts查看数据库用 on default 子句设置了哪些默认对象审计DBA_AUDIT_OBJECT与数据库中对象相关的审计跟踪记录DBA_AUDIT_POLICIES数据库中的细粒度审计策略DBA_AUDIT_SESSION与CONNECT和DISCONNECT相关的所有审计跟踪记录DBA_AUDIT_STATEMENT与GRANT、REVOKE、AUDIT、NOAUDIT和ALTER SYSTEM命令相关的审计跟踪条目DBA_AUDIT_TRAIL包含标准审计跟踪条目。USER_AUDIT_TRAILUSER_TRAIL_AUDIT只包含已连接用户的审计行DBA_FGA_AUDIT_TRAIL细粒度审计策略的审计跟踪条目DBA_COMMON_AUDIT_TRAIL将标准的审计行和细粒度的审计行结合在一个视图中DBA_OBJ_AUDIT_OPTS对数据库对象生效的审计选项DBA_PRIV_AUDIT_OPTS对系统权限生效的审计选项DBA_STMT_AUDIT_OPTS对语句生效的审计选项