Gestire i database nel database SQL di Azure usando Automazione di Azure
Questo articolo descrive la procedura per connettere e gestire i database nel database SQL di Azure usando l'identità gestita assegnata dal sistema di Automazione di Azure. Con Automazione di Azure è possibile gestire i database in database SQL di Azure usando i cmdlet az di PowerShell più recenti disponibili in Azure Az PowerShell.
Automazione di Azure include questi cmdlet di Azure Az PowerShell predefiniti, in modo da poter eseguire tutte le attività di gestione del database SQL all'interno del servizio. È anche possibile associare questi cmdlet in Automazione di Azure con i cmdlet di altri servizi di Azure per automatizzare attività complesse nei servizi di Azure e in sistemi di terze parti.
Automazione di Azure può anche eseguire comandi T-SQL (Transact SQL) sui server SQL usando PowerShell.
Per eseguire i comandi sul database, è necessario eseguire le operazioni seguenti:
- Assicurarsi che l'account di Automazione abbia un'identità gestita assegnata dal sistema.
- Fornire le autorizzazioni appropriate per l'identità gestita di Automazione.
- Configurare SQL Server per l'utilizzo dell'autenticazione Di Microsoft Entra.
- Creare un utente nel server SQL mappato all'identità gestita dell'account di Automazione.
- Creare un runbook per connettersi ed eseguire i comandi.
- (Facoltativo) Se il server SQL è protetto da un firewall, creare un ruolo di lavoro ibrido per runbook (HRW), installare i moduli SQL in tale server e aggiungere l'indirizzo IP HRW all'elenco elementi consentiti nel firewall.
Connessione al database SQL di Azure usando l'identità gestita assegnata dal sistema
Per consentire l'accesso dall'identità gestita del sistema di Automazione al database SQL di Azure, seguire questa procedura:
Se l'identità gestita del sistema di automazione è OFF, eseguire le operazioni seguenti:
Accedere al portale di Azure.
Passare all'account di Automazione.
Nella pagina Account di Automazione, in Account Impostazioni, selezionare Identità.
Nella scheda Assegnata dal sistema selezionare Lo stato come ON.
Dopo aver attivato l'identità gestita di sistema, è necessario specificare l'account per l'accesso necessario attenendosi alla procedura seguente:
- Nell'account di Automazione | Pagina Identità , scheda Assegnata dal sistema, in Autorizzazioni selezionare Assegnazioni di ruolo di Azure.
- Nella pagina Assegnazioni di ruolo di Azure selezionare +Aggiungi assegnazione di ruolo (anteprima).
- Nell'elenco a discesa Aggiungi assegnazione di ruolo (anteprima) selezionare Ambitocome SQL, selezionare la sottoscrizione, la risorsa nell'elenco a discesa e Il ruolo in base alle autorizzazioni minime necessarie e quindi selezionare Salva.
Configurare SQL Server per l'autenticazione di Active Directory attenendosi alla procedura seguente:
- Passare a portale di Azure home page e selezionare SQL Server.
- Nella pagina SQL Server, in Impostazioni, selezionare Microsoft Entra ID.
- Selezionare Imposta amministratore per configurare SQL Server per l'autenticazione di Active Directory.
Aggiungere l'autenticazione sul lato SQL attenendosi alla procedura seguente:
- Passare a portale di Azure home page e selezionare SQL Server.
- Nella pagina SQL Server, in Impostazioni, selezionare database SQL s.
- Selezionare il database per passare alla pagina Database SQL e selezionare Editor di query (anteprima) ed eseguire le due query seguenti:
- CREATE U edizione Standard R "AutomationAccount" FROM EXTERNAL PROVIDER WITH OBJECT_ID=
ObjectID
- EXEC sp_addrolemember
db_owner
, "AutomationAccount"- Account di Automazione: sostituire con il nome dell'account di Automazione
- ID oggetto: sostituire con l'ID oggetto (entità) per l'entità identità gestita dal sistema del passaggio 1.
- CREATE U edizione Standard R "AutomationAccount" FROM EXTERNAL PROVIDER WITH OBJECT_ID=
Codice di esempio
Connessione ion ad 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'
Controllare le autorizzazioni dell'account sul lato 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]
Nota
Quando un server SQL è in esecuzione dietro un firewall, è necessario eseguire il runbook Automazione di Azure in un computer nella propria rete. Assicurarsi di configurare questo computer come ruolo di lavoro ibrido per runbook in modo che l'indirizzo IP o la rete non sia bloccato dal firewall. Per altre informazioni su come configurare un computer come ruolo di lavoro ibrido, vedere Creare un ruolo di lavoro ibrido.
Usare un ruolo di lavoro ibrido
Quando si usa un ruolo di lavoro ibrido, i moduli usati dal runbook devono essere installati localmente da un prompt di PowerShell con privilegi elevati. Ad esempio: - Install-module Az.Accounts and Install-module SqlServer
. Per trovare i nomi dei moduli necessari, eseguire un comando in ogni cmdlet e quindi controllare l'origine. Ad esempio, per controllare il nome del modulo per il cmdlet Connect-AzAccounts
che fa parte del modulo Az.Account, eseguire il comando : get-command Connect-AzAccount
Nota
È consigliabile aggiungere il codice seguente nella parte superiore di qualsiasi runbook che deve essere eseguito in un ruolo di lavoro ibrido: if ($($env:computerName) -eq "CLIENT") {"Runbook running on Azure CLIENT"} else {"Runbook running on " + $env:computerName}
. Il codice consente di visualizzare il nodo in cui è in esecuzione e, nel caso in cui venga eseguito accidentalmente nel cloud di Azure invece del ruolo di lavoro ibrido, consente di determinare il motivo per cui un runbook non funzionava.
Passaggi successivi
- Per informazioni dettagliate sull'uso delle credenziali, vedere Gestire le credenziali in Automazione di Azure.
- Per informazioni sui moduli, vedere Gestire i moduli in Automazione di Azure.
- Se è necessario avviare un runbook, vedere Avviare un runbook in Automazione di Azure.
- Per informazioni dettagliate su PowerShell, vedere Documentazione di PowerShell.