web-dev-qa-db-ja.com

SQLSERVERAGENT仮想アカウントへのファイルシステムアクセスの付与

NT Service\SQLSERVERAGENTこの質問 のマークされた回答に基づくWindowsアカウントファイルシステムアクセス。これは仮想サービスアカウントであると思いますが、コントロールパネル->ユーザーアカウント領域には表示されません。

このサービスアカウントにファイルシステムへのアクセスを許可するにはどうすればよいですか?具体的には、Windows 7。

私はいくつかのアプローチを読みましたが、どれも私の選択肢ではないようです。 PowerShellアプローチを試しましたが、ADコマンドは有効なコマンドではありませんでした。これらのコマンドに必要なWindowsパッチをダウンロードしてインストールしました。また、SQL Server構成マネージャーまたはManagement Studioを使用してこれを実行できるはずであると読みました。ただし、これらの権限をどこで調整するのかわからないようです。

SQL Serverエージェントプロセスが開始に失敗し、次のエラーメッセージが表示されます。

Login failed for user 'NT SERVICE\SQLSERVERAGENT'.  
Reason: Failed to open the explicitly specified database 'msdb'.  
[CLIENT: <local machine>]

私のグーグルに基づいて、それはこのアカウントの権限に関係しています。

データベースが破損しているかどうかはわかりませんが、データベースがNormalステータスにあると表示されています。 SQL Serverエージェントのログインは、sysadminおよびpublicグループの一部です。

24
Ryan

質問に明確に答えるために、組み込みのSQL Serverエージェントアカウントにディスクアクセス権を与える方法を次に示します。しかし、私が本当の問題であると私が信じるものに答えるときに読んでください:

1.>ドライブを右クリックしてプロパティを選択し、[追加]ボタンをクリックしてSQLSERVERAGENTアカウントを入力します([この場所から]テキストボックスでドメインが選択されておらず、コンピューター名が選択されていることを確認してください)。

enter image description here

2.> [名前の確認]ボタンをクリックして、アカウントが有効であることを確認します。

enter image description here

3.>次に、必要なファイル権限をSQLSERVERAGENTアカウントに追加します。トラブルシューティングの目的で、フルコントロールを提供し、必要に応じて後で縮小することができます。

enter image description here

言われていること、おそらくmsdbについて私が見たコメントによると、SQL Server構成マネージャーを使用してSQLエージェントユーザーを再度追加する必要があるだけですとログイン。構成マネージャーは、Windowsサービスアプレットを使用するよりもSQL Serverに多くの変更を加えます。そのため、構成マネージャーを使用してSQLサービスを変更する必要があります。

これにより、Windowsサービス内でアカウントが変更され、サービスの起動が失敗した場合に問題が修正されます。 Configuration Manager内でリセットする必要があります。これにより、構成マネージャーはローカルサービスアカウント(NT SERVICE\SQLSERVERAGENT)のMSDBデータベースを管理するために必要な権限をSQL Serverに追加できますが、Windowsサービスアプレット内でアカウントを変更することはできません。

警告:2000より上のバージョンのSQL Server ExpressにはSQLエージェントが含まれていません。一部の機能は存在するように見えますが、製品のExpressバージョンでは使用できません。

まず、SQL Server構成マネージャーを開き、SQL ServerサービスでSQL Serverエージェントサービスをダブルクリックします。 [ビルトインアカウント]ラジオボタンを選択し、[ローカルサービス]を選択して、[適用]ボタンをクリックします。 重要:このアカウントが選択されていることが既に確認されている場合は、別のアカウントを選択して[適用]ボタンをクリックします。次に、それをローカルサービスに戻し、[適用]ボタンをクリックして、構成マネージャーがSQLエージェントサービスを開始するための正しいMSDBアクセス許可を追加できるようにします。次に、SQL Serverエージェントを再起動して、この新しい設定を反映します。

enter image description here

20
Sting

SQL ServerエージェントのログインアカウントをLocalSystemに設定することで、この問題を解決しました。

2
louis

私はイライラすることに同意します。どうやら、それは単に名前を入力するのと同じくらい簡単です。 http://zarez.net/?p=3187

概要:「NT SERVICE\MSSQLSERVER」と入力し、[名前の確認]をクリックしないで[OK]をクリックするだけで、SQLエージェントアカウントのフォルダー権限を設定できます。

2
VJason