Iscriviti al feed

L'anno scorso, l'Ansible Role microsoft.sql.server è stato introdotto in Red Hat Enterprise Linux (RHEL). Con il rilascio di RHEL 8.8 e 9.2, questo ruolo riceve un nuovo aggiornamento con diverse nuove funzionalità:

Questo articolo descrive l'integrazione con Active Directory (AD) e illustra l'intero processo:

  1. Assicurarsi di soddisfare i requisiti per configurare l'autenticazione AD per SQL Server
  2. Preparare un file di inventario Ansible
  3. Esplorare le variabili da impostare e preparare un file Ansible Playbook utilizzando il ruolo per configurare automaticamente l'autenticazione con Active Directory
  4. Eseguire il ruolo
  5. Completare la configurazione
  6. Verificare che l'autenticazione funzioni come previsto

Prerequisiti

Prima di iniziare, verifica i requisiti per il ruolo.

  1. È necessario disporre di un server Active Directory in esecuzione e accessibile dalla macchina RHEL. Puoi consultare la panoramica dei prerequisiti nella documentazione Microsoft leggendo l'articolo Aggiungere un host di SQL Server in Linux a un dominio di Active Directory. In caso di problemi con i prerequisiti, fai riferimento all'articolo sulla risoluzione dei problemi di Active Directory.
  2. Verifica che la ricerca DNS funzioni. È necessario poter eseguire correttamente il ping del server Active Directory in base al suo indirizzo IP e ai nomi DNS brevi e completi dalla macchina RHEL.
  3. Verifica che la ricerca DNS inversa funzioni. L'esecuzione del comando nslookup per l'indirizzo IP del server Active Directory deve trasformarsi nel nome DNS corretto, che a sua volta deve trasformarsi nell'indirizzo IP corretto.
  4. Assicurati di disporre dell'accesso e delle credenziali di un utente di Active Directory autorizzato a creare account e nomi delle entità servizio nel dominio.

Prepara l'inventario Ansible

L'inventario deve contenere solo i server RHEL che desideri configurare per l'autenticazione con Active Directory. Questo esempio utilizza il file di inventario inventory.yml, che contiene un singolo nodo RHEL rhel-sql-server.example.com:

$ cat inventory.yml
---
all:
hosts:
rhel-sql-server.example.com

Usa il ruolo

Successivamente, è necessario un playbook per configurare l'autenticazione con Active Directory. È più semplice farlo dopo aver esaminato un playbook di esempio, regolando le variabili e i parametri in base alle esigenze e utilizzandolo come base di partenza.

Tieni presente che il ruolo richiede l'impostazione di alcune password con variabili. Gli esempi in questo articolo forniscono le variabili in testo normale, ma in produzione è necessario utilizzare Ansible Vault per crittografare le password.

Esempio di playbook

Ecco un esempio di playbook salvato come playbook.yml. Configura l'autenticazione con Active Directory:

---
- name: Configure with AD server authentication
hosts: all
vars:
# General variables
mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula: true
mssql_accept_microsoft_cli_utilities_for_sql_server_eula: true
mssql_accept_microsoft_sql_server_standard_eula: true
mssql_version: 2022
mssql_password: "p@55w0rD"
mssql_edition: Evaluation
mssql_manage_firewall: true
# AD Integration required variables
mssql_ad_configure: true
mssql_ad_sql_user_name: sqluser
mssql_ad_sql_password: "p@55w0rD1"
ad_integration_realm: domain.com
ad_integration_user: Administrator
ad_integration_password: Secret123
# AD Integration optional variables
mssql_ad_sql_user_dn: "CN=sqluser,CN=Users,DC=DOMAIN,DC=COM"
mssql_ad_netbios_name: domain

Le variabili nel playbook di esempio sono suddivise in tre sezioni: generali, obbligatorie e facoltative.

Variabili generali

