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?
quelle
Antworten:
BACKUP
wird unter einem Identitätswechselkontext auf die UNC zugreifen. Dies ist eine Double-Hop-Situation und erfordert die Konfiguration der eingeschränkten Kerberos-Delegierung.Dies wird bereits unter /programming/18749224/restore-database-from-a-shared-folder beantwortet
quelle
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
quelle
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.
quelle