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:
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.
Skapa en PowerShell-session till den virtuella SQL-resursproviderns vm-underhållsslutpunkt.
Kopiera definitionsuppdateringsfilen till den virtuella datorn med hjälp av underhållsslutpunktssessionen.
Kör kommandot Update-DBAdapterWindowsDefenderDefinitions i PowerShell-underhållssessionen .
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.
Logga in på Azure Stack Hubs administratörsportal.
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.
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.
Lägg till Microsoft-AzureStack-DatabaseAdapter/Operational!* för att samla in händelseloggar för SQL-resursproviderns drift.
Om du vill aktivera insamling av IIS-loggar kontrollerar du IIS-loggar och misslyckade begärandeloggar.
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.
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:
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.
Installera Azs.Deployment. Admin 1.0.0-moduler: PowerShell-galleriet | Azs.Deployment. Admin 1.0.0
Install-Module -Name Azs.Deployment.Admin
- 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:
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.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.
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:
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.
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 .-
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:
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.
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"
.
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.2
SQL RP-paket-ID:t .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 returneradevalue
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
.
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
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:
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.