Le variabili che accettano il Contratto di licenza per l'utente finale (EULA) devono essere impostate su true per confermare l'accettazione dei termini del pacchetto mssql-server. Queste variabili includono:

  • mssql_accept_microsoft_odbc_driver_17_for_sql_server_eula
  • mssql_accept_microsoft_cli_utilities_for_sql_server_eula
  • mssql_accept_microsoft_sql_server_standard_eula

Altre variabili:

  • mssql_version definisce la versione (2017, 2019 o 2022) di SQL Server che desideri gestire.
  • mssql_password imposta la password per l'utente sa
  • mssql_edition definisce l'edizione da configurare per SQL Server
  • mssql_manage_firewall abilita il firewall e apre le porte necessarie. Questa è una variabile facoltativa, da utilizzare solo se desideri che il ruolo gestisca il firewall per te.

Variabili obbligatorie per l'integrazione con AD

Queste variabili sono obbligatorie:

  • mssql_ad_configure: indica se configurare l'autenticazione di Active Directory.
  • mssql_ad_sql_user_name: nome dell'utente da creare nel server Active Directory per abilitare l'autenticazione per SQL Server. Il ruolo utilizza adutil, che richiede che l'utente sia creato con l'autorizzazione per accedervi come utente privilegiato.
  • mssql_ad_sql_password: password per l'utente che si sta creando.
  • ad_integration_realm: nome dell'area di autenticazione di Active Directory.
  • ad_integration_user: nome dell'utente con privilegi in Active Directory. Questo utente deve già esistere nel dominio.
  • ad_integration_password: password per l'utente.

Variabili facoltative per l'integrazione con AD

Queste variabili sono facoltative:

  • mssql_ad_sql_user_dn: è necessario impostare questa variabile se il server AD archivia gli account utente in un'unità organizzativa personalizzata anziché in quella predefinita degli utenti. Per impostazione predefinita, il ruolo crea il nome distinto in base ai valori forniti per le variabili mssql_ad_sql_user_name e ad_integration_realm e utilizza l'unità organizzativa Users (ad esempio, CN=sqluser,CN=Users,DC=DOMAIN,DC=COM). È possibile sovrascriverlo fornendo un nome distinto.
  • mssql_ad_netbios_name: è necessario impostare questa variabile quando il nome di dominio NetBIOS del server AD non corrisponde al primo sottodominio del nome di dominio fornito con la variabile ad_integration_realm (ad esempio, è stato impostato ad_integration_realm come domain.contoso.com, ma il nome di dominio NetBIOS non è domain). Questo valore viene utilizzato per creare l'accesso {{ mssql_ad_netbios_name }}\{ad_integration_user }} in SQL Server.

Esegui l'Ansible Role

Quando avrai la certezza di soddisfare tutti i prerequisiti e di avere pronto l'inventario e il playbook Ansible, puoi eseguire il playbook.

$ ansible-playbook -i inventory.yml playbook.yml

Aggiungi utenti di dominio a SQL Server

Prima che un utente possa accedere, è necessario aggiungerlo a SQL Server. Per farlo, esegui il comando T-SQL seguente per ogni utente del dominio AD:

CREATE LOGIN \[<domain>**<username>*\] FROM WINDOWS;

Abilita ulteriori tipi di crittografia

Dopo aver eseguito il ruolo per configurare l'autenticazione di Active Directory, è necessario aggiungere i tipi di crittografia Kerberos AES128 e AES256 all'utente definito con la variabile mssql_ad_sql_user_name in Active Directory. Puoi farlo utilizzando l'interfaccia utente web di Active Directory oppure PowerShell.

Interfaccia utente web

Apri l'interfaccia utente web del server AD e accedi.

  1. Vai a Tools > Active Directory Users and Computers > [domain] > Users > [sqluser] > Account 
  2. Nell'elenco delle opzioni dell'account, seleziona This account supports Kerberos AES 128 bit encryption e This account supports Kerberos AES 256 bit encryption
  3. Fai clic su Apply

PowerShell

In PowerShell, utilizza il comando Set-ADUser, sostituendo <sqluser> con il nome utente impostato come variabile mssql_ad_sql_user_name:

Set-ADUser -Identity <sqluser> -KerberosEncryptionType AES128,AES256

