Správa databází v databázi Azure SQL pomocí služby Azure Automation
Tento článek popisuje postup připojení a správy databází v databázi Azure SQL pomocí spravované identity přiřazené systémem ve službě Azure Automation. Pomocí služby Azure Automation můžete spravovat databáze ve službě Azure SQL Database pomocí nejnovějších rutin Az PowerShellu, které jsou k dispozici v Azure Az PowerShellu.
Služba Azure Automation má k dispozici tyto rutiny Azure Az PowerShellu, abyste mohli provádět všechny úlohy správy databáze SQL v rámci služby. Tyto rutiny můžete také spárovat ve službě Azure Automation s rutinami jiných služeb Azure za účelem automatizace složitých úloh napříč službami Azure a napříč systémy třetích stran.
Azure Automation může také vydávat příkazy T-SQL (Transact SQL) na sql servery pomocí PowerShellu.
Pokud chcete spouštět příkazy pro databázi, musíte udělat toto:
- Ujistěte se, že účet Automation má spravovanou identitu přiřazenou systémem.
- Zadejte příslušná oprávnění ke spravované identitě Automation.
- Nakonfigurujte SQL Server tak, aby využíval ověřování Microsoft Entra.
- Vytvořte uživatele na SQL Serveru, který se mapuje na spravovanou identitu účtu Automation.
- Vytvořte runbook pro připojení a spuštění příkazů.
- (Volitelné) Pokud je SQL server chráněný bránou firewall, vytvořte hybrid Runbook Worker (HRW), nainstalujte na tento server moduly SQL a přidejte IP adresu HRW do seznamu povolených v bráně firewall.
Připojení k databázi Azure SQL pomocí spravované identity přiřazené systémem
Pokud chcete povolit přístup ze spravované identity systému Automation k databázi Azure SQL, postupujte takto:
Pokud je spravovaná identita systému Automation vypnutá, postupujte takto:
Přihlaste se k portálu Azure.
Přejděte do svého účtu služby Automation.
Na stránce účtu Automation v části Nastavení účtu vyberte Identita.
Na kartě Přiřazený systém vyberte Stav jako ZAPNUTO.
Jakmile je spravovaná identita systému zapnutá, musíte pomocí následujícího postupu zadat požadovaný přístup k účtu:
- V účtu Automation | Stránka Identita, karta Přiřazená systémem v části Oprávnění, vyberte přiřazení rolí Azure.
- Na stránce Přiřazení rolí Azure vyberte +Přidat přiřazení role (Preview).
- V části Přidat přiřazení role (Preview) vyberte obor jako SQL, vyberte předplatné, prostředek z rozevíracího seznamu a roli podle minimálních požadovaných oprávnění a pak vyberte Uložit.
Pomocí následujícího postupu nakonfigurujte SQL Server pro ověřování active directory:
- Přejděte na domovskou stránku webu Azure Portal a vyberte SERVERY SQL.
- Na stránce SQL Serveru v části Nastavení vyberte Microsoft Entra ID.
- Vyberte Nastavit správce a nakonfigurujte SQL Server pro ověřování AD.
Přidejte ověřování na straně SQL pomocí následujícího postupu:
- Přejděte na domovskou stránku webu Azure Portal a vyberte SERVERY SQL.
- Na stránce SQL Serveru v části Nastavení vyberte databáze SQL.
- Výběrem databáze přejděte na stránku databáze SQL a vyberte Editor dotazů (Preview) a spusťte následující dva dotazy:
# 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"
Ukázkový kód
Připojení k Azure SQL Serveru
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'
Kontrola oprávnění účtu na straně SQL
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]
Poznámka:
Pokud sql server běží za bránou firewall, musíte runbook Azure Automation spustit na počítači ve vlastní síti. Ujistěte se, že tento počítač nakonfigurujete jako hybrid Runbook Worker tak, aby brána firewall neblokovala IP adresu nebo síť. Další informace o tom, jak nakonfigurovat počítač jako Hybrid Worker, najdete v tématu vytvoření hybrid workeru.
Použití funkce Hybrid Worker
Pokud používáte Hybrid Worker, musí být moduly, které runbook používá, nainstalované místně z příkazového řádku PowerShellu se zvýšenými oprávněními. Například - Install-module Az.Accounts and Install-module SqlServer
. Pokud chcete najít požadované názvy modulů, spusťte v každé rutině příkaz a pak zkontrolujte zdroj. Pokud například chcete zkontrolovat název modulu pro rutinu Connect-AzAccounts
, která je součástí modulu Az.Account, spusťte příkaz: get-command Connect-AzAccount
Poznámka:
Doporučujeme přidat následující kód do horní části libovolného runbooku, který má běžet v hybrid workeru: if ($($env:computerName) -eq "CLIENT") {"Runbook running on Azure CLIENT"} else {"Runbook running on " + $env:computerName}
Tento kód umožňuje zobrazit uzel, na kterém běží, a v případě, že jste ho omylem spustili v cloudu Azure místo hybrid workeru, pomůže určit důvod, proč runbook nefunguje.
Další kroky
- Podrobnosti o použití přihlašovacích údajů najdete v tématu Správa přihlašovacích údajů ve službě Azure Automation.
- Informace o modulech najdete v tématu Správa modulů ve službě Azure Automation.
- Pokud potřebujete spustit runbook, přečtěte si téma Spuštění runbooku ve službě Azure Automation.
- Podrobnosti o PowerShellu najdete v dokumentaci k PowerShellu.