SQL Database 監査の使用Get started with SQL database auditing

Azure SQL Database および SQL Data Warehouse の監査を使用して、データベース イベントを追跡し、Azure ストレージ アカウント、OMS ワークスペース、Event Hubs の監査ログにイベントを書き込みます。Auditing for Azure SQL Database and SQL Data Warehouse tracks database events and writes them to an audit log in your Azure storage account, OMS workspace or Event Hubs. また、監査によって以下を行うことができます。Auditing also:

  • 規定コンプライアンスの維持、データベース活動の理解、およびビジネス上の懸念やセキュリティ違犯の疑いを示す差異や異常に対する洞察が容易になります。Helps you maintain regulatory compliance, understand database activity, and gain insight into discrepancies and anomalies that could indicate business concerns or suspected security violations.

  • コンプライアンスを保証するものではありませんが、標準へのコンプライアンスを強化します。Enables and facilitates adherence to compliance standards, although it doesn't guarantee compliance. 標準準拠をサポートする Azure プログラムの詳細については、 Azure セキュリティ センターのページを参照してください。For more information about Azure programs that support standards compliance, see the Azure Trust Center.

注意

このトピックは Azure SQL サーバーのほか、その Azure SQL サーバーに作成される SQL Database と SQL Data Warehouse の両方に当てはまります。This topic applies to Azure SQL server, and to both SQL Database and SQL Data Warehouse databases that are created on the Azure SQL server. わかりやすいように、SQL Database という言葉で SQL Database と SQL Data Warehouse の両方を言い表します。For simplicity, SQL Database is used when referring to both SQL Database and SQL Data Warehouse.

Azure SQL Database 監査の概要Azure SQL database auditing overview

SQL Database 監査を使用して、以下を行うことができます。You can use SQL database auditing to:

  • 保持Retain an audit trail of selected events. 監査するデータベース活動のカテゴリを定義できます。You can define categories of database actions to be audited.
  • レポートReport on database activity. 事前に構成したレポートとダッシュボードを使用して、活動とイベントのレポートをすぐに使用できます。You can use pre-configured reports and a dashboard to get started quickly with activity and event reporting.
  • 分析Analyze reports. 疑わしいイベント、異常な活動、および傾向を発見できます。You can find suspicious events, unusual activity, and trends.

データベースに対する監査を設定する」セクションの説明にあるように、さまざまな種類のイベント カテゴリの監査を構成できます。You can configure auditing for different types of event categories, as explained in the Set up auditing for your database section.

重要

監査ログは Azure サブスクリプションの Azure Blob Storage 内にある追加 BLOB に書き込まれます。Audit logs are written to Append Blobs in an Azure Blob storage on your Azure subscription.

  • Premium Storage は現在、追加 BLOB ではサポートされていませんPremium Storage is currently not supported by Append Blobs.
  • VNet 内の Storage は現在サポートされていませんStorage in VNet is currently not supported.

サーバー レベルおよびデータベース レベルの監査ポリシーを定義するDefine server-level vs. database-level auditing policy

特定のデータベースに対して、または既定のサーバー ポリシーとして、監査ポリシーを定義できます。An auditing policy can be defined for a specific database or as a default server policy:

  • サーバー ポリシーがサーバー上にある既存と新規作成のすべてのデータベースに適用されます。A server policy applies to all existing and newly created databases on the server.

  • "サーバー BLOB 監査が有効" な場合は、"常にデータベースに適用" されます。If server blob auditing is enabled, it always applies to the database. データベース監査設定に関係なく、データベースが監査されます。The database will be audited, regardless of the database auditing settings.

  • サーバーだけでなくデータベースやデータ ウェアハウスで BLOB 監査を有効にしても、サーバーの BLOB 監査の設定がオーバーライドされたり変更されたりすることは "ありません"。Enabling blob auditing on the database or data warehouse, in addition to enabling it on the server, does not override or change any of the settings of the server blob auditing. どちらの監査も並行して存在します。Both audits will exist side by side. つまり、データベースは並行して 2 回監査されることになります (1 回はサーバー ポリシー、もう 1 回はデータベース ポリシーによって監査されます)。In other words, the database is audited twice in parallel; once by the server policy and once by the database policy.

    注意

    次の場合を除き、サーバー BLOB 監査とデータベース BLOB 監査の両方を有効にすることは避けてください。You should avoid enabling both server blob auditing and database blob auditing together, unless:

    • 特定のデータベースに対して異なる "ストレージ アカウント" または "リテンション期間" を使用する場合。You want to use a different storage account or retention period for a specific database.
    • 特定のデータベースの監査対象とするイベントの種類またはカテゴリが、このサーバー上の他のデータベースの管理対象と異なる場合。You want to audit event types or categories for a specific database that differ from the rest of the databases on the server. たとえば、特定のデータベースに対してのみ監査が必要なテーブルの挿入がある場合など。For example, you might have table inserts that need to be audited only for a specific database.

    これらに該当しない場合は、サーバー レベルの BLOB 監査のみを有効にし、すべてのデータベースに対してデータベース レベルの監査を無効にすることをお勧めします。Otherwise, we recommended that you enable only server-level blob auditing and leave the database-level auditing disabled for all databases.

