この章の内容は次のとおりです。
関連項目:
|
監査は選択したユーザーのデータベース・アクションの監視と記録です。標準監査では、初期化パラメータおよびSQL文AUDIT
とNOAUDIT
を使用して、SQL文、権限、スキーマ・オブジェクト、およびネットワーク・アクティビティと複数階層アクティビティの監査を行います。
監査が有効かどうかにかかわらず、Oracle Databaseが常に監査するアクティビティもあります。これらのアクティビティには、管理者権限の接続、データベースの起動、データベースの停止などが含まれます。詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
監査の別タイプとして、ファイングレイン監査もあります。ファイングレイン監査により、データ・アクセスを、内容に基づき、value 1000
などのBoolean測定を使用して、最も密なレベルで監査できます。ファイングレイン監査では、列へのアクセス、または列内での変更に基づいて、アクティビティを監査できます。Oracle Databaseにある指定した要素(特定のオブジェクトのコンテンツなど)へのアクセスまたは変更があると監査がトリガーされるようにセキュリティ・ポリシーを作成できます。監査を行う必要がある特定の条件を定義したポリシーを作成できます。たとえば、特定の表の列を監査し、一定期間中のどのタイミングで、誰がアクセスしようとしたかを調べることができます。また、ポリシー違反があった場合にトリガーされるアラートも作成でき、このデータを別の監査ファイルに書き込むことができます。ファイングレイン監査の実行方法は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
アクションのアカウンタビリティを有効にします。特定のスキーマ、表、行または影響を受けるコンテンツに対して実行されたアクションも含まれます。
アカウンタビリティに基づいて不審なユーザーによる不適切なアクションを阻止します。
不審なアクティビティを調査します。たとえば、ユーザーが表からデータを削除しようとした場合、セキュリティ管理者は、そのデータベースへのすべての接続と、そのデータベースにあるすべての表からの行の削除(成功および失敗)をすべて監査できます。
認可されていないユーザーによるアクションを監査人に通知します。たとえば、認可されていないユーザーがデータを変更または削除を実行できるなど、予期した以上の権限を持っている場合に、ユーザー認可を再評価できます。
認可またはアクセス制御の実装に関する問題を検出します。たとえば、データは他の方法で保護されているため、監査レコードは生成されないと予測される監査ポリシーを作成できます。しかし、これらのポリシーで監査レコードが生成された場合は、他のセキュリティ制御が正しく実装されていないことがわかります。
監査に関するコンプライアンス要件を遵守します。次のような規制には監査に関連する共通の要件があります。
米国企業改革法(Sarbanes-Oxley Act)
医療保険の相互運用性と説明責任に関する法律(HIPAA)(Health Insurance Portability and Accountability Act)
国際業務を行う銀行の自己資本比率に関する国際統一基準: 改定版(バーゼルII)(International Convergence of Capital Measurement and Capital Standards: a Revised Framework)
日本の個人情報保護法
欧州連合のプライバシと電子通信に関する指令(European Union Directive on Privacy and Electronic Communications)
特定のデータベース・アクティビティに関するデータを監視および収集します。たとえば、データベース管理者は、更新された表、実行された論理I/O操作の回数、ピーク時に接続していた同時実行ユーザーの数などに関する統計を収集できます。
Oracle Databaseは、監査アクティビティを監査レコードに記録します。監査レコードには、監査された操作、操作を実行したユーザー、操作が実行された日時が記録されます。監査レコードは、データベース監査証跡と呼ばれるデータ・ディクショナリ表またはオペレーティング・システム監査証跡と呼ばれるオペレーティング・システム・ファイルに格納できます。Oracle Databaseでは、不審なアクティビティを追跡するために使用できる一連のデータ・ディクショナリ・ビューも提供されます。これらのビューの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
標準監査を使用する場合、Oracle Databaseでは、監査レコードがDBA_AUDIT_TRAIL
(SYS.AUD$
表)、オペレーティング・システム監査証跡、または標準監査のログ・レコードとファイングレイン監査のログ・レコードを組み合せるDBA_COMMON_AUDIT_TRAIL
ビューに書き込まれます。
さらに、AUDIT_SYSLOG_LEVEL
初期化パラメータが設定されている場合、管理者が実行したアクションがsyslog
監査証跡に記録されます。
ここでは、標準監査を使用してSQL文、権限、スキーマ・オブジェクト、ネットワーク・アクティビティまたは多層アクティビティに対して実行されたアクティビティを監査する方法を説明します。
この項の内容は次のとおりです。
関連項目: 標準監査証跡の管理の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。 |
標準監査では、SQL文、権限、スキーマ・オブジェクトや、ネットワーク・アクティビティまたは多層アクティビティの監査を有効にできます。必要に応じて、特定のスキーマ表に対して監査を実行できます。このタイプの監査を実行するには、Database Controlを使用します。
標準監査証跡は、DBA_AUDIT_TRAIL
およびDBA_COMMON_AUDIT_TRAIL
データ・ディクショナリ・ビューを問い合せることで表示できます。
関連項目: 使用可能な様々なタイプの監査オプションの使用方法および使用理由に関するロードマップは、『Oracle Databaseセキュリティ・ガイド』を参照してください。 |
この項で説明している標準監査を実行する前に、標準監査を有効にする必要があります。標準監査を有効にするときに、データベース監査証跡に監査証跡を作成するか、オペレーティング・システム・ファイルに監査アクティビティを書き込むことができます。オペレーティング・システム・ファイルに書き込む場合は、テキスト形式またはXML形式で監査レコードを作成します。
標準監査証跡を有効または無効にするには、次のようにします。
Database Controlを起動します。
SYS
としてログインし、SYSDBA
権限で接続します。
ユーザー名: SYS
パスワード: パスワードを入力します。
接続モード: SYSDBA
「サーバー」をクリックして、「サーバー」サブページを表示します。
「データベース構成」セクションで「初期化パラメータ」をクリックします。
「初期化パラメータ」ページが表示されます。
「SPFile」をクリックして「SPFile」サブページを表示します。
インストールの「SPFile」タブが表示されない場合は、サーバー・パラメータ・ファイルを使用してOracle Databaseをインストールしなかったということです。次の手順に進みます。
「名前」フィールドにaudit_trail
を入力してAUDIT_TRAIL
初期化パラメータを検索し、「実行」をクリックします。
AUDIT_
のように、パラメータの最初の数文字を入力できます。または、パラメータのリストをスクロールして、AUDIT_TRAIL
パラメータを検索できます。
「値」フィールドで、次のいずれかの値を選択します。
DB
: データベース監査を有効にし、すべての標準監査レコードをデータベース監査証跡(SYS.AUD$
)に記録します。ただし、常にオペレーティング・システム監査証跡に書き込まれるレコードは除きます。(Database Configuration Assistantを使用してデータベースを作成した場合はこの値がデフォルトになります。その他の場合はNONE
がデフォルトになります。)
OS
: データベース監査を有効にして、すべての監査レコードをオペレーティング・システム・ファイルに書き込みます。SYS.AUD$
表に監査レコードを送信するかわりにオペレーティング・システム・ファイルに監査証跡を書き込むと、パフォーマンスが向上します。監査を行うユーザーがデータベース管理者とは異なる場合は、operating system
設定を使用する必要があります。データベースに格納されたすべての監査情報は、データベース管理者により参照および変更が可能です。
オペレーティング・システム監査レコード・ファイルの場所を指定するには、AUDIT_FILE_DEST
初期パラメータを設定します。デフォルトのディレクトリは$ORACLE_BASE/admin/$ORACLE_SID/adump
です。
NONE
: 標準監査を無効にします。
DB, EXTENDED
: AUDIT_TRAIL=DB
設定のすべてのアクションを実行し、SYS.AUD$
表が使用できる場合は、この表のSQLBINDおよびSQLTEXT CLOB列にデータを移入します。(これらの2つの列は、このパラメータが指定されている場合にのみ移入されます。)
XML
: オペレーティング・システム監査レコード・ファイルにXML形式で書き込みます。AuditRecord
ノードの要素を(http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd
XSDファイル内のXMLスキーマで指定されているとおり)、Sql_Text
とSql_Bind
を除いてすべてオペレーティング・システムXML監査ファイルに書き込みます。この.xsd
ファイルは、XML監査ファイルのスキーマ定義を表します。XMLスキーマはXMLスキーマ言語で記述された文書です。
EXTENDED
: XML
のすべてのアクションを実行し、可能な場合はSYS.AUD$
表のSQLBINDおよびSQLTEXT CLOB列にデータを移入するXML, EXTENDED
を指定します。(これらの列は、このパラメータが指定されている場合にのみ移入されます。)
AUDIT_TRAIL
初期化パラメータの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
「適用」をクリックします。
Oracle Databaseインスタンスを再起動します。
「データベース・インスタンス」リンクをクリックします。
「ホーム」をクリックしてDatabase Controlのホームページを表示します。
「一般」で「停止」をクリックします。
資格証明の起動/停止ページでは、資格証明を入力します。
詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。
完全に停止した後に、「起動」をクリックします。
次の点に注意してください。
オブジェクトの監査に関する変更を行った場合、データベースを再起動する必要はありません。データベースを再起動する必要があるのは、全体にかかわる変更を行った場合(すべての監査をオンまたはオフにした場合や監査証跡オペレーティング・システム・ファイルの定義を変更した場合)のみです。
ファイングレイン監査またはSYS
監査を有効にする場合、AUDIT_TRAIL
を設定する必要はありません。(SYS
監査ではシステム管理者のアクティビティが監視されます。詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。)ファイングレイン監査の場合は、必要に応じてファイングレイン監査ポリシーを追加および削除し、監視する特定の操作またはオブジェクトに適用します。AUDIT_SYS_OPERATIONS
パラメータを使用すると、SYS
監査を有効または無効にできます。
Database Configuration Assistant (DBCA)を使用して、新しいデータベースを作成する場合、Oracle Databaseはセキュリティに関連する最も一般的に使用されるSQL文と権限を監査するようにデータベースを構成します。また、AUDIT_TRAIL
初期化パラメータをDB
に設定します。別の監査証跡のタイプ(たとえば、監査証跡レコードをオペレーティング・システム・ファイルに記録する場合はOS
)を使用する場合は、そのような設定もでき、Oracle Databaseは、デフォルトで監査された権限を引き続き監査します。AUDIT_TRAIL
パラメータをNONE
に設定して監査を無効にすると、監査は実行されません。
Oracle Databaseでは、デフォルトで次の権限が監査されます。
ALTER ANY PROCEDURE |
CREATE ANY LIBRARY |
DROP ANY TABLE |
ALTER ANY TABLE |
CREATE ANY PROCEDURE |
DROP PROFILE |
ALTER DATABASE |
CREATE ANY TABLE |
DROP USER |
ALTER PROFILE |
CREATE EXTERNAL JOB |
EXEMPT ACCESS POLICY |
ALTER SYSTEM |
CREATE PUBLIC DATABASE LINK |
GRANT ANY OBJECT PRIVILEGE |
ALTER USER |
CREATE SESSION |
GRANT ANY PRIVILEGE |
AUDIT SYSTEM |
CREATE USER |
GRANT ANY ROLE |
CREATE ANY JOB |
DROP ANY PROCEDURE |
Oracle Databaseでは、デフォルトで次のSQL文のショートカットが監査されます。
ROLE |
SYSTEM AUDIT |
PUBLIC SYNONYM |
DATABASE LINK |
PROFILE |
SYSTEM GRANT |
SQL文および権限の監査を個々に制御するには、AUDIT
およびNOAUDIT
文を使用します。
データベースを監査することをお薦めします。監査は、米国企業改革法(Sarbanes-Oxley Act)で定義されているコンプライアンス要件を満たし、内部からのアクセスを確実に制御できる有効な方法です。監査を実行することでビジネス活動を監視でき、企業のポリシーに反するアクティビティを発見できます。この結果、データベースおよびアプリケーション・ソフトウェアへのアクセスが厳しく制御されます。デフォルトで監査を有効にすると、監査および個人のコンプライアンスに関する監査レコードを生成できます。
注意: アプリケーションがOracle Database 10g リリース2(10.2)のデフォルトの監査設定を使用している場合、リリース11g の監査設定を使用するようにアプリケーションを変更するまで、Oracle Database 10.2の監査設定に戻すことができます。これには、undoaud.sql スクリプトを実行します。
リリース 11g の監査設定を使用するようにアプリケーションを変更した後、データベースを手動で更新してビジネスのニーズに適した監査構成にするか、
|
関連項目:
|
DDL文。たとえば、表の監査(AUDIT
TABLE
)を有効にすると、すべてのCREATE TABLE
およびDROP
TABLE
文が監査されます。
DML文。たとえば、SELECT
TABLE
の監査を有効にすると、表またはビューにかかわらず、すべてのSELECT
... FROM
TABLE/VIEW
文が監査されます。
文の監査の対象範囲は変更できます。たとえば、すべてのデータベース・ユーザーのアクティビティを監査したり、ユーザーの選択リストのみを監査できます。
関連項目: SQL文の監査の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。 |
権限の監査では、システム権限を使用する文を監査します。たとえば、SELECT ANY TABLE
権限を使用するすべてのSELECT
文を監査する場合は、SELECT ANY TABLE
権限を監査できます。すべてのシステム権限の使用を監査できます。権限の監査では文の監査と同様に、すべてのデータベース・ユーザーのアクティビティを監査することも、指定したリストのアクティビティのみを監査することもできます。SQL文の監査と同様に、AUDIT
文およびNOAUDIT
文を使用することで、権限の監査を有効または無効にできます。また、監査を有効にするには、AUDIT SYSTEM
システム権限が必要です。
権限の監査オプションは、対応するシステム権限に一致します。たとえば、DELETE ANY TABLE
権限の使用を監査するオプションは、DELETE ANY TABLE
です。次に例を示します。
AUDIT DELETE ANY TABLE BY ACCESS WHENEVER NOT SUCCESSFUL;
DELETE ANY TABLE
システム権限の使用の成功および失敗をすべて監査するには、次の文を入力します。
AUDIT DELETE ANY TABLE BY ACCESS;
すべてのデータベース・ユーザーおよび監査対象の個々の文による、すべての表でのSELECT
、INSERT
、DELETE
文の失敗、およびEXECUTE PROCEDURE
システム権限の使用の失敗をすべて監査するには、次の文を実行します。
AUDIT SELECT TABLE, INSERT TABLE, DELETE TABLE, EXECUTE PROCEDURE BY ACCESS WHENEVER NOT SUCCESSFUL;
関連項目: 権限の監査の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。 |
Database Controlの「監査文の追加」ページまたは「監査権限の追加」ページでプロキシを指定すると、多層環境のクライアントのアクティビティを監査できます。多層環境のクライアントのアクティビティの監査には、SQL AUDIT
文を使用できます。その場合は、AUDIT
文内でBY
user
句を使用します。
たとえば、プロキシ・アプリケーション・ユーザーjackson
によって発行されたSELECT TABLE
文を監査するには、次のようにします。
AUDIT SELECT TABLE BY jackson;
ユーザーjackson
は、次のようにappserve
プロキシ・ユーザーを使用して接続できます。
CONNECT appserve[jackson]
Enter password: password
中間層でも、データベース・セッションでユーザーのクライアントIDを設定でき、中間層アプリケーションからユーザー・アクションの監査を有効にできます。ユーザーのクライアントIDは、監査証跡に表示されます。
関連項目: 多層環境での監査の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。 |
スキーマ・オブジェクトの監査では、特定の表のSELECT
文またはDELETE
文など、オブジェクト権限により許可されたすべてのSELECT
文およびDML文が監査されます。これらの権限を制御するGRANT
文およびREVOKE
文も監査されます。
関連項目: スキーマ・オブジェクトの監査の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。 |
AUDIT
文を使用して、ネットワーク・プロトコルの予期しないエラーやネットワーク層で発生した内部エラーを監査できます。ネットワーク監査の対象とならないエラーのタイプは、接続の問題ではなく、複数の原因で発生した可能性があります。考えられる原因として、データベース・エンジニアが単にテスト目的で内部イベントを設定した、などがあげられます。他にも、ネットワークが暗号化の作成または処理に必要な情報を見つけられないなど、暗号化の構成設定の競合などが原因として考えられます。
ネットワークの監査を有効にするには、次のようにします。
SQL*Plusを起動し、SYSTEM
などの管理者権限で、またはセキュリティ管理者としてログオンします。次に例を示します。
sqlplus system
Enter password: password
SQL*Plusが起動し、デフォルトのデータベースに接続してから、プロンプトが表示されます。
SQL*Plusの起動の詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。
次の文を入力します。
AUDIT NETWORK;
ネットワークの監査を無効にするには、次の文を入力します。
NOAUDIT NETWORK;
SQL*Plusを終了します。
EXIT
関連項目: ネットワーク・アクティビティの監査の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。 |
OE.CUSTOMERS
表のSELECT
文を監査する場合を想定します。このチュートリアルでは、標準監査を有効にし、SELECT
SQL文を有効にし、OE.CUSTOMERS
表でSELECT
SQL文を実行してから、その監査ファイルをチェックします。
このチュートリアルでは、次の手順を実行します。
最初に、ログインして必要ならば標準監査を有効にします。
標準監査を有効にするには、次のようにします。
Database Controlを起動します。
SYS
としてログインします。
ユーザー名: SYS
パスワード: パスワードを入力します。
接続モード: SYSDBA
「サーバー」をクリックして、「サーバー」サブページを表示します。
「データベース構成」セクションで「初期化パラメータ」をクリックします。
「初期化パラメータ」ページが表示されます。
「SPFile」をクリックして「SPFile」サブページを表示します。
インストールの「SPFile」タブが表示されない場合は、サーバー・パラメータ・ファイルを使用してOracle Databaseをインストールしなかったということです。次の手順に進みます。
「名前」フィールドにAUDIT_TRAIL
を入力してAUDIT_TRAIL
パラメータを検索し、「実行」をクリックします。
AUDIT
のように、パラメータの最初の数文字を入力できます。または、パラメータのリストをスクロールして、AUDIT_TRAIL
パラメータを検索できます。パラメータのリストをアルファベット順にソートするには、「名前」列をクリックします。
「値」フィールドで、現在の設定をメモしてから、その設定をDB_EXTENDED
に変更します。
AUDIT_TRAIL
パラメータは、デフォルトではDB
に設定されているため、データベース監査が有効で、あらゆる監査レコードをデータベース監査証跡(SYS.AUD$
)に記録できます(ただし、常にオペレーティング・システム監査証跡に書き込まれるレコードは除きます)。DB_EXTENDED
は、この機能に加えて、SQLテキストとSQLバインド変数を記録します。
「適用」をクリックします。
Oracle Databaseインスタンスを再起動します。
コマンドラインから、次のコマンドを入力します。
sqlplus sys as sysoper
Enter password: password
SQL> SHUTDOWN IMMEDIATE
SQL> RESTART
ここで、次のコマンドを入力して、AUDIT_TRAIL
の設定を確認できます。
SQL> SHOW PARAMETER AUDIT_TRAIL NAME TYPE VALUE ------------------------ --------------- ---------------------------------\ audit_trail string DB_EXTENDED
次に、OE.CUSTOMERS
表のSELECT
文に対する監査を有効にします。
OE.CUSTOMERS表のSELECT文の監査を有効にするには、次のようにします。
サンプル・ユーザーのsec_admin
が存在することを確認します。
SYSTEM
としてログオンし、Database Controlのホームページから、「サーバー」をクリックすると、「サーバー」サブページが表示されます。「セキュリティ」の下の「ユーザー」を選択し、アカウントのリストでsec_admin
をチェックします。sec_admin
セキュリティ管理者アカウントを作成する方法は、「手順1: セキュリティ管理者アカウントを作成する」を参照してください。Oracle Database Vaultがまだ有効な場合は、Database Vaultアカウント・マネージャのユーザー・アカウントを使用して、アカウントを再作成する必要があります。
SQL*Plusで、ユーザーOE
としてログインし、OE.CUSTOMERS
表に対するSELECT
権限をsec_admin
に付与します。
sqlplus oe
Enter password: password
Connected.
SQL> GRANT SELECT ON CUSTOMERS TO sec_admin;
SYSDBA
権限を持つユーザーSYS
としてDatabase Controlにログインします。
「サーバー」をクリックして、「サーバー」サブページを表示します。
「セキュリティ」セクションで「監査設定」をクリックします。
監査設定ページが表示されます。
「監査オブジェクト」サブページを選択します。
「追加」をクリックします。
「監査オブジェクトの追加」ページが表示されます。
次の情報を入力します。
オブジェクト・タイプ: 「表」
を選択します。
表: OE.CUSTOMERS
と入力します。
監査可能な文: SELECT
を選択し、「移動」をクリックして「選択した文」リストに移動します。
「OK」をクリックします。
Database Controlからログアウトします。
この段階では、監査が有効で、OE.CUSTOMERS
表で実行されたすべてのSELECT
文がDBA_AUDIT_TRAIL
データ・ディクショナリ・ビューに書き込まれます。次に、監査設定をテストします。
監査設定をテストするには、次のようにします。
SQL*Plusを起動し、ユーザーsec_admin
として接続します。
sqlplus sec_admin
Enter password: password
次のSELECT
文を入力して監査証跡のアラートを作成します。
SELECT COUNT(*) FROM OE.CUSTOMERS;
次の文を入力してDBA_AUDIT_TRAIL
ビューを表示します。
SELECT USERNAME, SQL_TEXT, TIMESTAMP FROM DBA_AUDIT_TRAIL WHERE SQL_TEXT LIKE 'SELECT %';
このSELECT
文で、SQL_TEXT
列に対して入力するテキスト('SELECT %'
)は、手順2のSELECT
文で入力した大文字/小文字に合わせます。つまり、SELECT
文を小文字で入力した場合は、'SELECT %'
ではなく、'select %'
と入力してDBA_AUDIT_TRAIL
ビューを問い合せます。
次のような出力が表示されます。
USERNAME SQL_TEXT TIMESTAMP ----------------- --------------------------------------- ------------------ SEC_ADMIN SELECT COUNT(*) FROM OE.CUSTOMERS 31-MAR-10
SQL*Plusを終了します。
EXIT
オプションで、以前に作成した監査設定を削除します。
Database Controlで監査設定を削除するには、次のようにします。
SYSDBA
権限を持つユーザーSYS
としてDatabase Controlにログインします。
「サーバー」をクリックして、「サーバー」サブページを表示します。
「セキュリティ」セクションで「監査設定」をクリックします。
監査設定ページが表示されます。
「監査オブジェクト」サブページを選択します。
「スキーマ」にOE
と入力します。
「オブジェクト名」にCUSTOMERS
と入力します。
「検索」をクリックします。
OE.CUSTOMERS
スキーマの横のボックスを選択し、「削除」をクリックします。
「確認」ダイアログ・ボックスが表示されます。
「はい」を選択します。
「データベース・インスタンス」リンクをクリックしてデータベースのホームページに戻ります。
「サーバー」サブページを選択してから、「データベース構成」で「初期化パラメータ」を選択します。
「SPFile」サブページを選択します。
AUDIT_TRAIL
パラメータを検索して、元の値にします。「適用」をクリックします。
Database Controlを終了します。
データベースを再起動します。
sqlplus sys as sysoper
Enter password: password
SQL> SHUTDOWN IMMEDIATE
SQL> RESTART
この例は、このガイドの最後の例です。sec_admin
管理者アカウントが不要になった場合は、このアカウントを削除する必要があります。
sec_adminセキュリティ管理者アカウントを削除するには、次のようにします。
ユーザーSYSTEM
としてDatabase Controlにログインします。
Oracle Database Vaultが有効な場合は、Database Vaultアカウント・マネージャとしてログオンする必要があります。
Database Controlのホームページで、「サーバー」をクリックして「サーバー」サブページを表示します。
「セキュリティ」セクションで「ユーザー」をクリックします。
「ユーザー」ページが表示されます。
「名前」フィールドにsec_admin
と入力します。
「検索」をクリックします。
sec_admin
ユーザー・アカウントの横の選択ボックスを選択し、「削除」をクリックします。
「確認」ダイアログ・ボックスが表示されます。
「はい」を選択します。
新しくデータベースを作成すると、選択した一連のSQL文および権限の監査を有効にすることができます。デフォルト監査を有効にすることを、強くお薦めします。監査は、コンプライアンス要件を満たし、内部からのアクセスを確実に制御できる有効な方法です。デフォルト監査の詳細は、「セキュリティ関連のSQL文および権限に対するデフォルト監査の使用」を参照してください。
監査によるデータベース・パフォーマンスへの影響は最小限ですが、監査するイベントの数はできるだけ制限する必要があります。この制限によって、監査対象の文を実行したときにパフォーマンスの影響が最小限に抑えられ、監査証跡のサイズが最小限になるため、分析と理解が容易になります。
監査方針を立てる際は、次のガイドラインに従います。
監査の目的を評価する
監査の目的を理解すると、適切な監査方針を立てることができ、不要な監査を行わずにすみます。
たとえば、不審なデータベース・アクティビティの調査のために監査を行うと仮定します。この情報のみでは、十分に明確であるとはいえません。どのデータベース・アクティビティが疑わしい、または注意を要するといった具体的な情報が必要です。そのために、たとえば、データベース内の表から許可なくデータが削除されていないかを監査するというように、監査目的を絞り込みます。このような目的を設定すれば、監査の対象となるアクションの種類や、疑わしいアクティビティによって影響を受けるオブジェクトの種類を限定できます。
監査について十分理解する
目標とする情報の取得に必要な最小限の文、ユーザーまたはオブジェクトを監査します。これによって、不要な監査情報のために重要な情報の識別が困難になることがなくなります。収集が必要なセキュリティ情報の量と、その情報を格納して処理する能力とのバランスを保つ必要があります。
たとえば、データベース・アクティビティに関する情報を収集するために監査する場合は、追跡するアクティビティの種類を正確に判断した上で、必要な情報を収集するために必要な期間内で、目的のアクティビティのみを監査します。別の例として、各セッションの論理I/O情報のみを収集する場合は、オブジェクトを監査しないでください。
監査目的が、特定のデータベース・アクティビティに関する履歴情報を収集することである場合は、次のガイドラインに従ってください。
関連のあるアクションのみを監査する
不要な監査情報によって重要な情報の識別が困難になることを防ぎ、監査証跡管理の量を削減するために、対象となるデータベース・アクティビティのみ監査します。ファイングレイン監査を使用して特定のアクションを監査できます。ファイングレイン監査の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
監査レコードをアーカイブし、監査証跡を削除する
必要な情報を収集した後は、目的の監査レコードをアーカイブし、この情報の監査証跡を削除します。
監査レコードをアーカイブするために、たとえば標準監査証跡ではINSERT INTO
table
SELECT ... FROM SYS.AUD$ ...
を使用して、データベース表に関連レコードをコピーします(ファイングレイン監査レコードは、SYS.FGA_LOG$
表にあります)。また、監査証跡表をオペレーティング・システム・ファイルにエクスポートできます。Oracle Databaseユーティリティでは、Oracle Data Pumpを使用して表をエクスポートする方法が説明されています。
監査レコードをパージするには、標準監査レコードをSYS.AUD$
表から削除し、ファイングレイン監査レコードをSYS.FGA_LOG$
表から削除します。たとえば、すべての監査レコードを標準監査証跡から削除するには、次の文を入力します。
DELETE FROM SYS.AUD$;
また、emp
表の監査の結果として生成された標準監査証跡からすべての監査レコードを削除するには、次の文を入力します。
DELETE FROM SYS.AUD$ WHERE OBJ$NAME='EMP';
プライバシに関する自社の留意事項を守る
プライバシに関する法規によって、追加のビジネス・プライバシ・ポリシーが必要となる場合があります。プライバシに関する多くの法規では、個人を特定できる情報(PII)へのアクセスを企業で監視する必要があり、このような監視は監査によって実施されます。ビジネス・レベルのプライバシ・ポリシーでは、技術的、法的および企業ポリシーの問題など、データ・アクセスおよびユーザー・アカウンタビリティに関するすべての事項を満たす必要があります。
監査の目的が疑わしいデータベース・アクティビティを監視することである場合は、次のガイドラインに従います。
一般的な情報を監査してから、特定の情報を監査する
通常、疑わしいデータベース・アクティビティの監査を開始する時点では、対象のユーザーまたはスキーマ・オブジェクトの特定に使用できる情報はありません。そのため、最初は「標準監査による一般的なアクティビティの監査」で説明されている標準監査オプションを使用してより一般的に監査オプションを設定します。
基本的な監査情報を記録および分析した後で、一般的な監査を無効にし、特定のアクションを監査します。『Oracle Databaseセキュリティ・ガイド』で説明されているファイングレイン監査を使用して、特定のアクションを監査できます。疑わしいデータベース・アクティビティの発生源に関する結論を引き出すのに十分な証拠を収集するまで、このプロセスを継続します。
監査証跡を保護する
疑わしいデータベース・アクティビティを監査する場合は、監査情報が監査されずに追加、変更または削除されることのないように、監査証跡を保護します。AUDIT
SQL文を使用して、標準監査証跡を監査します。次に例を示します。
sqlplus sys as sysdba
Enter password: password
SQL> AUDIT SELECT ON SYS.AUD$ BY ACCESS;
表7-1には監査を保護するために使用する初期化パラメータがリストされています。
表7-1 監査に使用される初期化パラメータ
初期化パラメータ | デフォルト設定 | 説明 |
---|---|---|
|
監査を有効または無効にします。詳細は、「標準監査証跡の有効化または無効化」を参照してください。 |
|
または
|
Oracle Databaseでは、必須の監査情報もこの場所に書き込まれ、 |
|
|
ユーザー UNIXシステムでは、 |
|
デフォルト設定なし |
UNIXシステムでは、 |
初期化パラメータを変更するには、「初期化パラメータ値の変更」を参照してください。初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Database管理者ガイド』を参照してください。