Verifica l'autenticazione con Active Directory

Dopo aver eseguito il ruolo per configurare l'autenticazione del server AD e aver aggiunto i tipi di crittografia richiesti all'utente <sqluser>, puoi eseguire l'autenticazione utilizzando uno dei metodi seguenti:

  • Windows o RHEL: Azure Data Studio (ADS)
  • Windows: SQL Server Management Studio (SSMS)
  • RHEL: terminale Linux

Azure Data Studio (ADS)

Se non hai ancora installato ADS, segui la documentazione di Microsoft per scaricare e installare Azure Data Studio.

Una volta installato, avvia ADS.

  1. Fai clic su Create a connection
  2. Dall'elenco dei tipi di autenticazione, seleziona Windows Authentication
  3. Compila gli altri campi e fai clic su Connect

Ora puoi utilizzare SQL Server.

Azure Data Studio user interface

SQL Server Management Studio (SSMS)

Innanzitutto, accedi a Windows con l'utente che desideri utilizzare per accedere a SQL Server, quindi avvia SSMS.

  1. Nel riquadro Connect to server, seleziona Database Engine dall'elenco Server type
  2. Nel campo Server name, inserisci il nome di dominio completo dell'istanza RHEL per cui hai eseguito il ruolo
  3. Dall'elenco Authentication, seleziona Windows Authentication e compila i seguenti campi:
    • Server type: Database Engine
    • Server name: inserisci il nome del server
    • Authentication: Windows Authentication
  4. Fai clic su Connect
SQL Server Management Studio user interface

Terminale Linux

Per verificare l'autenticazione utilizzando un terminale Linux, usa SSH per accedere al server come utente creato dal ruolo.

$ ssh -l <sqluser>@<domain.com< <client.domain.com>

Ottieni un ticket Kerberos per l'utente di Active Directory che desideri autenticare:

$ kinit <AD_user_name>@<DOMAIN.COM<

Utilizza sqlcmd per accedere a SQL Server e, ad esempio, eseguire una query per ottenere l'utente corrente:

/opt/mssql-tools/bin/sqlcmd -S. -Q 'SELECT SYSTEM_USER'

Conclusioni

Il ruolo microsoft.sql.server consente di automatizzare l'integrazione con Active Directory per l'autenticazione degli utenti e utilizza in modo coerente il ruolo redhat.rhel_system_roles.ad_integration per connettersi ad Active Directory e il ruolo redhat.rhel_system_roles.firewall per configurare il firewall. Red Hat offre più ruoli di sistema per gestire diversi servizi e strumenti su RHEL. Se desideri automatizzare i flussi di lavoro, consulta l'elenco dei ruoli di sistema RHEL disponibili e leggi la documentazione o gli articoli del blog correlati sull'argomento. Ci sono molte opzioni a disposizione!

Se vuoi scoprire a cos'altro può servire il ruolo microsoft.sql.server, consulta la documentazione ufficiale di Microsoft.


Sull'autore

Sergei Petrosian is a technical writer at Red Hat working on Satellite and Foreman documentation.

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

Ricerca per canale

automation icon

Automazione

Novità sull'automazione IT di tecnologie, team e ambienti

AI icon

Intelligenza artificiale

Aggiornamenti sulle piattaforme che consentono alle aziende di eseguire carichi di lavoro IA ovunque

open hybrid cloud icon

Hybrid cloud open source

Scopri come affrontare il futuro in modo più agile grazie al cloud ibrido

security icon

Sicurezza

Le ultime novità sulle nostre soluzioni per ridurre i rischi nelle tecnologie e negli ambienti

edge icon

Edge computing

Aggiornamenti sulle piattaforme che semplificano l'operatività edge

Infrastructure icon

Infrastruttura

Le ultime novità sulla piattaforma Linux aziendale leader a livello mondiale

application development icon

Applicazioni

Approfondimenti sulle nostre soluzioni alle sfide applicative più difficili

Original series icon

Serie originali

Raccontiamo le interessanti storie di leader e creatori di tecnologie pensate per le aziende