사용자가 백업 만 복사하도록 제한


13

프로덕션 환경에서 로그 전달을 배포하려고합니다. 이것은 개발 환경을 새로 고치기 위해 백업을하는 사람들이 방해 할 수있는 백업 체인을 관리해야한다는 것을 의미합니다. 내가 실패하고 특정 시점으로 복원하기 위해 로그 백업을 사용하려는 경우 개발자가 수행 한 백업도 필요합니다.

개발자가 COPY ONLY 백업 만 사용한 경우에는 이런 일이 발생하지 않습니다. 그래서 내 질문은 : 사용자가 COPY 만 백업을 수행 할 수 없도록 제한하는 방법이 있습니까?

답변:


12

당신은 그들이 사용할 필요가 없습니다 COPY_ONLY. 중급자 만을 ( LOG BACKUPS를) 중단합니다 LSN. 할 수있는 일은 DENY BACKUP LOG to [user|group]개발자 또는 개발자 그룹에 대한 명시적인 권한입니다. 또는 ROLE을 작성하고 해당 역할에 대한 백업 로그를 거부하십시오. 따라서 해당 역할의 모든 사용자는 권한을 상속받습니다.

예 :

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.

2

좋은 답변을 찾을 수 없다는 좋은 질문이지만 여기에 있습니다. 모든 사용자가 백업 역할을 수행하지 못하게 한 다음 copy_only 백업 파일을 특정 위치로 삭제하는 특정 사용자에 대해 실행 명령을 사용하는 작업을 만든 경우 어떻게됩니까?


-1

당신이 할 수있는 일은 1) 그러한 사용자에 대한 백업 (로그 및 / 또는 전체)을 거부하지만 여전히 2) 특정 데이터베이스의 복사 전용 백업을 수행하는 작업을 시작할 수 있도록 허용합니다 (허가 된 계정으로 실행) 백업 권한). 조사 목적으로 데이터베이스의 PRO-PROD 자동 복원을 수행하기 위해 PROD를 자동화 할 수있는 솔루션이 있습니다. 특정 사용자는 PROD에서 복사 전용 백업을 수행하고 파일을 PROD에서 PRE-PROD로 이동 한 다음 PRE-PROD 서버에서 이동 된 백업을 복원하는 작업 (PRE-PROD)에 액세스 할 수 있습니다. 따라서 그러한 사용자가 PROD에서 백업 논리를 깰 수있는 방법이 없는지 확인하십시오.

(문제를 조사 할 때 개발자는 백업 논리를 깨뜨리지 않고 실제로 소스에서 테스트 서버로 파일을 이동하여 테스트 서버에서 파일을 복원하기 위해 전체 백업을 수행하려는 유혹을받을 수 있습니다. 백업 만 중요합니다.)


OP가 LSN을 차단하는 것과 관련되어 있기 때문에 copy_only를 사용한 전체 백업이 왜 필요한가요?
— Kin Shah

전체 백업을 수행 한 다음 파일을 옮기면 논리가 깨질 수 있습니다. 개발자가 파일을 개발 서버로 이동하면 다음 LOG 백업의 FirstLSN 값이 누락 된 FULL 백업의 CheckPointLSN과 일치합니다. 그런 다음 누락 된 파일없이 복원하는 방법은 무엇입니까?
— Benjamin RAIBAUD

전체 백업은 LSN을 재설정하지 않습니다. 로그 백업 만 수행합니다. 나는 당신이 물건을 섞고 있다고 생각합니다.
— Kin Shah

1
네, 맞습니다. 로그 백업 대신 diff 백업을 수행하는 경우 문제가됩니다. 그러면 완전히 이동하는 것이 위험합니다. 나는 것들을 섞고 있습니다. 감사합니다.
— Benjamin RAIBAUD
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.