ドメイン参加後、SQL Serverが起動しなくなった(起動トラブル):SQL Serverトラブルシューティング(54)(1/2 ページ)
本連載は、「Microsoft SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で発生するトラブルについて、「なぜ起こったか」の理由とともに具体的な対処方法を紹介していきます。
トラブル 41(カテゴリー:起動トラブル):ドメイン参加後、SQL Serverが起動しなくなった
「Windows Server 2012 R2」上に「SQL Server 2016 RTM」をインストールした環境を想定して解説します。
トラブルの実例:新規でSQL Serverを採用したシステムを構築中。現地での実作業時間を短縮するために、事前に設置予定のサーバへSQL Serverをインストールしておき、現地へ運んでからドメインに参加させることにした。
現地でドメインに参加させ、初回の起動は完了した。しかしサーバを再起動すると、SQL Serverの起動段階でエラーが発生し、それ以降、SQL Serverが起動しなくなってしまった。
トラブルの原因を探る
今回はシステム構築時において、初回は正常に起動したのに、なぜか2回目からSQL Serverが起動しなくなってしまったトラブル事例です。
まずは、Windowsのイベントログを確認しましょう。Windowsイベントビューアーで、OSログの「システム」項目を確認すると、「エラー7000」が記録されていました(図1)。
この「エラー7000」には、「SQL Server (MSSQLSERVER) サービスを、次のエラーが原因で開始できませんでした: ログオンに失敗したため、サービスを開始できませんでした」と記載されていました。また、その直前のログ「エラー7041」にも、「MSSQLSERVER サービスで、現在構成されているパスワードで NT Service\MSSQLSERVER としてログオンできませんでした。次のエラーが原因です: ログオンの失敗: このユーザーには、要求されたログオンの種類がこのコンピューター上で許可されていません。サービス アカウントに、必要なユーザー権限である "サービスとしてログオン" がありません」と記載されていました(図2)。
これら2つのアラートログから、SQL Serverの起動アカウントである「NT Service\MSSQLSERVER」にサービスとしてログオンする権限がなかったために、サービスを起動できなかったと推定できます。
SQL Serverをインストールすれば、原則としてそのシステムでの起動に必要な権限も自動的に付与されます(*1)。アラートログにあった「サービスとしてログオン」の権限も自動で付与される権限の1つです(図3)。
では今回の事例では、なぜその必要な権限が付与されていなかったのでしょう。実は、前もってインストール作業したサーバは、適当なワークグループ環境のネットワーク下で行われていました。
サーバを新たにドメインに参加させる場合、ドメインで設定したポリシーが既に存在する場合には「既存のポリシーが上書き」されます。もっとも、既定の作業においてはサービスとしてログオンのポリシーが未定義であるために、ドメインに参加したとしてもポリシーが上書きされることはありません。しかし今回の場合は、サービスとしてログオンのポリシーが事前作業によって既に定義されていました。このことから、ドメインに参加したマシンに対して権限の足りないポリシーが適用されてしまったことになります(図4)。
なお「最初だけ」起動したのは、ドメイン参加後の最初の起動において、“ドメインのポリシーが適用される前”にSQL Serverが起動したためと推定されます。しかしどちらにせよ、ドメインのポリシーが適用された2回目以降の起動時には、そのポリシーにSQL Serverの起動アカウントが含まれていないことから、「起動できない」となってしまいます。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 「SQL Server 2016」に搭載される新たなセキュリティ対策を追う
パブリックプレビューが公開されているマイクロソフトのRDB次期版「SQL Server 2016」。特徴の1つとするセキュリティ対策機能のポイントと目指すところをキーパーソンに聞いた。 - そもそも、リレーショナルデータベースとは何か?
データベースを基礎から勉強し理解を深めていくことは簡単なことではありません。本連載では、データベースに対するハードルを少しでも低くするために、初心者の方に必要なデータベースの基本から、障害対策やチューニングといった実践に即した内容までを幅広く解説していきます。今回は、データベースの役割と、それを管理するソフトウェアであるDBMSの基本機能について解説します。【更新】 - データの登録を行うINSERT文
- 複数の条件を指定してSELECT文を実行する
前回は、SELECT文の初歩の初歩を解説しました。今回は、複数の条件を指定して、目的のデータを取り出す方法を解説します(編集部) - Oracle運用の基本「ログ」を理解しよう
本連載では、Oracle Database運用の鍵となるトラブル対処法について紹介していきます。第1回、第2回では情報収集の要となるログについて見ていきます。ログの出力情報は10gと11gとでは大きく異なる点がありますので、それぞれについても確認しておきましょう。