データベースに対する監査を設定するSet up auditing for your database

以下のセクションでは、Azure Portal を使用した監査の構成について説明します。The following section describes the configuration of auditing using the Azure portal.

  1. Azure ポータルにアクセスします。Go to the Azure portal.
  2. SQL データベース/サーバー ペインの [セキュリティ] 見出しの下にある [監査] に移動します。Navigate to Auditing under the Security heading in your SQL database/server pane.

    ナビゲーション ウィンドウNavigation pane

  3. サーバーの監査ポリシーを設定する場合は、データベース監査ページの [サーバー設定を表示] リンクを選択できます。If you prefer to set up a server auditing policy, you can select the View server settings link on the database auditing page. そうすると、サーバー監査設定を表示または修正することができます。You can then view or modify the server auditing settings. サーバー監視ポリシーは、このサーバー上にある既存のデータベースと新規作成されたデータベースのすべてに適用されます。Server auditing policies apply to all existing and newly created databases on this server.

    ナビゲーション ウィンドウ

  4. データベース レベルで監査を有効にする場合は、[監査][ON](オン) に切り替えます。If you prefer to enable auditing on the database level, switch Auditing to ON.

    サーバーの監査が有効になっている場合、データベース構成監査とサーバー監査が並行して存在します。If server auditing is enabled, the database-configured audit will exist side-by-side with the server audit.

    ナビゲーション ウィンドウ

  5. 新規 - 監査ログを書き込む場所を構成するときに、複数のオプションから選択できるようになりました。New - You now have multiple options for configuring where audit logs will be written. ログは、Azure ストレージ アカウント、Log Analytics ワークスペース (Log Analytics で使用)、イベント ハブ (イベント ハブで使用) に書き込むことができます。You can write logs to an Azure storage account, to a Log Analytics workspace for consumption by Log Analytics, or to event hub for consumption using event hub. これらのオプションは組み合わせて構成でき、それぞれの場所に監査ログが書き込まれます。You can configure any combination of these options, and audit logs will be written to each.

    ストレージ オプション

  6. ストレージ アカウントへの監査ログの書き込みを構成するには、[ストレージ] を選択し、[容量の詳細] を開きます。To configure writing audit logs to a storage account, select Storage and open Storage details. ログを保存する Azure ストレージ アカウントを選択し、リテンション期間を選択します。Select the Azure storage account where logs will be saved, and then select the retention period. 古いログは削除されます。The old logs will be deleted. 次に、 [OK] をクリックしますThen click OK.

    ストレージ アカウント

  7. Log Analytics ワークスペースへの監査ログの書き込みを構成するには、[Log Analytics (プレビュー)] を選択して [Log Analytics の詳細] を開きます。To configure writing audit logs to a Log Analytics workspace, select Log Analytics (Preview) and open Log Analytics details. ログが書き込まれる Log Analytics ワークスペースを選択または作成し、[OK] をクリックします。Select or create the Log Analytics workspace where logs will be written and then click OK.

    Log Analytics

  8. イベント ハブへの監査ログの書き込みを構成するには、[イベント ハブ (プレビュー)] を選択し、[イベント ハブの詳細] を開きます。To configure writing audit logs to an event hub, select Event Hub (Preview) and open Event Hub details. ログが書き込まれるイベント ハブを選択し、[OK] をクリックします。Select the event hub where logs will be written and then click OK. イベント ハブがお使いのデータベースおよびサーバーと同じリージョンにあることを確認します。Be sure that the event hub is in the same region as your database and server.

    イベント ハブ

  9. [Save] をクリックします。Click Save.

  10. 監査対象イベントをカスタマイズする場合は、PowerShell コマンドレットまたは REST API を使用して行います。If you want to customize the audited events, you can do this via PowerShell cmdlets or the REST API.
  11. 監査設定を構成した後に、新しい脅威の検出機能をオンにし、電子メールを構成してセキュリティの警告を受信します。After you've configured your auditing settings, you can turn on the new threat detection feature and configure emails to receive security alerts. 脅威の検出を使用すると、セキュリティ上の脅威になる可能性がある異常なデータベース アクティビティに対するプロアクティブ アラートを受信できます。When you use threat detection, you receive proactive alerts on anomalous database activities that can indicate potential security threats. 詳細については、脅威の検出の概要に関するページを参照してください。For more information, see Getting started with threat detection.

