説明
このステートメントは、SQLステートメントに対する監査ルールを設定または削除するために使用します。
説明
- SQLステートメントの監査ルールを設定する場合、
AUDIT SYSTEMシステム権限が必要であり、ORAAUDITORユーザーでログインしている必要があります。 - SQLステートメントの監査ルールを設定すると、すべてのセッションに対して即時に有効になります。
- システムパラメータaudit_trailを使用して監査機能を有効にしておく必要があります。このステートメントで設定された監査ルールが有効になります。
使用上の制限と注意事項
監査を実行する前に、ORAAUDITOR ユーザーをアンロックする必要があります。
ORAAUDITOR ユーザーのアンロック例:
ALTER USER ORAAUDITOR ACCOUNT UNLOCK;
監査の詳細については、セキュリティ監査の有効化を参照してください。
構文
/* ステートメント監査 */
{AUDIT | NOAUDIT}
{ statement_operation_list | ALL | ALL STATEMENTS }
[BY user_name [, user_name]...]
[BY ACCESS]
[WHENEVER [NOT] SUCCESSFUL]
/* オブジェクト監査 */
{AUDIT | NOAUDIT}
{ object_operation_list | ALL }
ON { obj_name | DEFAULT }
[WHENEVER [NOT] SUCCESSFUL]
statement_operation_clause:
statement_operation_list
| ALL
| ALL STATEMENTS
statement_operation_list:
statement_operation [statement_operation...]
object_operation_clause:
object_operation_list
| ALL
object_operation_list:
object_operation [object_operation...]
auditing_on_clause:
ON obj_name
| ON DEFAULT
auditing_by_user_clause:
BY user_name [user_name...]
whenever_option:
WHENEVER NOT SUCCESSFUL
| WHENEVER SUCCESSFUL
パラメータ説明
パラメータ |
説明 |
|---|---|
| statement_operation_list | 監査対象のSQLステートメント操作リスト |
| ALL | 監査可能なすべてのステートメントを監査します |
| ALL STATEMENTS | すべてのステートメントを監査します |
| user_name | 監査対象のユーザー名リスト。カンマで区切ります |
| BY ACCESS | 各監査操作ごとに1件のレコードを生成します |
| WHENEVER NOT SUCCESSFUL | 失敗した操作のみを監査します |
| WHENEVER SUCCESSFUL | 成功した操作のみを監査します |
| object_operation_list | 監査対象のオブジェクト操作リスト |
| ALL | 監査可能なすべてのオブジェクト操作を監査します |
| obj_name | 監査対象のオブジェクト名 |
| DEFAULT | デフォルトの監査オプションを設定し、後から作成されるオブジェクトに適用します |
| WHENEVER NOT SUCCESSFUL | 失敗した操作のみを監査します |
| WHENEVER SUCCESSFUL | 成功した操作のみを監査します |
監査可能なSQLステートメントのタイプは、次の表のとおりです。
監査ステートメント説明 表1
監査文 |
説明 |
|---|---|
| ALTER SYSTEM | ALTER SYSTEM 文を監査します。 |
| CLUSTER | ADD CLUSTER および REMOVE CLUSTER 文を監査します。 |
| INDEX | CREATE INDEX、DROP INDEX、FLASHBACK INDEX および PURGE INDEX 文を監査します。 |
| NOT EXISTS | オブジェクトが存在しないために失敗した操作を監査します。 |
| OUTLINE | CREATE OUTLINE、ALTER OUTLINE および DROP OUTLINE 文を監査します。 |
| PROCEDURE | CREATE PROCEDURE、DROP PROCEDURE、CREATE FUNCTION、DROP FUNCTION、CREATE PACKAGE および DROP PACKAGE 文を監査します。 |
| PROFILE | CREATE PROFILE、ALTER PROFILE および DROP PROFILE 文を監査します。 |
| ROLE | CREATE ROLE、ALTER ROLE、DROP ROLE および SET ROLE 文を監査します。 |
| SEQUENCE | CREATE SEQUENCE および DROP SEQUENCE 文を監査します。 |
| SESSION | ログインおよびログアウト操作を監査します。 |
| SYNONYM | CREATE SYNONYM および DROP SYNONYM 文を監査します。 |
| SYSTEM AUDIT | AUDIT および NOAUDIT 文を監査します。 |
| SYSTEM GRANT | GRANT および REVOKE 文を監査します。 |
| TABLE | CREATE TABLE、DROP TABLE および TRUNCATE TABLE 文を監査します。 |
| TABLESPACE | CREATE TABLESPACE、ALTER TABLESPACE および DROP TABLESPACE 文を監査します。 |
| TRIGGER | CREATE TRIGGER、ALTER TRIGGER および DROP TRIGGER 文を監査します。 |
| TYPE | CREATE TYPE、DROP TYPE、CREATE TYPE BODY および DROP TYPE BODY 文を監査します。 |
| USER | CREATE USER、ALTER USER および DROP USER 文を監査します。 |
| VIEW | CREATE VIEW および DROP VIEW 文を監査します。 |
監査ステートメント説明 表2
監査ステートメント |
説明 |
|---|---|
| ALTER SEQUENCE | ALTER SEQUENCE ステートメントを監査します。 |
| ALTER TABLE | ALTER TABLE ステートメントを監査します。 |
| COMMENT TABLE | COMMENT ON TABLE および COMMENT ON VIEW ステートメントを監査します。 |
| DELETE TABLE | DELETE FROM TABLE および DELETE FROM VIEW ステートメントを監査します。 |
| EXECUTE PROCEDURE | CALL ステートメントを監査します。 |
| GRANT PROCEDURE | GRANT obj_privilege ON PROCEDURE | FUNCTION | PACKAGE および REVOKE obj_privilege ON PROCEDURE | FUNCTION | PACKAGE ステートメントを監査します。 |
| GRANT SEQUENCE | GRANT obj_privilege ON SEQUENCE および REVOKE obj_privilege ON SEQUENCE ステートメントを監査します。 |
| GRANT TABLE | GRANT obj_privilege ON TABLE | VIEW および REVOKE obj_privilege ON TABLE | VIEW ステートメントを監査します。 |
| GRANT TYPE | GRANT obj_privilege ON TYPE および REVOKE obj_privilege ON TYPE ステートメントを監査します。 |
| INSERT TABLE | INSERT INTO TABLE および INSERT INTO VIEW ステートメントを監査します。 |
| SELECT SEQUENCE | sequence.CURRVAL または sequence.NEXTVAL を含むすべてのステートメントを監査します。 |
| SELECT TABLE | SELECT TABLE および SELECT VIEW ステートメントを監査します。 |
| UPDATE TABLE | UPDATE TABLE および UPDATE VIEW ステートメントを監査します。 |
例
基本監査設定
ユーザーの確認:
obclient> SELECT username, account_status FROM dba_users ORDER BY created;実行結果:
+------------+----------------+ | USERNAME | ACCOUNT_STATUS | +------------+----------------+ | SYS | OPEN | | LBACSYS | LOCKED | | ORAAUDITOR | OPEN | +------------+----------------+ 3 rows in set (0.211 sec)ユーザー
SYSのSELECTテーブル操作の監査:obclient> AUDIT SELECT TABLE BY SYS BY ACCESS;ユーザー
SYSの失敗したテーブル操作のみの監査:obclient> AUDIT TABLE BY SYS BY ACCESS WHENEVER NOT SUCCESSFUL;
監査の取り消し
ユーザー
SYSのテーブル操作に対する監査の取り消し:obclient> NOAUDIT TABLE BY SYS;ユーザー
SYSのSELECTテーブル操作に対する監査の取り消し:obclient> NOAUDIT SELECT TABLE BY SYS;
監査設定の確認
ステートメント監査設定の確認:
obclient> SELECT * FROM DBA_STMT_AUDIT_OPTS;オブジェクト監査設定の確認:
obclient> SELECT * FROM DBA_OBJ_AUDIT_OPTS;
システムパラメータ設定
システム操作監査の有効化:
obclient> ALTER SYSTEM SET audit_sys_operations = TRUE; -- または obclient> ALTER SYSTEM SET audit_sys_operations = '1';監査ログ出力先の設定:
-- データベーステーブルへの出力 obclient> ALTER SYSTEM SET audit_trail = 'DB'; -- またはオペレーティングシステムファイルへの出力 obclient> ALTER SYSTEM SET audit_trail = 'OS';