Condividi tramite


Crittografia avanzata

Si applica a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

SQL Server 2022 Analysis Services (SSAS) CU1 e versioni successive includono la crittografia avanzata per determinate operazioni di scrittura nello schema del database modello. Quando si esegue l'aggiornamento da una versione precedente di SSAS, è necessario aggiornare i database del modello per usare la crittografia più recente. Se la crittografia non viene aggiornata, alcune operazioni di scrittura dello schema del database vengono bloccate. Ad esempio, non è possibile aggiungere una nuova origine dati o modificare le stringhe di connessione.

Attenzione

I database di Analysis Services nuovi o aggiornati con crittografia avanzata non possono essere caricati nelle versioni precedenti di SQL Server Analysis Services.

Aggiornamento dei database di modelli tabulari

Per i database modello tabulare a livello di compatibilità 1600 e superiore, è possibile restituire l'errore seguente durante determinate operazioni di scrittura dello schema:

"Il nuovo database tabulare '%{DatabaseName/}' non usa lo schema di crittografia più recente. Eseguire il comando RemoveDiscontinuedFeatured con l'opzione EnsureProperEncryption (o ripristinare il database dal file di backup con la stessa opzione) per eseguire l'aggiornamento alla crittografia più recente.

Per aggiornare la crittografia, eseguire il backup del database e quindi eseguire il ripristino con l'opzione EnsureProperEncryption abilitata eseguendo il comando XMLA seguente in SQL Server Management Studio:

<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" Transaction="false" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl100="http://schemas.microsoft.com/analysisservices/2008/engine/100">
<Restore xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:ddl922="http://schemas.microsoft.com/analysisservices/2022/engine/922">
<File>your_backup_file_pathname</File>
<AllowOverwrite>true</AllowOverwrite>
<ddl922:EnsureProperEncryption>true</ddl922:EnsureProperEncryption>
</Restore>
</Batch>

In alternativa, se il database è già caricato, eseguire il comando XML for Analysis (XMLA) seguente in SQL Server Management Studio:

<RemoveDiscontinuedFeatures xmlns='http://schemas.microsoft.com/analysisservices/2003/engine' xmlns:ddl922='http://schemas.microsoft.com/analysisservices/2022/engine/922'>
  <DatabaseID>DatabaseName</DatabaseID>
  <ddl922:EnsureProperEncryption>true</ddl922:EnsureProperEncryption>
</RemoveDiscontinuedFeatures>

Aggiornamento dei database del modello multidimensionale

Per i database modello multidimensionale a tutti i livelli di compatibilità, è possibile restituire l'errore seguente durante determinate operazioni di scrittura dello schema:

"Database multidimensionale '%{DatabaseName/}' non usa lo schema di crittografia più recente. Creare un file di backup e ripristinare un database dal file di backup con l'opzione EnsureProperEncryption per eseguire l'aggiornamento alla crittografia più recente.

Per aggiornare la crittografia, eseguire il backup del database e quindi eseguire il ripristino con l'opzione EnsureProperEncryption abilitata.

In alternativa, se il database è già caricato, eseguire il comando XMLA seguente in SQL Server Management Studio:

<RemoveDiscontinuedFeatures xmlns='http://schemas.microsoft.com/analysisservices/2003/engine' xmlns:ddl922='http://schemas.microsoft.com/analysisservices/2022/engine/922'>
  <DatabaseID>DatabaseName</DatabaseID>
  <ddl922:EnsureProperEncryption>true</ddl922:EnsureProperEncryption>
</RemoveDiscontinuedFeatures>

Gestione del ciclo di vita delle chiavi

SQL Server Analysis Services usa una chiave di crittografia del database per crittografare i dati sensibili in base al database, ad esempio le credenziali dell'origine dati e le stringhe di connessione. In SSAS 2025 e versioni successive è possibile usare il set di righe dello schema DBSCHEMA_CATALOGS per determinare il livello di crittografia dei database del modello e l'età della chiave del database. Controllare la colonna ENCRYPTION_LEVEL e verificare che il livello sia Analysis Services 2022 CU. Controllare la colonna CRYPTOKEY_UPDATED per la data di creazione o l'ultima data di rigenerazione della chiave di crittografia del database.

È possibile rigenerare la chiave di crittografia del database usando il comando RemoveDiscontinuedFeatures. Analogamente all'aggiornamento dalla crittografia legacy descritta in precedenza, il comando RemoveDiscontinuedFeatures decrittografa i dati a protezione diretta, genera una nuova chiave di crittografia del database e quindi crittografa nuovamente i dati a protezione diretta usando la nuova chiave di crittografia del database.

<RemoveDiscontinuedFeatures xmlns='http://schemas.microsoft.com/analysisservices/2003/engine' xmlns:ddl922='http://schemas.microsoft.com/analysisservices/2022/engine/922'>
  <DatabaseID>DatabaseName</DatabaseID>
  <ddl922:EnsureProperEncryption>true</ddl922:EnsureProperEncryption>
</RemoveDiscontinuedFeatures>

Procedure di modifica dell'account di servizio