重要

Azure SQL Data Warehouse 上で、または Azure SQL Data Warehouse が稼働しているサーバー上で監査を有効にすると、以前に一時停止されていた場合でも Data Warehouse が再開されますEnabling auditing on an Azure SQL Data Warehouse, or on a server that has an Azure SQL Data Warehouse on it, will result in the Data Warehouse being resumed, even in the case where it was previously paused. 監査を有効にした後、必ず Data Warehouse を再び一時停止してくださいPlease make sure to pause the Data Warehouse again after enabling auditing.'

監査ログとレポートを分析するAnalyze audit logs and reports

監査ログを Log Analytics に書き込む場合:If you chose to write audit logs to Log Analytics:

  • Azure Portal を使用します。Use the Azure portal. 関連するデータベースを開きます。Open the relevant database. データベースの [監査] ページの上部にある [監査ログの表示] をクリックします。At the top of the database's Auditing page, click View audit logs.

    監査ログの表示

  • [監査レコード] ページの上部にある [Open in OMS](OMS で開く) をクリックすると、Log Analytics でログ ビューが開きます。このビューで、時間の範囲と検索クエリをカスタマイズできます。Then, clicking on Open in OMS at the top of the Audit records page will open the Logs view in Log Analytics, where you can customize the time range and the search query.

    Log Analytics で開く

  • また、Log Analytics ブレードから監査ログにアクセスすることもできます。Alternatively, you can also access the audit logs from Log Analytics blade. ご自身の Log Analytics ワークスペースを開いて、[全般] セクションで [ログ] をクリックします。Open your Log Analytics workspace and under General section, click Logs. 監査ログを表示するには、search "SQLSecurityAuditEvents" などの単純なクエリから始めることができます。You can start with a simple query, such as: search "SQLSecurityAuditEvents" to view the audit logs. ここから Log Analytics を使用して、監査ログのデータに対して詳細検索を実行することもできます。From here, you can also use Log Analytics to run advanced searches on your audit log data. Log Analytics により、統合された検索とカスタム ダッシュボードを使用してオペレーション インサイトがリアルタイムで得られるため、ワークロードやサーバー全体に散在する何百万件のレコードもすぐに分析できます。Log Analytics gives you real-time operational insights using integrated search and custom dashboards to readily analyze millions of records across all your workloads and servers. Log Analytics 検索言語およびコマンドに関する有用な追加情報については、Log Analytics 検索リファレンスに関するページをご覧ください。For additional useful information about Log Analytics search language and commands, see Log Analytics search reference.

監査ログをイベント ハブに書き込む場合:If you chose to write audit logs to Event Hub:

  • イベント ハブの監査ログ データを使用するには、イベントを処理し、そのイベントをターゲットに書き込むようにストリームを設定する必要があります。To consume audit logs data from Event Hub, you will need to set up a stream to consume events and write them to a target. 詳細については、「Azure Event Hubs のドキュメント」を参照してください。For more information, see Azure Event Hubs Documentation.

