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


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.