Jak zabezpieczyć skrypt TSQL przed wykonaniem na bazie produkcyjnej?


W przypadku gdy na jednym serwerze trzymamy zarówno bazę produkcyjną jak i testową powinniśmy skorzystać z funkcji DB_NAME(). Oczywiście sprawdzi się to jedynie w przypadku gdy baza produkcyjna będzie właściwie nazwana, np. DB_Produtction.

Na początku procedury, funkcji bądź innej instrukcji SQL powinien pojawić się blok decyzyjny - IF - w przypadku gdy funkcja DB_NAME() zwróci nazwę bazy produkcyjnej, skrypt powinien przerwać działanie.


Gdy kod nie ma się wykonywać na bazie produkcyjnej

IF DB_NAME() = 'DB_Production'
BEGIN
     PRINT '*** WARNING! Production Database detected! Execute has stopped***'
     RETURN
END

Gdy kod ma się wykonywać tylko na bazie produkcyjnej

IF DB_NAME() <> 'DB_Production'
BEGIN
     PRINT '*** WARNING! This is not Production Database***'
     RETURN
END

© 2024 - SkillsTest.pl | | Regulamin | Polityka Prywatnosci