監査ログを Azure ストレージ アカウントに書き込むことを選択すると、複数の方法でログを表示できるようになります。If you chose to write audit logs to an Azure storage account, there are several methods you can use to view the logs:

  • 監査ログは、設定時に選択したアカウントで集計されます。Audit logs are aggregated in the account you chose during setup. Azure ストレージ エクスプローラーなどのツールを使用して監査ログを調査できます。You can explore audit logs by using a tool such as Azure Storage Explorer. Azure Storage では、監査ログは sqldbauditlogs という名前のコンテナー内に BLOB ファイルのコレクションとして保存されます。In Azure storage, auditing logs are saved as a collection of blob files within a container named sqldbauditlogs. ストレージ フォルダーの階層、命名規則、およびログ形式の詳細については、BLOB 監査ログ形式のリファレンスを参照してください。For further details about the hierarchy of the storage folder, naming conventions, and log format, see the Blob Audit Log Format Reference.

  • Azure Portal を使用します。Use the Azure portal. 関連するデータベースを開きます。Open the relevant database. データベースの [監査] ページの上部にある [監査ログの表示] をクリックします。At the top of the database's Auditing page, click View audit logs.

    ナビゲーション ウィンドウ

    [監査レコード] が開きます。ここからログを参照できます。Audit records opens, from which you'll be able to view the logs.

    • [監査レコード] ページの上部にある [フィルター] をクリックすると、特定の日付を表示できます。You can view specific dates by clicking Filter at the top of the Audit records page.
    • [監査対象] を切り替えると、"サーバー監視ポリシー" で作成された監査レコードと "データベース監査ポリシー" で作成された監査レコードを切り替えることができます。You can switch between audit records that were created by the server audit policy and the database audit policy by toggling Audit Source.
    • [Show only audit records for SQL injections](SQL インジェクションの監査レコードのみを表示する) チェックボックスをオンにすると、SQL インジェクション関連の監査レコードのみを表示できます。You can view only SQL injection related audit records by checking Show only audit records for SQL injections checkbox.

      ナビゲーション ウィンドウ

  • システム関数 sys.fn_get_audit_file (T-SQL) を使用して、表形式で監査ログ データを返します。Use the system function sys.fn_get_audit_file (T-SQL) to return the audit log data in tabular format. この関数の使用方法の詳細については、sys.fn_get_audit_file に関するページをご覧ください。For more information on using this function, see sys.fn_get_audit_file.

  • SQL Server Management Studio (SSMS 17 以降) で [監査ファイルの統合] を使用します。Use Merge Audit Files in SQL Server Management Studio (starting with SSMS 17):

    1. SSMS のメニューから、[ファイル] > [開く] > [監査ファイルの統合] を選択します。From the SSMS menu, select File > Open > Merge Audit Files.

      ナビゲーション ウィンドウ

    2. [監査ファイルの追加] ダイアログ ボックスが表示されます。The Add Audit Files dialog box opens. [追加] オプションのいずれかを選択して、ローカル ディスクから監査ファイルをマージするか、Azure Storage からインポートするかを選択します。Select one of the Add options to choose whether to merge audit files from a local disk or import them from Azure Storage. Microsoft Azure Storage の詳細とアカウント キーを提供する必要があります。You are required to provide your Azure Storage details and account key.

    3. 統合するすべてのファイルを追加した後に、[OK] をクリックして統合の操作を完了します。After all files to merge have been added, click OK to complete the merge operation.

    4. 統合されたファイルを SSMS で開くと、ファイルを表示および分析し、XEL または CSV ファイルまたはテーブルにエクスポートすることができます。The merged file opens in SSMS, where you can view and analyze it, as well as export it to an XEL or CSV file, or to a table.

  • Power BI を使用します。Use Power BI. Power BI で監査ログのデータを表示および分析できます。You can view and analyze audit log data in Power BI. ダウンロード可能なテンプレートの詳細、およびテンプレートへのにアクセスについては、Power BI での監査ログ データの分析に関するページをご覧ください。For more information and to access a downloadable template, see Analyzie audit log data in Power BI.

  • ポータル経由で、あるいは Azure ストレージ エクスプローラーなどのツールを利用して Azure Storage BLOB コンテナーからログ ファイルをダウンロードします。Download log files from your Azure Storage blob container via the portal or by using a tool such as Azure Storage Explorer.

    • ログ ファイルをローカルでダウンロードした後に、ファイルをダブルクリックし、SSMS でログを開き、表示し、分析します。After you have downloaded a log file locally, double-click the file to open, view, and analyze the logs in SSMS.
    • また、Azure ストレージ エクスプ ローラーを使用して、同時に複数のファイルをダウンロードすることもできます。You can also download multiple files simultaneously via Azure Storage Explorer. それには、特定のサブフォルダーを右クリックし、[名前を付けて保存] を選択してローカル フォルダーに保存します。To do so, right-click a specific subfolder and select Save as to save in a local folder.
  • 他の方法:Additional methods:

    • 複数のファイルまたはログ ファイルが含まれるサブフォルダーをダウンロードした後、前述の SSMS 監査ファイルの統合の指示に従って、ローカルでマージすることができます。After downloading several files or a subfolder that contains log files, you can merge them locally as described in the SSMS Merge Audit Files instructions described previously.
    • BLOB 監査ログをプログラムで表示します。View blob auditing logs programmatically:

