本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は「サービスへの権限付与と変更方法」について解説します。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で発生するトラブルについて、「なぜ起こったか」の理由を理解し、正しく対処するためのノウハウを紹介していきます。今回は、「“サービス起動アカウントに実行権限を付与する”と、何が変わるのか」について解説します。
一般的なサービスの管理は前回解説した「Windowsの管理ツール」で行います。SQL Serverには、それとは別に「SQL Server構成マネージャー」という管理ツールも用意されています。
SQL Server構成マネージャーからは、インスタンスの起動に関する情報を確認できます。例えば、「サービスの起動アカウント」の詳細は以下の通りです(図1)。
「ログオン」のタブから、SQL Serverを起動するアカウントを指定できます。ドメイン環境ではドメインで管理しているWindowsユーザーを指定することも可能です。
このアカウントに、どの権限を持たせるかによって、「SQL Serverの動き」が変わります。
今回は一例として、「メモリ内のページロック(Lock Pages in memory)」と「ボリュームの保守タスクを実行(Perform volume maintenance tasks)」の実行権限を適用してみましょう。
権限の割り当ては、「グループポリシー」または「ローカルセキュリティポリシー」から行います。ローカルセキュリティポリシーを設定する「ローカル グループポリシー エディター」は、「コントロールパネル」→「管理ツール」から、あるいは「ファイル名を指定して実行(Winキー+R)」→gpedit.mscで起動できます(図2)。
「ボリュームの保守タスク」「メモリ内のページロック」の項目にユーザーまたはグループを指定することで、実行権限を付与できます。設定におけるメリットとデメリットは以下の通りです。
ポリシー名 | 内容 | メリット | デメリット |
---|---|---|---|
メモリ内のページロック (Lock Pages in memory) |
SQL Serverのプロセスが確保する物理メモリを、OS側のページング要求があっても解放しない | ページングに関わるパフォーマンスの劣化を防ぐことができる | SQL Serverの確保するメモリの上限値を適切に設定する必要がある。メモリを確保したままになるので、他のプロセスへ影響が出る可能性がある |
ボリュームの保守タスクを実行 (Perform volume maintenance tasks) |
SQL Serverの既定動作である、ファイル作成/拡張時の「ゼロ埋め(空欄を「0」で埋める)」を行わない | ファイル拡張などの処理の高速化が期待できる | 万が一データファイルが漏えいしてしまった場合、ゼロ埋めしていないデータファイルに過去の情報が残ってしまう |
念のため、実行権限はWindowsのユーザーに対して付与されるので、反映にはSQL Serverの再起動が必要になります。いったんSQL Serverのサービスを停止することになりますので、本番環境では注意しましょう。再起動は、前述したSQL Server構成マネージャーから、「再起動」を選ぶと実施できます。
ユニアデックス株式会社所属。Microsoft MVP Data Platform(2011〜 )。OracleやSQL Serverなど商用データベースの重大障害や大型案件の設計構築、プリセールス、社内外の教育、新技術評価を行っていた。2016年4月よりIoTビジネス開発の担当となり、新しい仕事に奮闘中。ストレッチをして柔らかい身体を手に入れるのが当面の目標。
ユニアデックス株式会社所属。入社以来 SQL Serverの評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。SQL Serverのトラブル対応で社長賞の表彰を受けた経験も持つ。休日は学生時代の仲間と市民駅伝に参加し、銭湯で汗を流してから飲み会へと流れる。
Copyright © ITmedia, Inc. All Rights Reserved.