- 印刷する
SQL Serverの前提条件
- 印刷する
SQL Serverには、以下の前提条件があります。
※ID管理が〇になっている項目は、ID管理の機能の制約になります。ログが〇になっている項目は、アクセスログ管理のログ自動収集機能、または、ログ自動収集機能で収集したアクセスログ(ログインログ・ログアウトログ・suログ・ログイン失敗ログ)で出力するレポートの制約になります。
No | 条件 | 対象機能 | |
ID | ログ | ||
1 | SQL Serverの接続はSQL Server認証で接続可能な事。 | 〇 | - |
2 | iDoperationでは、ログインユーザー、包含ユーザーいずれかの管理を行う事が出来ます。 〇ログインユーザー | 〇 | - |
3 | iDoperation Cloudに対象データベースのサービスポートが開放されリモートからアクセス出来る事。 | 〇 | - |
4 | ID管理用のアカウントとして、接続可能なsaアカウント、もしくはSQL Server認証で接続出来る以下の権限(*1)を保有しているアカウントを用意する事。 | 〇 | - |
SQL Serverが動作しているOSがターゲットとして登録されている事。 | - | 〇 | |
6 | SQL Serverが動作しているOSが、Windowsサーバの前提条件『Windows系ターゲットの前提条件』のログ収集の条件を満たしている事。 | - | 〇 |
7 | ログ収集対象のログの設定は、以下の監査アクションを設定し、Windowsイベントログ(アプリケーション)に出力されている事。 〇ログインユーザーを管理する場合の監査アクション 〇包含ユーザーを管理する場合の監査アクション | - | 〇 |
8 | Windowsイベントログ(アプリケーション)のローテート設定が下記どちらかの条件を満たしている事。
※Windows Server 2019 / Windows 10で「イベントを上書きしないでログをアーカイブする」の設定をした場合に、イベントログが「最大ログサイズ」になってもアーカイブされず、新たなイベントログが記録されないという事象が確認されています。該当のOSで「イベントを上書きしないでログをアーカイブする」の設定をした場合は、正常にイベントログがアーカイブされる事を確認してください。 | - | 〇 |
9 | Windowsイベントログ(アプリケーション)のローテート設定が「必要に応じてイベントを上書きする(最も古いイベントから)」になっている場合は、下記の設定になっている事。
| - | 〇 |
10 | Windows イベントログ(アプリケーション)のローテート設定が「イベントを上書きしないでログをアーカイブする」になっている場合は、下記の設定になっている事。
| - | 〇 |
11 | 冗長構成されたSQL Serverを管理対象とする場合は下記を満たしている事。
| 〇 | 〇 |
12 | 冗長化されたActive Directory環境にSQL ServerをAlwaysOn環境で構築している場合は、Active Directoryの全ノードにSQL Serverの全ノードが構築されている事。 | - | 〇 |
管理対象のログ出力設定
SQL Server監査ログをWindowsイベントログ(アプリケーション)に出力する設定を行います。
本手順ではMicrosoft SQL Server Management Studioを例に説明します。
Microsoft SQL Server Management Studio画面説明
本手順で使用する、Microsoft SQL Server Management Studioのクエリ画面について説明します。
各操作ボタンを表示するエリアです。
No | 条件 |
1 | メニューやボタンです。 |
2 | クエリを入力する画面です。 |
3 | クエリの実行結果を表示します。 |
設定確認方法
SQL Serverの監査ログ出力設定を確認します。
1.Microsoft SQL Server Management Studioを起動し、対象のインスタンスに接続します。
Microsoft SQL Server Management Studioがインスタンスに接続します。
2.「新しいクエリ」をクリックし、クエリ画面を表示させます。
3.クエリ画面に、以下のクエリを入力します。
select * from sys.server_audits; |
4.「実行」をクリックし、クエリを実行します。
5.結果画面にある「結果」タブを開き、監査設定の有無を確認します。クエリの実行結果から、type_desc列を確認し、「APPLICATION LOG」、「SECURITY LOG」に設定されているものが存在するか確認します。
監査ログ出力設定がされている場合、「APPLICATION LOG」、「SECURITY LOG」それぞれの<name>、<audit_guid>の値を控えてください。
メモ欄
APPLICATION LOGのname | [ ] |
APPLICATION LOGのaudit_guid | [ ] |
SECURITY LOGのname | [ ] |
SECURITY LOGのaudit_guid | [ ] |
6.手順5で確認した「APPLICATION LOG」、「SECURITY LOG」の有無に応じた、監査ログ設定を行います。
No | APPLICATION LOG 設定の有無 | SECURITY LOG 設定の有無 | 必要となる事前設定 |
1 | 〇 | 〇 | |
2 | 〇 | × | |
3 | × | 〇 | |
4 | × | × |
※APPLICATION LOGの行はWindows イベントログ(アプリケーション)へ監査ログを出力する設定の有無を示します。
行がない場合には設定を追加し、行がある場合には必要な設定を満たすよう設定確認と変更を行います。
※SECURITY LOGの行はWindows イベントログ(セキュリティ)へ監査ログを出力する設定の有無を示します。
設定がある場合には、iDoperationの監査で利用する情報をWindowsイベントログ(アプリケーション)へ出力するよう、設定変更を行います。
Windowsイベントログ(アプリケーション)への監査ログ出力設定
Windowsイベントログ(アプリケーション)へ監査ログを出力する設定を行います。
Microsoft SQL Server Management Studioで設定を行います。
1.監査オブジェクトを作成します。「新しいクエリ」をクリックし、クエリ画面を表示させます。
2.クエリ画面に以下のクエリを入力します。
<監査名>を任意で指定してください。
CREATE SERVER AUDIT <監査名> |
クエリ例(「Audit_iDoperation」という監査名で作成する。):
CREATE SERVER AUDIT Audit_iDoperation |
3.「実行」をクリックし、クエリを実行します。
4.「クエリが正常に実行されました」というメッセージが出力される事を確認します。
5.作成した監査オブジェクトを確認します。「新しいクエリ」をクリックし、クエリ画面を表示させます。
6.クエリ画面に以下のクエリを入力し、実行します。
手順2で指定した<監査名>を入力します。
select * from sys.server_audits where name='<監査名>'; |
クエリ例(手順2 で指定した、「Audit_iDoperation」という監査名の確認を行う):
select * from sys.server_audits where name='Audit_iDoperation'; |
7.「実行」をクリックし、クエリを実行します。
8.監査オブジェクトが作成され、type_desc列が「APPLICATION LOG」になっている事を確認し、「クエリが正常に実行されました」というメッセージが出力される事を確認します。
9.作成した監査オブジェクトに監査対象とするアクションを設定します。「新しいクエリ」をクリックし、クエリ画面を表示させます。
10.クエリ画面に以下のクエリを入力します。
手順2で指定した<監査名>を入力し、<監査仕様名>を任意で指定してください。
〇ログインユーザーを管理する場合 〇包含ユーザーを管理する場合 |
クエリ例(「Audit_Specification_iDoperation」という監査仕様名で作成する。)
〇ログインユーザーを管理する場合 〇包含ユーザーを管理する場合 |
11.「実行」をクリックし、クエリを実行します。
12.「クエリが正常に実行されました」というメッセージが出力される事を確認します。
13.「新しいクエリ」をクリックし、クエリ画面を表示させます。
14.クエリ画面に以下のクエリを入力します。
手順10で指定した<監査仕様名>を入力します。
select * from sys.server_audit_specifications where name='<監査仕様名>'; |
クエリ例(手順10で指定した、Audit_Specification_iDoperation」という監査仕様名の確認を行う):
select * from sys.server_audit_specifications where name='Audit_Specification_iDoperation'; |
15.「実行」をクリックします。
16.サーバ監査の仕様が作成されている事を確認します。<server_specification_id>の値を控えてください。
メモ欄
server_specification_id | [ ] |
17.「新しいクエリ」をクリックし、クエリ画面を表示させます。
18.クエリ画面に以下のクエリを入力します。
<server_specification_id>は手順16で控えた値です。
select * from sys.server_audit_specification_details where server_specification_id='<server_specification_id>'; |
19.「実行」をクリックし、クエリを実行します。
20.以下の監査のアクションが設定されている事を確認します。
No | 設定対象 | 監査アクション |
1 | ログインユーザー | SUCCESSFUL_LOGIN_GROUP |
2 | 包含ユーザー | SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP |
以上で、SQL Serverの監査設定を追加する手順は完了です。
※現在の設定ではSQL Serverのすべてのユーザを対象に監査ログが出力されるため、ログが大量に出力されることがあります。
監査ログを出力するユーザを絞り込む場合には、『SQL Serverの監査ログを特定のユーザのみ出力する』の手順を実施してください。
Windowsイベントログ(アプリケーション)への監査ログ追加
Windowsイベントログ(アプリケーション)へ出力する監査設定に、以下の監査アクションを追加します。
No | 設定対象 | 監査アクション |
1 | ログインユーザー | SUCCESSFUL_LOGIN_GROUP |
2 | 包含ユーザー | SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP |
Microsoft SQL Server Management Studioにログインしてください。
1.「新しいクエリ」をクリックし、クエリ画面を表示させます。
2.クエリ画面に以下のクエリを入力します。
<audit_guid>は『設定確認方法』の手順5で控えた値(APPLICATION LOGのaudit_guid)です。
select * from sys.server_audit_specifications where audit_guid='<audit_guid>'; |
3.「実行」をクリックし、クエリを実行します。
4.「クエリが正常に実行されました」というメッセージが出力される事を確認します。
また、結果画面の<server_specification_id>、<name>の値を控えておいてください。
メモ欄
server_specification_id | [ ] |
name | [ ] |
5.「新しいクエリ」をクリックし、クエリ画面を表示させます。
6.クエリ画面に以下のクエリを入力します。
<server_specification_id>は手順4で控えた値です。
select * from sys.server_audit_specification_details where server_specification_id='<server_specification_id>'; |
7.「実行」をクリックします。
8.以下の監査アクション<audit_action_name>が定義されている事を確認します。
No | 設定対象 | 監査アクション |
1 | ログインユーザー | SUCCESSFUL_LOGIN_GROUP |
2 | 包含ユーザー | SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP |
設定対象の監査アクションが定義されている場合は、監査アクションの追加設定は必要ありません。
定義されていない場合は、設定が必要です。手順9へ進んでください。
9.既存の「サーバ監査仕様」設定に監査アクションを追加します。「新しいクエリ」をクリックし、クエリ画面を表示させます。
10.クエリ画面に以下のクエリを入力し、実行します。
<name 1>は手順4で控えた値です。
<name 2>は『設定確認方法』の手順5で控えた値(APPLICATION LOGのname)です。
〇ログインユーザーを管理する場合 〇包含ユーザーを管理する場合 |
11.「実行」をクリックします。
以上で、SQL Serverの監査設定を変更する手順は完了です。
※現在の設定ではSQL Serverのすべてのユーザを対象に監査ログが出力されるため、ログが大量に出力されることがあります。
監査ログを出力するユーザを絞り込む場合には、『SQL Serverの監査ログを特定のユーザのみ出力する』の手順を実施してください。
Windowsイベントログ(セキュリティ)の監査ログ削除
Windowsイベントログ(セキュリティ)へ出力する監査設定から、以下の監査アクションを削除します。
No | 設定対象 | 監査アクション |
1 | ログインユーザー | SUCCESSFUL_LOGIN_GROUP |
2 | 包含ユーザー | SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP |
Microsoft SQL Server Management Studioにログインしてください。
1.「新しいクエリ」をクリックし、クエリ画面を表示させます。
2.クエリ画面に以下のクエリを入力し、実行します。
<audit_guid>は『設定確認方法』の手順5で控えた値「SECURITY LOGのaudit_guid」です。
select * from sys.server_audit_specifications where audit_guid='<audit_guid>'; |
3.「実行」をクリックし、クエリを実行します。
4.「クエリが正常に実行されました」というメッセージが出力される事を確認します。
また、結果画面の<server_specification_id><name>の値を控えておいてください。
メモ欄
server_specification_id | [ ] |
name | [ ] |
5.「新しいクエリ」をクリックし、クエリ画面を表示させます。
6.クエリ画面に以下のクエリを入力します。
<server_specification_id>は手順4で控えた値です。
select * from sys.server_audit_specification_details where server_specification_id='<server_specification_id>'; |
7.「実行」をクリックし、クエリを実行します。
8.以下の監査アクション<audit_action_name>が定義されていない事を確認します。
No | 設定対象 | 監査アクション |
1 | ログインユーザー | SUCCESSFUL_LOGIN_GROUP |
2 | 包含ユーザー | SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP |
上記3つの監査アクションが定義されている場合は、該当する監査アクションを削除します。手順9へ進んでください。
定義されていない場合は、監査アクションの削除は必要ありません。
9.既存の「サーバ監査仕様」設定から監査アクションを削除します。「新しいクエリ」をクリックし、クエリ画面を表示させます。
10.クエリ画面から、以下のクエリを入力します。
<name 1>は手順4で控えた値です。
<name 2>は『設定確認方法』の手順5で控えた値「SECURITY LOGのname」です。
〇ログインユーザーを管理する場合 〇包含ユーザーを管理する場合 |
11.「実行」をクリックします。
以上で、SQL Serverの監査設定を変更する手順は完了です。
SQL Serverの監査ログを特定のユーザのみ出力する
SQL Serverのログイン/ログアウトの監査ログを特定のユーザのみ出力する設定を行います。
1.特定のユーザを指定するSQL条件式を作成します。
[server_principal_name]を比較演算子「=」で指定します。
<出力するユーザ名>を任意で指定してください。
[server_principal_name]='<出力するユーザ名>' |
※この条件式で使用できる演算子は、AND、OR、NOT演算子のみです。
※複数の条件を組み合わせるときは、AND、OR演算子を使用します。
※指定した条件に一致しないレコードを指定したい場合は、NOT演算子で条件を否定します。
例(「sa」または「admin」ユーザのみを出力する場合):
[server_principal_name]='sa' OR [server_principal_name]='admin' |
例(「NT AUTHORITY\SYSTEM」と「インスタンス名で指定したSQL Serverインスタンスのサービスアカウント」を出力しない場合):
NOT([server_principal_name]='NT AUTHORITY\SYSTEM' OR [server_principal_name]='NT SERVICE\MSSQL$インスタンス名') |
2.「新しいクエリ」をクリックし、クエリ画面を表示させます。
3.クエリ画面に以下のクエリを入力し、実行します。
<監査名>にはログイン/ログアウトのログを出力の監査設定名を入力してください。<出力するユーザ名>は手順1で作成したSQL条件式です。
ALTER SERVER AUDIT <監査名> WITH (STATE = OFF) |
クエリ例(「Audit_iDoperation」という監査名で作成する。):
ALTER SERVER AUDIT Audit_iDoperation WITH (STATE = OFF) |
4.設定した条件で監査ログが出力されていることをイベントビューアから確認します。
以上で、SQL Serverの監査ログを特定のユーザのみ出力する手順は完了です。