2016-05-30 28 views
1

使用C#中的SMO Backup類進行SQL Server數據庫備份所需的用戶(SQL)角色是什麼?它使用Windows身份驗證嗎?使用SMO Backup類進行SQL Server數據庫備份所需的用戶(SQL)角色是什麼?

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); 

回答

1

爲了能夠運行BACKUP DATABASEBACKUP LOG用戶必須是sysadmin固定服務器角色成員和db_ownerdb_backupoperator固定數據庫角色。從MSDN

+0

是否有可能通過使用sql腳本或任何c#代碼沒有db_owner和sysadmin角色進行備份? – bill

+0

不,備份是一件微妙的事情,任何人都無法獲得這種東西。備份通常由'sa'運行。 – gofr1

+0

是的,它不是微妙的東西。但是有一個獨立的角色叫做「db_backupoperator」 – bill