Suchen Sie unter welchem ​​Konto der SQL Server-Dienst BACKUP ausführt

7

Unser DBA ist ausgefallen und ich versuche, unsere (Remote-) Entwicklerdatenbank auf einem UNC-Pfad zu sichern. Ich führe den Sicherungsvorgang aus, während ich als bestimmtes Windows-Domänenkonto bei Management Studio angemeldet bin (z CORP\myUser. B. ). Ich habe überprüft, ob dieses Domänenkonto über die vollständigen Kontrollrechte für den UNC-Pfad verfügt \\nameOfMachine\backup\.

Wenn ich versuche, folgendes auszuführen als CORP\myUser

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

Ich erhalte den Fehler

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

Dies scheint darauf hinzudeuten, dass das Konto, mit dem SQL Server den Sicherungsbefehl ausführt, keine Rechte für diesen UNC-Pfad hat.

Ich habe keine Möglichkeit, RDP an den dev-Datenbankserver zu senden und herauszufinden, mit welchem ​​Konto SQL Server den obigen Sicherungsbefehl ausführt. Gibt es eine Möglichkeit, dies in Management Studio mithilfe einer dynamischen Verwaltungsansicht herauszufinden?

T. Webster
quelle
1
Versuchen Sie dies, um das SQL Server-Dienstkonto zu finden: Wählen Sie unter sys.dm_server_services Dienstname, Starttyp_desc, Dienstkonto aus.
Donger
1
Führen Sie dies aus, um herauszufinden, was Sie zuerst haben: SELECT * FROM fn_my_permissions (NULL, 'SERVER');
Donger
Würden Sie versuchen, Arthurs Vorschlag auf ein lokales Laufwerk zu sichern und dann auf die Netzwerkfreigabe zu kopieren? Anstatt zu versuchen, das Dienstkonto mit all diesen Problemen herauszufinden.
Donger
1
Ihr Konto kann nicht, aber das SQL Server-Dienstkonto sollte in der Lage sein, auf lokalen Laufwerken zu sichern. Danach müssen Sie noch ein Konto mit Zugriff finden, um die Dateien zu kopieren.
Donger
@donger das ist , warum ich die Sicherung auf eine UNC - Freigabe , dass mein Konto hat Zugriff hat.
T. Webster

Antworten:

4

Haben Sie die Möglichkeit, einen Ordner auf Ihrem lokalen Computer zu erstellen und eine Freigabe dafür zu erstellen und allen die volle Berechtigung zu erteilen und dann auf diese Freigabe zu sichern? - Sie haben nicht angegeben, wie groß das Backup sein könnte

Scott Hodgin
quelle
Du könntest das tun. Wenn Sie über Administratorrechte für die UNC-Freigabe verfügen, können Sie alternativ "Jedem" Lese- / Schreibzugriff auf die Freigabe gewähren, bis die Sicherung kopiert wird.
Gary
@Scott, ich habe Ihre Antwort +1 gutgeschrieben, weil es eine anständige Möglichkeit ist, das Problem leicht zu lösen, aber ich habe die tatsächliche Lösung veröffentlicht, die ich gefunden habe.
T. Webster
4

Wenn Sie eine BACKUP-Abfrage unter einem bestimmten Windows / SQL Server-Konto ausführen, ist es tatsächlich das SQL Server-Agent-Konto, das das BACKUP "ausführt" und vollständige Kontrollberechtigungen für den UNC-Pfad benötigt. Sie müssen also zulassen können, dass dieses Konto (oder jeder Benutzer) über die vollständigen Kontrollberechtigungen für diesen Pfad verfügt. Um herauszufinden, unter welchem ​​Konto SQL Server Agent ausgeführt wird, fragen Sie sys.dm_server_services ab . Es erfordert, dass Sie (oder eine andere Person) über die Berechtigung VIEW SERVER STATE auf dem Server verfügen.

T. Webster
quelle