2016-05-30 21 views
1

Welche Rollen (SQL) des Benutzers werden benötigt, um eine SQL Server-Datenbanksicherung mit der SMO-Klasse Backup in C# zu erstellen, wie unten gezeigt? Verwendet es die Windows-Authentifizierung?Welche Rollen (SQL) des Benutzers werden benötigt, um die SQL Server-Datenbanksicherung mithilfe der SMO-Sicherungsklasse durchzuführen?

Server myServer = new Server(servername); 

Backup bkp = new Backup(); 
bkp.Action = BackupActionType.Database; 

Database myDatabase = myServer.Databases[database]; 

bkp.Database = myDatabase.Name; 
bkp.Devices.AddDevice(path, DeviceType.File); 
bkp.BackupSetName = string.Format("{0} database Backup", database); 
bkp.BackupSetDescription=string.Format("{0} database - Full Backup", database); 
bkp.Initialize = true; 

bkp.SqlBackup(myServer); 

Antwort

1

zu können BACKUP DATABASE und BACKUP LOG Benutzer ausführen müssen Mitglieder der sysadmin festen Serverrolle und die db_owner und db_backupoperator festen Datenbankrollen sein. Von MSDN

+0

Ist es möglich, Backup ohne db_owner und sysadmin Rollen mit SQL-Skript oder einem C# -Code zu nehmen? – bill

+0

Nein, Backups sind eine heikle Sache, jeder könnte keinen Zugriff auf solche Sachen haben. Die Backups werden normalerweise mit 'sa' ausgeführt. – gofr1

+0

Ja, es ist keine heikle Sache. Aber es gibt eine separate Rolle namens "db_backupoperator" – bill