Update AdHoc-Backup.ps1

This commit is contained in:
Mattia Tadini 2025-11-10 13:02:32 +00:00
parent b626f78b3a
commit f804849937

View File

@ -473,14 +473,15 @@ function Backup-SqlDatabases {
# --- PRE-FLIGHT: Concedi a NT AUTHORITY\SYSTEM il permesso server-level 'BACKUP ANY DATABASE' ---
try {
$sqlGrant = @'
USE master;
IF NOT EXISTS (SELECT 1 FROM sys.server_principals WHERE name = N'NT AUTHORITY\SYSTEM')
CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS;
GRANT BACKUP ANY DATABASE TO [NT AUTHORITY\SYSTEM];
'@
$sqlLines = @(
'USE master;'
"IF NOT EXISTS (SELECT 1 FROM sys.server_principals WHERE name = N'NT AUTHORITY\\SYSTEM')"
' CREATE LOGIN [NT AUTHORITY\SYSTEM] FROM WINDOWS;'
"GRANT BACKUP ANY DATABASE TO [NT AUTHORITY\\SYSTEM];"
)
$sqlGrant = [string]::Join("`r`n", $sqlLines)
$tmpGrant = Join-Path $Paths.SqlStage "grant_SYSTEM_server.sql"
$sqlGrant | Out-File -LiteralPath $tmpGrant -Encoding ASCII -Force
Set-Content -LiteralPath $tmpGrant -Value $sqlGrant -Encoding ASCII
$grantArgs = Build-SqlcmdArgs -WindowsAuth:$SqlUseWindowsAuth -User $SqlUser -Password $SqlPassword -Instance $SqlInstance -InputFile $tmpGrant
Log-SqlcmdArgsSafe -Args $grantArgs