web-dev-qa-db-ja.com

SQL Serverサービスがバックアップを実行しているアカウントを見つける

私たちのDBAが不在で、私は(リモート)開発データベースをUNCパスにバックアップしようとしています。特定のWindowsドメインアカウント(CORP\myUserなど)としてManagement Studioにログインしているときに、バックアップ操作を実行しています。このドメインアカウントにUNCパス\\nameOfMachine\backup\のフルコントロール権限があることを確認しました。

次をCORP\myUserとして実行しようとすると

BACKUP DATABASE [DEV] TO  DISK = N'\\nameOfMachine\backup\dev.bak' WITH COPY_ONLY, INIT;

エラーが表示されます

Cannot open backup device '\\nameOfMachine\backup\dev.bak'. 
Operating system error 5(Access is denied.).

これは、SQL Serverがバックアップコマンドの実行に使用しているアカウントには、そのUNCパスに対する権限がないことを示しているようです。

開発データベースサーバーにRDPする方法がなく、SQL Serverが上記のバックアップコマンドを実行するために使用しているアカウントを確認できません。これをManagement Studioから見つける方法はありますか?動的管理ビュー?

7
T. Webster

特定のWindows/SQL ServerアカウントでBACKUPクエリを実行する場合、実際にはBACKUPを「実行」し、UNCパスへのフルコントロール権限が必要なのはSQL Serverエージェントアカウントです。したがって、そのアカウント(またはEveryone)にそのパスへのフルコントロールのアクセス許可を与えることができる必要があります。 SQL Serverエージェントを実行するアカウントを確認するには、クエリ sys.dm_server_services を実行します。ユーザー(または他の誰か)がサーバー上でVIEW SERVER STATE権限を持っている必要があります。

4
T. Webster

ローカルコンピューターにフォルダーを作成し、その上に共有を作成して、すべてのユーザーに完全な権限を付与してから、その共有にバックアップするオプションはありますか? -バックアップの大きさを指定しなかった

4
Scott Hodgin

BACKUPは偽装コンテキストでUNCにアクセスします。これは「ダブルホップ」の状況であり、Kerberosの制約付き委任を構成する必要があります。

これはすでに https://stackoverflow.com/questions/18749224/restore-database-from-a-shared-folder で回答されています

4
Remus Rusanu