Underhållsåtgärder för SQL-resursprovider

Viktigt

Från och med Azure Stack Hub build 2108 erbjuds SQL- och MySQL-resursprovidrar till prenumerationer som har beviljats åtkomst. Om du vill börja använda den här funktionen eller om du behöver uppgradera från en tidigare version öppnar du ett supportärende och våra supporttekniker vägleder dig genom distributions- eller uppgraderingsprocessen.

SQL-resursprovidern körs på en låst virtuell dator (VM). För att aktivera underhållsåtgärder måste du uppdatera den virtuella datorns säkerhet. Om du vill göra detta med principen minsta behörighet använder du JEA-slutpunkten DBAdapterMaintenance(PowerShell Just Enough Administration). Installationspaketet för resursprovidern innehåller ett skript för den här åtgärden.

Korrigering och uppdatering

SQL-resursprovidern betjänas inte som en del av Azure Stack Hub eftersom det är en tilläggskomponent. Microsoft tillhandahåller uppdateringar av SQL-resursprovidern efter behov.

När en uppdaterad SQL Server resursprovider släpps för SQL RP V1 tillhandahålls ett skript för att tillämpa uppdateringen. Det här skriptet skapar en ny virtuell resursproviderdator som migrerar tillståndet för den gamla virtuella providerdatorn till den nya virtuella datorn.

För SQL RP V2 uppdateras resursprovidrar med samma uppdateringsfunktion som används för att tillämpa Azure Stack Hub-uppdateringar.

Mer information finns i Uppdatera SQL-resursprovidern.

Uppdatera den virtuella providerdatorn

SQL RP V1 körs på en virtuell användardator . Du måste tillämpa nödvändiga korrigeringar och uppdateringar när de släpps. Du kan installera ett Windows Update-paket under installationen av eller uppdateringen av resursprovidern.

SQL RP V2 körs på en hanterad Windows Server som är dold. Du behöver inte korrigera eller uppdatera den virtuella resursproviderns virtuella dator. Den uppdateras automatiskt när du uppdaterar RP:en.

Uppdatera definitionerna för den virtuella datorn Windows Defender

De här anvisningarna gäller endast för SQL RP V1 som körs på Azure Stack Hub Integrated Systems.

Så här uppdaterar du Windows Defender definitioner:

  1. Ladda ned uppdateringen av Windows Defender definitioner från Säkerhetsinformationsuppdateringar för Windows Defender.

    På sidan definitionsuppdatering rullar du ned till "Ladda ned uppdateringen manuellt". Ladda ned 64-bitarsfilen "Windows Defender Antivirus for Windows 10 and Windows 8.1".

    Du kan också använda den här direktlänken för att ladda ned/köra fpam-fe.exe-filen.

  2. Skapa en PowerShell-session till den virtuella SQL-resursproviderns vm-underhållsslutpunkt.

  3. Kopiera definitionsuppdateringsfilen till den virtuella datorn med hjälp av underhållsslutpunktssessionen.

  4. Kör kommandot Update-DBAdapterWindowsDefenderDefinitions i PowerShell-underhållssessionen .

  5. När du har installerat definitionerna rekommenderar vi att du tar bort definitionsuppdateringsfilen med kommandot Remove-ItemOnUserDrive .

PowerShell-skriptexempel för uppdatering av definitioner

Du kan redigera och köra följande skript för att uppdatera Defender-definitionerna. Ersätt värden i skriptet med värden från din miljö.

# Set credentials for local admin on the resource provider VM.
$vmLocalAdminPass = ConvertTo-SecureString '<local admin user password>' -AsPlainText -Force
$vmLocalAdminUser = "<local admin user name>"
$vmLocalAdminCreds = New-Object System.Management.Automation.PSCredential `
    ($vmLocalAdminUser, $vmLocalAdminPass)

# Provide the public IP address for the adapter VM.
$databaseRPMachine  = "<RP VM IP address>"
$localPathToDefenderUpdate = "C:\DefenderUpdates\mpam-fe.exe"

# Download the Windows Defender update definitions file from https://www.microsoft.com/wdsi/definitions.
Invoke-WebRequest -Uri 'https://go.microsoft.com/fwlink/?LinkID=121721&arch=x64' `
    -Outfile $localPathToDefenderUpdate

# Create a session to the maintenance endpoint.
$session = New-PSSession -ComputerName $databaseRPMachine `
    -Credential $vmLocalAdminCreds -ConfigurationName DBAdapterMaintenance `
    -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
# Copy the defender update file to the adapter VM.
Copy-Item -ToSession $session -Path $localPathToDefenderUpdate `
     -Destination "User:\"
# Install the update definitions.
Invoke-Command -Session $session -ScriptBlock `
    {Update-AzSDBAdapterWindowsDefenderDefinition -DefinitionsUpdatePackageFile "User:\mpam-fe.exe"}
# Cleanup the definitions package file and session.
Invoke-Command -Session $session -ScriptBlock `
    {Remove-AzSItemOnUserDrive -ItemPath "User:\mpam-fe.exe"}
$session | Remove-PSSession

Konfigurera Azure Diagnostics-tillägget för SQL-resursprovidern

De här anvisningarna gäller endast för SQL RP V1 som körs på Azure Stack Hub Integrated Systems.

Azure Diagnostics-tillägget installeras som standard på den virtuella SQL-resursproviderns virtuella dator. Följande steg visar hur du anpassar tillägget för att samla in sql-resursproviderns driftshändelseloggar och IIS-loggar för felsökning och granskning.

  1. Logga in på Azure Stack Hubs administratörsportal.

  2. Välj Virtuella datorer i fönstret till vänster, sök efter den virtuella sql-resursproviderns virtuella dator och välj den virtuella datorn.

  3. I Diagnostikinställningar för den virtuella datorn går du till fliken Loggar och väljer Anpassad för att anpassa händelseloggar som samlas in. Gå till diagnostikinställningar

  4. Lägg till Microsoft-AzureStack-DatabaseAdapter/Operational!* för att samla in händelseloggar för SQL-resursproviderns drift. Lägga till händelseloggar

  5. Om du vill aktivera insamling av IIS-loggar kontrollerar du IIS-loggar och misslyckade begärandeloggar. Lägga till IIS-loggar

  6. Välj slutligen Spara för att spara alla diagnostikinställningar.

När händelseloggarna och IIS-loggsamlingen har konfigurerats för SQL-resursprovidern finns loggarna i ett systemlagringskonto med namnet sqladapterdiagaccount.

Mer information om Azure Diagnostics tillägg finns i Vad är Azure Diagnostics tillägget.

Uppdatera SQL-autentiseringsuppgifter

Du ansvarar för att skapa och underhålla sysadmin-konton på dina SQL-servrar. Resursprovidern behöver ett konto med dessa behörigheter för att hantera databaser för användare, men den behöver inte åtkomst till användarnas data. Om du behöver uppdatera sysadmin-lösenorden på dina SQL-servrar kan du använda resursproviderns administratörsgränssnitt för att ändra ett lagrat lösenord. Dessa lösenord lagras i en Key Vault på din Azure Stack Hub-instans.

Om du vill ändra inställningarna väljer du Bläddra BLAND>ADMINISTRATIVA RESURSER>SQL-värdservrar>SQL-inloggningar och väljer ett användarnamn. Ändringen måste göras på SQL-instansen först (och eventuella repliker, om det behövs.) Under Inställningar väljer du Lösenord.

Uppdatera SQL-administratörslösenordet

Rotering av hemligheter

De här anvisningarna gäller endast för SQL RP V1 som körs på Azure Stack Hub Integrated Systems.

När du använder SQL- och MySQL-resursprovidrar med Azure Stack Hub-integrerade system ansvarar Azure Stack Hub-operatören för att rotera följande infrastrukturhemligheter för resursprovidern för att säkerställa att de inte upphör att gälla:

  • Externt SSL-certifikat som tillhandahålls under distributionen.
  • Lösenordet för det lokala administratörskontot för den virtuella resursprovidern som angavs under distributionen.
  • Lösenord för diagnostikanvändare för resursprovider (dbadapterdiag).
  • (version >= 1.1.47.0) Key Vault certifikat som genererades under distributionen.

PowerShell-exempel för att rotera hemligheter

Viktigt

Lyckad hemlig rotation kräver att befintliga versioner av Azure Stack Hub PowerShell-modulerna tas bort innan skriptet nedan körs.

Ändra alla hemligheter på samma gång.

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DiagnosticsUserPassword $passwd `
    -DependencyFilesLocalPath $certPath `
    -DefaultSSLCertificatePassword $certPasswd  `
    -VMLocalCredential $localCreds `
    -KeyVaultPfxPassword $keyvaultCertPasswd

Ändra lösenordet för diagnostikanvändaren.

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DiagnosticsUserPassword  $passwd

Ändra lösenordet för det lokala administratörskontot för den virtuella datorn.

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -VMLocalCredential $localCreds

Rotera SSL-certifikatet

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -DependencyFilesLocalPath $certPath `
    -DefaultSSLCertificatePassword $certPasswd

Rotera Key Vault-certifikatet

.\SecretRotationSQLProvider.ps1 `
    -Privilegedendpoint $Privilegedendpoint `
    -CloudAdminCredential $cloudCreds `
    -AzCredential $adminCreds `
    -KeyVaultPfxPassword $keyvaultCertPasswd

SecretRotationSQLProvider.ps1 parametrar

Parameter Beskrivning Kommentar
AzureEnvironment Azure-miljön för tjänstadministratörskontot som används för att distribuera Azure Stack Hub. Krävs endast för Microsoft Entra distributioner. Miljönamn som stöds är AzureCloud, AzureUSGovernment eller om du använder ett China Microsoft Entra-ID, AzureChinaCloud. Valfritt
AzCredential Autentiseringsuppgifter för tjänstadministratörskonto i Azure Stack Hub. Skriptet misslyckas om kontot som du använder med AzCredential kräver multifaktorautentisering (MFA). Obligatorisk
CloudAdminCredential Autentiseringsuppgifter för azure Stack Hub-molnadministratörsdomänkonto. Obligatorisk
PrivilegedEndpoint Privilegierad slutpunkt för åtkomst till Get-AzureStackStampInformation. Obligatorisk
DiagnosticsUserPassword Lösenord för diagnostikanvändarkonto. Valfritt
VMLocalCredential Lokalt administratörskonto på den virtuella datorn MySQLAdapter. Valfritt
DefaultSSLCertificatePassword Standardlösenord för SSL-certifikat (*.pfx). Valfritt
DependencyFilesLocalPath Lokal sökväg för beroendefiler. Valfritt
KeyVaultPfxPassword Lösenordet som används för att generera Key Vault certifikat för databaskort. Valfritt

De här anvisningarna gäller endast för SQL RP V2 som körs på Azure Stack Hub-integrerade system.

Anteckning

Hemlig rotation för resursproviders för mervärde (RPs) stöds för närvarande endast via PowerShell.

Precis som Azure Stack Hub-infrastrukturen använder resursprovidrar för mervärde både interna och externa hemligheter. Som operatör ansvarar du för:

  • Tillhandahålla uppdaterade externa hemligheter, till exempel ett nytt TLS-certifikat som används för att skydda resursproviderns slutpunkter.
  • Hantera regelbundet rotering av resursproviderhemligheter.

När hemligheter snart upphör att gälla genereras följande aviseringar i administratörsportalen. Om du slutför roteringen av hemligheter kan du lösa dessa aviseringar:

  • Internt certifikat upphör snart att gälla
  • Externt certifikat upphör snart att gälla

Förutsättningar

Som förberedelse för rotationsprocessen:

  1. Om du inte redan har gjort det installerar du PowerShell Az-modulen för Azure Stack Hub innan du fortsätter. Version 2.0.2-förhandsversion eller senare krävs för azure Stack Hub-rotering av hemligheter. Mer information finns i Migrera från AzureRM till Azure PowerShell Az i Azure Stack Hub.

  2. Installera Azs.Deployment. Admin 1.0.0-moduler: PowerShell-galleriet | Azs.Deployment. Admin 1.0.0

Install-Module -Name Azs.Deployment.Admin
  1. Om det externa certifikatet snart upphör att gälla läser du Certifikatkrav för Azure Stack Hub PKI (Public Key Infrastructure) för viktig nödvändig information innan du hämtar/förnyar ditt X509-certifikat, inklusive information om det nödvändiga PFX-formatet. Granska även kraven som anges i avsnittet Valfria PaaS-certifikat för din specifika värdetilläggsresursprovider.

Förbereda ett nytt TLS-certifikat för extern certifikatrotation

Anteckning

Om endast det interna certifikatet snart upphör att gälla kan du hoppa över det här avsnittet.

Skapa eller förnya sedan ditt TLS-certifikat för att skydda slutpunkterna för resursprovidern value-add:

  1. Slutför stegen i Generera certifikatsigneringsbegäranden (CSR) för certifikatförnyelse för resursprovidern. Här använder du verktyget Azure Stack Hub Readiness Checker för att skapa CSR. Se till att köra rätt cmdlet för resursprovidern i steget "Generera certifikatbegäranden för andra Azure Stack Hub-tjänster". Används till exempel New-AzsDbAdapterCertificateSigningRequest för SQL- och MySQL RPs. När du är klar skickar du den genererade . REQ-fil till certifikatutfärdare (CA) för det nya certifikatet.

  2. När du har fått certifikatfilen från certifikatutfärdare slutför du stegen i Förbereda certifikat för distribution eller rotation. Du använder verktyget Beredskapskontroll igen för att bearbeta filen som returneras från certifikatfärdaren.

  3. Slutför slutligen stegen i Verifiera Azure Stack Hub PKI-certifikat. Du använder verktyget Beredskapskontroll en gång till för att utföra valideringstester på det nya certifikatet.

Rotera det interna certifikatet

Öppna en upphöjd PowerShell-konsol och utför följande steg för att rotera resursproviderns externa hemligheter:

  1. Logga in i Azure Stack Hub-miljön med dina autentiseringsuppgifter för operatören. Se Ansluta till Azure Stack Hub med PowerShell för PowerShell-inloggningsskript. Se till att använda PowerShell Az-cmdletar (i stället för AzureRM) och ersätt alla platshållarvärden, till exempel slutpunkts-URL:er och katalogklientnamn.

  2. Fastställa resursproviderns produkt-ID. Kör cmdleten Get-AzsProductDeployment för att hämta en lista över de senaste distributionerna av resursprovidern. Den returnerade "value" samlingen innehåller ett -element för varje distribuerad resursprovider. Hitta resursprovidern av intresse och anteckna värdena för dessa egenskaper:

    • "name" – innehåller resursproviderns produkt-ID i det andra segmentet av värdet.

    Sql RP-distributionen kan till exempel ha produkt-ID "microsoft.sqlrp":t .

  3. Kör cmdleten Invoke-AzsProductRotateSecretsAction för att rotera det interna certifikatet:

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

Rotera det externa certifikatet

Du måste först anteckna värdena för följande parametrar.

Platshållare Description Exempelvärde
<product-id> Produkt-ID för den senaste distributionen av resursprovidern. microsoft.sqlrp
<installed-version> Versionen av den senaste distributionen av resursprovidern. 2.0.0.2
<package-id> Paket-ID:t skapas genom att produkt-ID:t och den installerade versionen sammanfogas. microsoft.sqlrp.2.0.0.2
<cert-secret-name> Namnet under vilket certifikathemligheten lagras. SSLCert
<cert-pfx-file-path> Sökvägen till PFX-certifikatfilen. C:\dir\dbadapter-cert-file.pfx
<pfx-password> Lösenordet som tilldelats certifikatet . PFX-fil. strong@CertSecret6

Öppna en upphöjd PowerShell-konsol och utför följande steg:

  1. Logga in i Azure Stack Hub-miljön med dina autentiseringsuppgifter för operatören. Se Ansluta till Azure Stack Hub med PowerShell för PowerShell-inloggningsskript. Se till att använda PowerShell Az-cmdletar (i stället för AzureRM) och ersätt alla platshållarvärden, till exempel slutpunkts-URL:er och katalogklientnamn.

  2. Hämta parametervärdet product-id. Kör cmdleten Get-AzsProductDeployment för att hämta en lista över de senaste distributionerna av resursprovidern. Den returnerade "value" samlingen innehåller ett -element för varje distribuerad resursprovider. Hitta resursprovidern av intresse och anteckna värdena för dessa egenskaper:

    • "name" – innehåller resursproviderns produkt-ID i det andra segmentet av värdet.
    • "properties"."deployment"."version" – innehåller det för tillfället distribuerade versionsnumret.

Till exempel kan SQL RP-distributionen ha produkt-ID "microsoft.sqlrp":t , och version "2.0.0.2".

  1. Skapa resursproviderns paket-ID genom att sammanfoga resursproviderns produkt-ID och version. Om du till exempel använder värdena som härleddes i föregående steg är microsoft.sqlrp.2.0.0.2SQL RP-paket-ID:t .

  2. Använd paket-ID:t som härleddes i föregående steg och kör Get-AzsProductSecret -PackageId för att hämta listan över hemliga typer som används av resursprovidern. Leta reda på elementet som innehåller värdet "Certificate" för för "properties"."secretKind" egenskapen i den returnerade value samlingen. Det här elementet innehåller egenskaper för RP:s certifikathemlighet. Anteckna namnet som tilldelats den här certifikathemligheten, som identifieras av det sista segmentet i "name" egenskapen, precis ovanför "properties".

Till exempel innehåller den hemlighetssamling som returneras för SQL RP en "Certificate" hemlighet med namnet SSLCert.

  1. Använd cmdleten Set-AzsProductSecret för att importera det nya certifikatet till Key Vault, som ska användas av rotationsprocessen. Ersätt platshållarvärdena för variabeln i enlighet med detta innan du kör skriptet.

    $productId = '<product-id>'
    $packageId = $productId + '.' + '<installed-version>'
    $certSecretName = '<cert-secret-name>' 
    $pfxFilePath = '<cert-pfx-file-path>'
    $pfxPassword = ConvertTo-SecureString '<pfx-password>' -AsPlainText -Force   
    Set-AzsProductSecret -PackageId $packageId -SecretName $certSecretName -PfxFileName $pfxFilePath -PfxPassword $pfxPassword -Force
    
  2. Använd slutligen cmdleten Invoke-AzsProductRotateSecretsAction för att rotera hemligheterna:

    Invoke-AzsProductRotateSecretsAction -ProductId $productId
    

Övervaka förloppet för hemlig rotation

Du kan övervaka förloppet för hemlig rotation i PowerShell-konsolen eller i administratörsportalen genom att välja resursprovidern i Marketplace-tjänsten:

Skärmbild av hemlig rotation som pågår.

Anteckning

Den hemliga rotationstiden kan kosta mer än 10 minuter. När det är klart ändras statusen för resursprovidern till "Installerad".

Samla in diagnostikloggar

Azure Stack Hub har flera sätt att samla in, spara och skicka diagnostikloggar till Microsoft Support. Från och med version 1.1.93 stöder SQL Resource Provider standardsättet att samla in loggar från din Azure Stack Hub-miljö. Mer information finns i Insamling av diagnostikloggar.

Från och med version 1.1.93 stöder SQL Resource Provider standardsättet att samla in loggar från din Azure Stack Hub-miljö. Om du använder en äldre version rekommenderar vi att du uppdaterar DIN SQL-resursprovider till den senaste versionen.

Om du vill samla in loggar från den låsta virtuella datorn använder du JEA-slutpunkten (PowerShell Just Enough Administration) DBAdapterDiagnostics. Den här slutpunkten innehåller följande kommandon:

  • Get-AzsDBAdapterLog. Det här kommandot skapar ett zip-paket med resursproviderns diagnostikloggar och sparar filen på sessionens användarenhet. Du kan köra det här kommandot utan några parametrar och de senaste fyra timmarnas loggar samlas in.
  • Remove-AzsDBAdapterLog. Det här kommandot tar bort befintliga loggpaket på den virtuella resursproviderns virtuella dator.

Krav och processer för slutpunkter

När en resursprovider installeras eller uppdateras skapas användarkontot dbadapterdiag . Du använder det här kontot för att samla in diagnostikloggar.

Anteckning

Lösenordet för dbadapterdiag-kontot är samma som lösenordet som används för den lokala administratören på den virtuella dator som skapas under en providerdistribution eller -uppdatering.

Om du vill använda DBAdapterDiagnostics-kommandon skapar du en powershell-fjärrsession till den virtuella resursproviderns virtuella dator och kör kommandot Get-AzsDBAdapterLog .

Du anger tidsintervallet för logginsamlingen med hjälp av parametrarna FromDate och ToDate . Om du inte anger en eller båda av dessa parametrar används följande standardvärden:

  • FromDate är fyra timmar före den aktuella tiden.
  • ToDate är den aktuella tiden.

PowerShell-skriptexempel för insamling av loggar

Följande skript visar hur du samlar in diagnostikloggar från den virtuella resursproviderns virtuella dator.

# Create a new diagnostics endpoint session.
$databaseRPMachineIP = '<RP VM IP address>'
$diagnosticsUserName = 'dbadapterdiag'
$diagnosticsUserPassword = '<Enter Diagnostic password>'

$diagCreds = New-Object System.Management.Automation.PSCredential `
        ($diagnosticsUserName, (ConvertTo-SecureString -String $diagnosticsUserPassword -AsPlainText -Force))
$session = New-PSSession -ComputerName $databaseRPMachineIP -Credential $diagCreds `
        -ConfigurationName DBAdapterDiagnostics `
        -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)

# Sample that captures logs from the previous hour.
$fromDate = (Get-Date).AddHours(-1)
$dateNow = Get-Date
$sb = {param($d1,$d2) Get-AzSDBAdapterLog -FromDate $d1 -ToDate $d2}
$logs = Invoke-Command -Session $session -ScriptBlock $sb -ArgumentList $fromDate,$dateNow

# Copy the logs to the user drive.
$sourcePath = "User:\{0}" -f $logs
$destinationPackage = Join-Path -Path (Convert-Path '.') -ChildPath $logs
Copy-Item -FromSession $session -Path $sourcePath -Destination $destinationPackage

# Clean up the logs.
$cleanup = Invoke-Command -Session $session -ScriptBlock {Remove-AzsDBAdapterLog}
# Close the session.
$session | Remove-PSSession

Kända begränsningar för SQL Server resursprovider version 1

Begränsning:
När distributions-, uppgraderings- eller hemliga rotationsskriptet misslyckades kan vissa loggar inte samlas in av standardmekanismen för logginsamling.

Lösning:
Förutom att använda standardmekanismen för logginsamling går du till mappen Loggar i den extraherade mappen där skriptet hittar, för att hitta fler loggar.

Nästa steg

Lägga till SQL Server värdservrar