SQL Server Analysis Services crittografa ogni chiave di crittografia del database usando una chiave di crittografia a livello di server. La crittografia avanzata in SSAS 2022 CU1 e versioni successive usa quindi l'API di protezione dei dati (DPAPI) per proteggere e accedere in modo sicuro alla chiave di crittografia del server usando le informazioni dell'account del servizio corrente e dell'account del computer locale. La chiave di crittografia del server può essere decrittografata solo usando lo stesso account del servizio nel computer locale. A causa della dipendenza dall'account del servizio corrente, assicurarsi di seguire le procedure seguenti per modificare l'account del servizio SQL Server Analysis Services.

Cambiamento dell'account di servizio di un'istanza Multidimensionale

Se è necessario modificare l'account del servizio di un'istanza del server in esecuzione in modalità multidimensionale, è essenziale eseguire il backup dei database del modello, disinstallare e quindi reinstallare il server e quindi ripristinare i database del modello. Questo approccio garantisce che tutti gli oggetti proteggibili siano crittografati correttamente, incluse le credenziali di QueryLogConnectionString e ImpersonationAccount. In alternativa, è anche possibile usare un approccio di collegamento/scollegamento, ma questo approccio richiede di mantenere la cartella dati esistente.

  1. Usare SSMS per eseguire il backup di ogni database nel file con estensione abf.

  2. Disinstallare l'istanza del server SSAS.

  3. Eliminare eventuali resti dell'istanza del server disinstallata, ad esempio cartelle di dati rimanenti o file di configurazione.

  4. Installare una nuova istanza del server SSAS e assegnare un nuovo account del servizio.

  5. Ripristina i database dai file di backup con estensione .abf.

Prestare attenzione quando si implementano questi passaggi per evitare la perdita di dati o le vulnerabilità di sicurezza. Eseguire sempre i backup dei dati e cercare indicazioni dall'amministratore di sistema prima di apportare modifiche sostanziali agli account del servizio o alle configurazioni del server.

Modifica dell'account di servizio di un'istanza tabulare

Le istanze del server tabulare non richiedono la reinstallazione completa del server perché i server tabulari non usano le credenziali QueryLogConnectionString o ImpersonationAccount a livello di server. Anche se la procedura non si basa sui backup del database, è consigliabile eseguire sempre i backup dei dati e cercare indicazioni dall'amministratore di sistema prima di apportare modifiche sostanziali agli account del servizio o alle configurazioni del server.

  1. Consigliato ma facoltativo, usare SSMS per eseguire il backup di ogni database in un file con estensione abf.

  2. Scollegare tutti i database del modello.

  3. Fermare il servizio SSAS.

  4. Modificare l'account del servizio SSAS.

  5. Avviare il servizio SSAS.

  6. Riattaccare tutti i database di modello.

Spostamento dei database modello verso un'altra istanza del server

Se è necessario trasferire database modello tra server, è essenziale usare un metodo di backup/ripristino o scollegamento/collegamento. Per informazioni dettagliate sull'uso dell'approccio di distacco/aggancio tramite SSMS, AMO o XMLA, consultare Spostare un database di Analysis Services.

Supporto del cluster di failover

SQL Server 2025 Analysis Services con crittografia avanzata può essere installato in un cluster di failover di Windows Server (WSFC) per ottenere una disponibilità elevata. In un ambiente WSFC, tutte le istanze del server devono usare lo stesso account utente di dominio di Active Directory dell'account del servizio in modo che la chiave di crittografia del server possa essere decrittografata in tutte le istanze del server. Gli account di Windows locali, gli account Build-In e gli account Entra ID non sono supportati.

Annotazioni

SQL Server 2022 Analysis Services CU1 con crittografia avanzata non offre il supporto del cluster di failover. Per trarre vantaggio dalla crittografia avanzata in un ambiente cluster di failover, è necessario eseguire l'aggiornamento a SQL Server 2025 Analysis Services.

Risoluzione dei problemi

Problema: Se i passaggi di backup/ripristino precedenti non vengono seguiti, la modifica dell'account del servizio di Analysis Services per SQL Server 2022 può causare il mancato avvio del servizio.

Il messaggio seguente nel file Log\msmdsrv.log indica che il servizio non è in grado di avviare perché l'account del servizio è stato modificato:

La chiave crittografica Server Gen2 non è presente, ma l'oggetto di assembly del server 'System' è impostato per l'uso della chiave crittografica server gen2. Interruzione del server. (Origine: \?\C:\Programmi\Microsoft SQL Server\MSAS16.MSSQLSERVER\OLAP\Log\msmdsrv.log, Tipo: 1, Categoria: 289, ID evento: 0x4121005C

Soluzione: Nel file msmdsrv.ini, in ConfigurationSettings>DataDir, determinare il percorso della cartella Dati . Quindi, nella cartella Dati eliminare i file con il nome contenente .asm.xmle tutte le cartelle con estensione asm .

Dopo aver eliminato i file, riavviare il servizio Analysis Services. I file con estensione asm vengono creati di nuovo automaticamente.

Le proprietà crittografate seguenti devono quindi essere configurate tramite SQL Server Management Studio (SSMS):

  • Log\QueryLog\QueryLogConnectionString.
  • Ogni origine dati ImpersonationAccount password o password di autenticazione.

Vedere anche

Eseguire il backup e il ripristino di database di Analysis Services
Livello di compatibilità per i modelli tabulari