運用方法Production practices

geo レプリケーション対応データベースの監査Auditing geo-replicated databases

Geo レプリケーション データベースでは、プライマリ データベースの監査を有効にすると、セカンダリ データベースにも同一の監査ポリシーが適用されます。With geo-replicated databases, when you enable auditing on the primary database the secondary database will have an identical auditing policy. プライマリ データベースとは別にセカンダリ サーバーで監査を有効にすることで、セカンダリ データベースに対する監査を設定することもできます。It is also possible to set up auditing on the secondary database by enabling auditing on the secondary server, independently from the primary database.

  • サーバーレベル (推奨): プライマリ サーバーセカンダリ サーバーの両方で監査を有効にします。プライマリ データベースとセカンダリ データベースは、それぞれのサーバーレベル ポリシーに基づいて個別に監査されます。Server-level (recommended): Turn on auditing on both the primary server as well as the secondary server - the primary and secondary databases will each be audited independently based on their respective server-level policy.
  • データベースレベル: セカンダリ データベースのデータベースレベルの監査は、プライマリ データベースの監査設定から構成する必要があります。Database-level: Database-level auditing for secondary databases can only be configured from Primary database auditing settings.

    • 監査は、サーバーではなく "プライマリ データベース自体" で有効にする必要があります。Auditing must be enabled on the primary database itself, not the server.
    • プライマリ データベースで監査を有効にすると、セカンダリ データベースでも有効になります。After auditing is enabled on the primary database, it will also become enabled on the secondary database.

      重要

      データベースレベルの監査では、セカンダリ データベースのストレージ設定はプライマリ データベースと同じになるため、リージョンをまたいだトラフィックが発生します。With database-level auditing, the storage settings for the secondary database will be identical to those of the primary database, causing cross-regional traffic. サーバー レベルの監査のみを有効にし、すべてのデータベースでデータベース レベルの監査を無効なままにしておくことをお勧めします。We recommend that you enable only server-level auditing, and leave the database-level auditing disabled for all databases.

ストレージ キーの再生成Storage key regeneration

