Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
I den här artikeln beskrivs hur du ansluter och hanterar databaser i Azure SQL Database med hjälp av Azure Automations systemtilldelade hanterade identitet. Med Azure Automation kan du hantera databaser i Azure SQL Database med hjälp av de senaste Az PowerShell-cmdletarna som är tillgängliga i Azure Az PowerShell.
Azure Automation har dessa Azure Az PowerShell-cmdletar tillgängliga direkt, så att du kan utföra alla SQL-databashanteringsuppgifter i tjänsten. Du kan också para ihop dessa cmdletar i Azure Automation med cmdletarna för andra Azure-tjänster för att automatisera komplexa uppgifter i Azure-tjänster och i system från tredje part.
Azure Automation kan också utfärda T-SQL-kommandon (Transact SQL) mot SQL-servrarna med hjälp av PowerShell.
Om du vill köra kommandona mot databasen måste du göra följande:
- Kontrollera att Automation-kontot har en systemtilldelad hanterad identitet.
- Ange lämpliga behörigheter för den automationshanterade identiteten.
- Konfigurera SQL-servern så att den använder Microsoft Entra-autentisering.
- Skapa en användare på SQL-servern som mappar till automationskontots hanterade identitet.
- Skapa en runbook för att ansluta och köra kommandona.
- (Valfritt) Om SQL-servern skyddas av en brandvägg skapar du en Hybrid Runbook Worker (HRW), installerar SQL-modulerna på servern och lägger till HRW IP-adressen i listan över tillåtna i brandväggen.
Ansluta till Azure SQL-databas med hjälp av systemtilldelad hanterad identitet
Följ dessa steg för att tillåta åtkomst från automationssystemets hanterade identitet till Azure SQL-databasen:
Om automationssystemets hanterade identitet är AV gör du följande:
Logga in på Azure-portalen.
Gå till ditt Automation-konto.
På sidan Automation-konto går du till Kontoinställningar och väljer Identitet.
Under fliken Systemtilldelat väljer du Status som PÅ.
När den systemhanterade identiteten är PÅ måste du ange den åtkomst som krävs för kontot med hjälp av följande steg:
- I Automation-kontot | Identitetssidan, fliken Systemtilldelad, under behörigheter väljer du Azure-rolltilldelningar.
- På sidan Azure-rolltilldelningar väljer du +Lägg till rolltilldelning (förhandsversion).
- I lägg till rolltilldelning (förhandsversion) väljer du Omfång som SQL, väljer Prenumeration, Resurs i listrutan och Roll enligt minsta behörighet som krävs och väljer sedan Spara.
Konfigurera SQL-servern för Active Directory-autentisering med hjälp av följande steg:
- Gå till Azure Portal startsida och välj SQL-servrar.
- På sidan SQL-server går du till Inställningar och väljer Microsoft Entra-ID.
- Välj Ange administratör för att konfigurera SQL Server för AD-autentisering.
Lägg till autentisering på SQL-sidan med hjälp av följande steg:
- Gå till Azure Portal startsida och välj SQL-servrar.
- På sidan SQL-server går du till Inställningar och väljer SQL-databaser.
- Välj din databas för att gå till SQL-databassidan och välj Frågeredigeraren (förhandsversion) och kör följande två frågor:
# AutomationAccount - replace with your Automation account's name # ObjectID - replace with object (principal) ID for your system managed identity principal from step 1. CREATE USER "AutomationAccount" FROM EXTERNAL PROVIDER WITH OBJECT_ID = `ObjectID` EXEC sp_addrolemember `db_owner`, "AutomationAccount"
Exempelkod
Anslutning till Azure SQL Server
if ($($env:computerName) -eq "Client") {"Runbook running on Azure Client sandbox"} else {"Runbook running on " + $env:computerName}
Disable-AzContextAutosave -Scope Process
Connect-AzAccount -Identity
$Token = (Get-AZAccessToken -ResourceUrl https://database.windows.net).Token
Invoke-Sqlcmd -ServerInstance azuresqlserverxyz.database.windows.net -Database MyDBxyz -AccessToken $token -query 'select * from TableXYZ'
Kontrollera kontobehörigheter på SQL-sidan
SELECT roles.[name] as role_name, members.name as [user_name]
from sys.database_role_members
Join sys.database_principals roles on database_role_members.role_principal_id= roles.principal_id
join sys.database_principals members on database_role_members.member_principal_id=members.principal_id
Order By
roles.[name], members.[name]
Kommentar
När en SQL-server körs bakom en brandvägg måste du köra Azure Automation-runbooken på en dator i ditt eget nätverk. Se till att du konfigurerar den här datorn som en Hybrid Runbook Worker så att IP-adressen eller nätverket inte blockeras av brandväggen. Mer information om hur du konfigurerar en dator som hybridarbetare finns i skapa en hybridarbetare.
Använda Hybrid Worker
När du använder en Hybrid Worker måste de moduler som din runbook använder installeras lokalt från en upphöjd PowerShell-prompt. Exempel: - Install-module Az.Accounts and Install-module SqlServer Om du vill hitta de nödvändiga modulnamnen kör du ett kommando på varje cmdlet och kontrollerar sedan källan. Om du till exempel vill kontrollera modulnamnet för cmdleten Connect-AzAccounts som ingår i az.account-modulen kör du kommandot: get-command Connect-AzAccount
Kommentar
Vi rekommenderar att du lägger till följande kod överst i en runbook som är avsedd att köras på en Hybrid Worker: if ($($env:computerName) -eq "CLIENT") {"Runbook running on Azure CLIENT"} else {"Runbook running on " + $env:computerName}. Med koden kan du se noden som den körs på och om du av misstag kör den i Azure-molnet i stället för Hybrid Worker hjälper den till att fastställa orsaken till att en runbook inte fungerade.
Nästa steg
- Mer information om användning av autentiseringsuppgifter finns i Hantera autentiseringsuppgifter i Azure Automation.
- Information om moduler finns i Hantera moduler i Azure Automation.
- Om du behöver starta en runbook läser du Starta en runbook i Azure Automation.
- Mer information om PowerShell finns i PowerShell Docs.

