Sql-Server
限制使用者只複製備份
我希望在我的生產環境中部署日誌傳送。這意味著我將不得不管理備份鏈,這些備份鏈可能會因人們進行備份以刷新開發環境而中斷。如果我遇到故障並想使用日誌備份恢復到某個時間點,我還需要開發人員進行的備份。
如果開發人員僅使用 COPY ONLY 備份,則不會發生這種情況。所以我的問題是:有沒有辦法限制使用者只能執行 COPY ONLY 備份?
你不需要讓他們使用
COPY_ONLY
。只有一個中間人LOG BACKUPS
會打破LSN
. 您可以做的是明確DENY BACKUP LOG to [user|group]
授予開發人員或開發人員組的權限。或者,只需創建一個角色並拒絕該角色的備份日誌。因此,該角色中的所有使用者都將繼承權限。例如
USE test_kin GO CREATE ROLE [deny_log_backups] GO USE [test_kin] GO CREATE USER [Kin] FOR LOGIN [Kin] GO ALTER USER [Kin] WITH DEFAULT_SCHEMA=[dbo] GO use test_kin GO DENY BACKUP LOG TO [deny_log_backups] GO USE test_kin GO EXEC sp_addrolemember N'deny_log_backups', N'kin' GO
現在測試它:
backup database [test_kin] to disk = 'C:\crap_test\kin_test_full.bak' with compression, stats =10, init ---- ### success for FULL BACKUP backup log [test_kin] to disk = 'C:\crap_test\kin_test_log.log' --- $$$ ERROR MESSAGE Msg 262, Level 14, State 1, Line 3 BACKUP LOG permission denied in database 'test_kin'. Msg 3013, Level 16, State 1, Line 3 BACKUP LOG is terminating abnormally.