運用環境では、ストレージ キーを最新の情報に定期的に更新することが推奨されます。In production, you are likely to refresh your storage keys periodically. 監査ログを Azure Storage に書き込む場合、ご自身のキーを最新の情報に更新するときに、お使いの監査ポリシーを再度保存する必要があります。When writing audit logs to Azure storage, you need to resave your auditing policy when refreshing your keys. このプロセスは次のとおりです。The process is as follows:

  1. [容量の詳細] を開きます。Open Storage Details. [ストレージ アクセス キー] ボックスで [セカンダリ] をクリックし、[OK] をクリックします。In the Storage Access Key box, select Secondary, and click OK. 次に、監査構成ページの上部にある [保存] をクリックします。Then click Save at the top of the auditing configuration page.

    ナビゲーション ウィンドウ

  2. ストレージ構成ページに移動し、プライマリ アクセス キーを再生成します。Go to the storage configuration page and regenerate the primary access key.

    ナビゲーション ウィンドウ

  3. 監査構成ページに戻り、[ストレージ アクセス キー] を [セカンダリ] から [プライマリ] に切り替え、[OK] をクリックします。Go back to the auditing configuration page, switch the storage access key from secondary to primary, and then click OK. 次に、監査構成ページの上部にある [保存] をクリックします。Then click Save at the top of the auditing configuration page.
  4. ストレージ構成ページに戻り、セカンダリ アクセス キーを (次のキー更新サイクルの準備として) 再生成します。Go back to the storage configuration page and regenerate the secondary access key (in preparation for the next key's refresh cycle).

追加情報Additional Information

  • ログの形式、ストレージ フォルダーの階層、および命名規則の詳細については、BLOB 監査ログ形式のリファレンスに関するドキュメントを参照してください。For details about the log format, hierarchy of the storage folder and naming conventions, see the Blob Audit Log Format Reference.

    重要

    Azure SQL Database Audit では、監査レコードの文字列フィールドに 4,000 文字のデータを格納します。Azure SQL Database Audit stores 4000 characters of data for character fields in an audit record. 監査可能なアクションから返された、statement または data_sensitivity_information 値に 4,000 を超える文字が含まれる場合、最初の 4,000 文字以降のすべてのデータは、切り捨てられ、監査されませんWhen the statement or the data_sensitivity_information values returned from an auditable action contain more than 4000 characters, any data beyond the first 4000 characters will be truncated and not audited.

  • 監査ログは Azure サブスクリプションの Azure Blob Storage 内にある追加 BLOB に書き込まれます。Audit logs are written to Append Blobs in an Azure Blob storage on your Azure subscription:

    • Premium Storage は現在、追加 BLOB ではサポートされていませんPremium Storage is currently not supported by Append Blobs.
    • VNet 内の Storage は現在サポートされていませんStorage in VNet is currently not supported.
  • 既定の監査ポリシーには、すべてのアクションと次のアクション グループのセットが含まれます。これは、データベースに対して実行されたすべてのクエリとストアド プロシージャに加えて、成功および失敗したログインを監査します。The default auditing policy includes all actions and the following set of action groups, which will audit all the queries and stored procedures executed against the database, as well as successful and failed logins:

    BATCH_COMPLETED_GROUPBATCH_COMPLETED_GROUP
    SUCCESSFUL_DATABASE_AUTHENTICATION_GROUPSUCCESSFUL_DATABASE_AUTHENTICATION_GROUP
    FAILED_DATABASE_AUTHENTICATION_GROUPFAILED_DATABASE_AUTHENTICATION_GROUP

    Azure PowerShell を使用して SQL Database の監査を管理する」セクションで説明されているように、PowerShell を使用してさまざまな種類のアクションおよびアクション グループの監査を構成することができます。You can configure auditing for different types of actions and action groups using PowerShell, as described in the Manage SQL database auditing using Azure PowerShell section.

  • AAD 認証を使用している場合、失敗したログインのレコードは SQL 監査ログに表示 "されません"。When using AAD Authentication, failed logins records will not appear in the SQL audit log. 失敗したログインの監査レコードを表示するには、これらのイベントの詳細をログに記録している Azure Active Directory ポータルにアクセスする必要があります。To view failed login audit records, you need to visit the Azure Active Directory portal, which logs details of these events.

Azure PowerShell を使用して SQL Database の監査を管理するManage SQL database auditing using Azure PowerShell

PowerShell コマンドレット:PowerShell cmdlets:

スクリプトの例については、PowerShell を使用した監査と脅威検出の構成に関するページを参照してください。For a script example, see Configure auditing and threat detection using PowerShell.

REST API を使用して SQL Database の監査を管理するManage SQL database auditing using REST API

REST API - BLOB 監査:REST API - Blob auditing:

WHERE 句のサポートによってフィルタリングを強化した拡張ポリシー:Extended policy with WHERE clause support for additional filtering: