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 så vägleder våra supporttekniker dig genom distributions- eller uppgraderingsprocessen.

SQL-resursprovidern körs på en låst virtuell dator (VM). Om du vill 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(Jea) för PowerShell. 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 och 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 vm-Windows Defender

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

Så här uppdaterar du Windows Defender definitioner:

  1. Ladda ned uppdateringen av Windows Defender definitioner från Uppdateringar av säkerhetsinformation 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 nätverkskortsslutpunkt för underhåll.

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

  4. I powershell-underhållssessionen kör du kommandot Update-DBAdapterWindowsDefenderDefinitions .

  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-integrerade system.

Azure Diagnostics tillägget är installerat på sql-resursproviderns virtuella dator som standard. Följande steg visar hur du anpassar tillägget för insamling av händelseloggar och IIS-loggar för SQL-resursprovidern 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 datorn med SQL-resursproviderns nätverkskort 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 driftshändelseloggar för SQL-resursprovidern. 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ägget 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-integrerade system.

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 rotering av hemligheter 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 det 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 Azure AD distributioner. Miljönamn som stöds är AzureCloud, AzureUSGovernment eller Om du använder En Kina Azure Active Directory, AzureChinaCloud. Valfritt
AzCredential Autentiseringsuppgifter för tjänstadministratörskontot i Azure Stack Hub. Skriptet misslyckas om det konto som du använder med AzCredential kräver multifaktorautentisering (MFA). Obligatorisk
CloudAdminCredential Autentiseringsuppgifter för molnadministratörsdomän i Azure Stack Hub. Obligatorisk
PrivilegedEndpoint Privilegierad slutpunkt för åtkomst till Get-AzureStackStampInformation. Obligatorisk
DiagnosticsUserPassword Diagnostik för användarkontolösenord. 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

Dessa instruktioner gäller endast för SQL RP V2 som körs på Azure Stack Hub Integrated Systems.

Anteckning

Hemlig rotation för resursproviders (RPs) för mervärde 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 resursproviderns hemlighet.

När hemligheter snart upphör att gälla genereras följande aviseringar i administratörsportalen. Genom att slutföra hemlighetsrotationen löser du 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 hemlig rotation i Azure Stack Hub. 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 kraven för PKI-certifikat (Azure Stack Hub Public Key Infrastructure) för viktig nödvändig information innan du hämtar/förnyar ditt X509-certifikat, inklusive information om det pfx-format som krävs. 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 för mervärde:

  1. Slutför stegen i Generera begäranden om certifikatsignering (CSR) för certifikatförnyelse för resursprovidern. Här använder du verktyget Beredskapskontroll för Azure Stack Hub 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". Till exempel New-AzsDbAdapterCertificateSigningRequest används 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 tagit emot 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 ca:en.

  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 på din Azure Stack Hub-miljö 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 ett produkt-ID "microsoft.sqlrp"för .

  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 resursproviderdistributionen. microsoft.sqlrp
<installed-version> Versionen av den senaste resursproviderdistributionen. 2.0.0.2
<package-id> Paket-ID:t skapas genom sammanlänkning av produkt-ID och installerad version. 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 på din Azure Stack Hub-miljö 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.

Sql RP-distributionen kan till exempel ha ett produkt-ID för "microsoft.sqlrp"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 egenskapen "properties"."secretKind" 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 hemlighetssamlingen som returneras för SQL RP en "Certificate" hemlighet med namnet SSLCert.

  1. Använd cmdleten Set-AzsProductSecret för att importera ditt nya certifikat till Key Vault, som ska användas av rotationsprocessen. Ersätt variabelns platshållarvärden 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 antingen i PowerShell-konsolen eller i administratörsportalen genom att välja resursprovidern i Marketplace-tjänsten:

Skärm med pågående hemlig rotation.

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 har SQL Resource Provider stöd för standardsättet att samla in loggar från din Azure Stack Hub-miljö. Mer information finns i Diagnostikloggsamling.

Från och med version 1.1.93 har SQL Resource Provider stöd för 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 SQL-resursprovidern 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 någon 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