web-dev-qa-db-ja.com

gMSAを使用してUNCパスにバックアップできない

Ola Hallengrenのバックアップスクリプト を使用してバックアップを自動化しようとしています。

私はこれをSQL Expressインスタンス2008 R2でテストしています(今日はEOLです)。ジョブをセットアップし、SQLCMDを使用してバッチスクリプトを実行するスケジュールされたタスクを作成しました。スケジュールされたタスクは gMSA として実行されています

バックアップしようとしているUNCパスに到達できないなんらかの理由を除いて、すべてがグルーヴィーに見える。私が得ているエラーは次のとおりです:

Msg 50000, Level 16, State 1, Server servername\instancename, Procedure DatabaseBackup, Line 878
The directory \\servername\sharename does not exist.

これは、gMSAが共有への適切なアクセス権を持たないか何かに関係している必要がありますが、私はこのアカウントに共有とNTFSレベル(絶望的)での完全なアクセスを明示的に許可しましたが、サイコロはありません。明らかに共有が存在し、他のアカウントを使用して問題なく接続できます。

誰かがgMSAでSQLサーバーを実行した経験があり、これに光を当てることができる人がいるなら、私はそれを大いに感謝します。

おかげで、

[〜#〜] update [〜#〜]-キックのためだけに、SQLサーバー上でsysadmin権限をサービスアカウントに与えましたが、現在は機能しています。私はなぜそれがファイル共有へのアクセスに関する問題を修正するのかわからないので、エラーは間違いなく誤解を招くものです。データベースのバックアップを実行するために必要な最低限の権限は何ですか?最初に、サービスアカウントに各データベースの「パブリック」サーバーロールと「db_backupoperator」を割り当てました。それ以上必要ですか?ここでのターゲットはleast priviledgeです。

ありがとう

2
PJRap986

ドキュメントで Ola Hallengren's solution を確認すると、「SQL Server Maintenance Solutionが機能するために必要な権限はどれですか?」に表示されます。以下:

  1. DatabaseBackup:sysadmin
  2. DatabaseIntegrityCheck:dbo.DatabaseIntegrityCheckのEXECUTE、dbo.CommandExecuteのVIEW DEFINITION、dbo.CommandLogのVIEW DEFINITION、VIEW SERVER STATE、すべてのターゲットデータベースのdb_owner
  3. IndexOptimize:dbo.IndexOptimizeでのEXECUTE、dbo.CommandExecuteでのVIEW DEFINITION、dbo.CommandLogでのVIEW DEFINITION、VIEW SERVER STATE、すべてのターゲットデータベースでのdb_owner

Sysadminが必要な理由は、ソリューションがxp_fileexistを使用してディレクトリの存在を確認するためであり、この拡張ストアドプロシージャにはsysadmin権限が必要であるためです。

通常、ジョブは、名前付きのサービスごとのsid NT SERVICE\SQLServerAgent(またはNT SERVICE\SQLAgent $instance_nameにデフォルトで付与されているsysadmin権限を持つSQLエージェントによって実行されます。インスタンス)。プロキシを使用してSQLエージェントでジョブを実行する場合、そのプロキシにはsysadminも必要です。説明したシナリオのように、他のスケジューラからプロシージャを実行するユーザーアカウントも必要です。

0
HandyD