Restricción de usuarios para COPIAR SOLO copias de seguridad

13

Estoy buscando implementar el envío de registros en mi entorno de producción. Esto significará que tendré que administrar cadenas de respaldo que podrían ser interrumpidas por personas que realizan respaldos para actualizar los entornos de desarrollo. Si tengo una falla y quiero usar las copias de seguridad de registros para restaurar a un punto en el tiempo, también necesitaré la copia de seguridad tomada por el desarrollador.

Esto no sucedería si los desarrolladores solo usaran copias de seguridad SOLO COPIA. Entonces mi pregunta es: ¿Hay alguna forma de restringir a los usuarios para que solo puedan realizar copias de seguridad SOLO COPIA?

James Anderson
fuente

Respuestas:

12

No es necesario que los usen COPY_ONLY. Solo un intermedio LOG BACKUPSromperá el LSN. Lo que puede hacer es explícitamente DENY BACKUP LOG to [user|group]privilegiar a los desarrolladores o al grupo de desarrolladores. Alternativamente, solo cree un PAPEL y denegue el registro de respaldo a ese rol. Por lo tanto, todos los usuarios en ese rol heredarán los permisos.

p.ej

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

Ahora pruébalo:

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.
Kin Shah
fuente
2

Buena pregunta para la que no puedo encontrar una buena respuesta, pero aquí hay una. ¿Qué sucede si eliminó a todos de tener el rol de copia de seguridad y luego creó una tarea que utilizaba el comando Ejecutar como para un usuario específico que coloca el archivo de copia de seguridad copy_only en una ubicación específica?

ACDBA
fuente
-1

Lo que puede hacer es 1) denegar copias de seguridad (de registro y / o completas) a dichos usuarios pero aún así 2) permitirles iniciar un trabajo que realice una copia de seguridad de solo copia de una base de datos específica (que se ejecuta bajo una cuenta que se otorga permiso de respaldo). Tengo una solución de este tipo para automatizar una restauración automática de bases de datos PROD a PRE-PROD para fines de investigación; usuarios específicos tienen acceso a un trabajo (en PRE-PROD) que realiza una copia de seguridad de solo copia en PROD, mueve el archivo de PROD a PRE-PROD y luego restaura la copia de seguridad movida en el servidor PRE-PROD. Por lo tanto, asegurarse de que dichos usuarios no tengan forma de romper la lógica de respaldo en PROD.

(Al investigar los problemas, los desarrolladores pueden verse tentados a realizar una copia de seguridad completa para restaurarla en un servidor de prueba moviendo el archivo desde el origen al servidor de prueba sin saber que están rompiendo la lógica de la copia de seguridad ... así que estoy de acuerdo en forzar la copia -solo las copias de seguridad son importantes.)

Benjamin RAIBAUD
fuente
¿Por qué le preocupa la copia de seguridad COMPLETA con copy_only ya que el OP solo se preocupa por romper los LSN?
Kin Shah
Bueno, tomar una copia de seguridad COMPLETA y luego alejar el archivo rompería la lógica, ¿verdad? Si un desarrollador hace eso, mueve el archivo a un servidor de desarrollo, entonces la próxima copia de seguridad de LOG tendrá su valor FirstLSN que coincida con CheckPointLSN de la copia de seguridad COMPLETA faltante. ¿Cómo restaurar luego sin el archivo faltante?
Benjamin RAIBAUD
Una copia de seguridad completa no restablece LSN. Solo lo hará una copia de seguridad de registro. Supongo que estás mezclando cosas.
Kin Shah
1
Oh sí, tienes razón. eso importaría si en lugar de las copias de seguridad de registros realice copias de seguridad de diferencias. Entonces mudarse completamente es arriesgado. Estoy mezclando las cosas, gracias.
Benjamin RAIBAUD