Configurare gli account del servizio (Analysis Services)

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

Il provisioning di account a livello di prodotto è documentato in Configurare gli account e le autorizzazioni del servizio di Windows, un argomento che fornisce informazioni complete sull'account del servizio per tutti i servizi di SQL Server, tra cui SQL Server Analysis Services. Fare riferimento a questo argomento per ottenere informazioni sui tipi di account validi, sui privilegi di Windows assegnati dal programma di installazione, sulle autorizzazioni per il file system e il Registro di sistema e altro ancora.

In questo argomento vengono fornite informazioni supplementari per SQL Server Analysis Services, incluse le autorizzazioni aggiuntive necessarie per le installazioni tabulari e cluster. Descrive inoltre le autorizzazioni necessarie per supportare le operazioni del server. Ad esempio, è possibile configurare le operazioni di elaborazione e query da eseguire con l'account del servizio , in questo scenario sono necessarie autorizzazioni aggiuntive.

Un altro passaggio di configurazione, non documentato qui, consiste nel registrare un nome dell'entità servizio (SPN) per l'istanza di SQL Server Analysis Services e l'account del servizio. Questo passaggio abilita l'autenticazione pass-through dalle applicazioni client alle origini dati di backend in scenari con doppio hop. Questo passaggio è valido solo per i servizi configurati per la delega vincolata Kerberos. Per altre istruzioni, vedere Configure Analysis Services for Kerberos constrained delegation .

Indicazioni sull'account di accesso

L'account di avvio del servizio Windows MSSQLServerOLAPService può essere un account utente di dominio Windows, un account virtuale, un account del servizio gestito (MSA) o un account predefinito, ad esempio un SID per servizio, NetworkService o LocalSystem. L'uso di un account utente di dominio come account di accesso al servizio fornisce informazioni dettagliate sui formati dell'account utente.

In un cluster di failover, tutte le istanze di Analysis Services devono essere configurate per usare un account utente di dominio Windows. Assegnare lo stesso account a tutte le istanze. Per altre informazioni, vedere Come eseguire il clustering di Analysis Services .

Le istanze autonome devono usare l'account virtuale predefinito NT Service\MSSQLServerOLAPService per l'istanza predefinita o NT Service\MSOLAP$nome-istanza per un'istanza denominata. Questa indicazione si applica alle istanze di Analysis Services in tutte le modalità del server, presupponendo che venga usato Windows Server 2008 R2 e versioni successive per il sistema operativo e SQL Server 2012 e versioni successive per Analysis Services.

Concedere autorizzazioni ad Analysis Services

In questa sezione vengono illustrate le autorizzazioni richieste da Analysis Services per le operazioni interne locali. Queste operazioni includono l'avvio del file eseguibile, la lettura del file di configurazione e il caricamento dei database dalla directory dei dati. Le indicazioni sull'impostazione delle autorizzazioni per l'accesso ai dati esterni e l'interoperabilità con altri servizi e applicazioni sono disponibili in Concessione di autorizzazioni aggiuntive per operazioni server specifiche in questo argomento.

Per le operazioni interne, il titolare dell'autorizzazione in Analysis Services non è l'account di accesso, ma un gruppo di sicurezza di Windows locale creato dal programma di installazione che contiene il SID per servizio. L'assegnazione delle autorizzazioni al gruppo di sicurezza è coerente con le versioni precedenti di Analysis Services. Inoltre, gli account di accesso possono cambiare nel tempo, mentre il SID per servizio e il gruppo di sicurezza locale sono costanti per la durata dell'installazione del server. Per Analysis Services, il gruppo di sicurezza è una scelta migliore per mantenere le autorizzazioni rispetto all'account di accesso. Ogni volta che si concedono manualmente i diritti all'istanza del servizio, indipendentemente dal fatto che si tratti di autorizzazioni del file system o di privilegi di Windows, assicurarsi di concedere le autorizzazioni al gruppo di sicurezza locale creato per l'istanza del server.

Il nome del gruppo di sicurezza segue uno schema specifico. Il prefisso è sempre SQLServerMSASUser$, seguito dal nome del computer, terminando con il nome dell'istanza. L'istanza predefinita è MSSQLSERVER. Un'istanza denominata è il nome specificato durante l'installazione.

È possibile visualizzare questo gruppo di sicurezza nelle impostazioni di sicurezza locali:

  • Eseguire compmgmt.msc | Utenti e gruppi | localiGruppi | SQLServerMSASUser$<server-name>$MSSQLSERVER (per un'istanza predefinita).

  • Per visualizzare i membri, fare doppio clic sul gruppo di sicurezza.

L'unico membro del gruppo è il SID per servizio. Subito dopo c'è l'account di accesso. Il nome dell'account di accesso è generico; serve per fornire il contesto al SID per servizio. Se si modifica l'account di accesso, il gruppo di sicurezza e il SID per servizio non cambiano. Solo l'etichetta dell'account di accesso è diversa.

Privilegi di Windows assegnati all'account del servizio Analysis Services

Analysis Services deve ottenere le autorizzazioni dal sistema operativo per l'avvio del servizio e per richiedere le risorse di sistema. I requisiti variano in base alla modalità del server e a seconda se l'istanza è di tipo cluster.

Tutte le istanze di Analysis Services richiedono il privilegio Accesso come servizio (SeServiceLogonRight). Il programma di installazione di SQL Server assegna il privilegio per l'account del servizio specificato durante l'installazione. Per i server in esecuzione in modalità multidimensionale e di data mining, questo è l'unico privilegio di Windows richiesto dall'account del servizio di Analysis Services per le installazioni di server autonomi ed è l'unico privilegio configurato dal programma di installazione per Analysis Services. Per le istanze cluster e tabulari è necessario aggiungere manualmente ulteriori privilegi di Windows.

Le istanze del cluster di failover, in modalità tabulare o multidimensionale, devono disporre del privilegio Aumento della priorità di pianificazione (SeIncreaseBasePriorityPrivilege).

Le istanze tabulari usano i seguenti tre privilegi aggiuntivi, che devono essere concessi manualmente dopo l'installazione dell'istanza.

Privilege Descrizione
Aumento di un working set di processo (SeIncreaseWorkingSetPrivilege) Questo privilegio è disponibile per tutti gli utenti per impostazione predefinita tramite il gruppo di sicurezza Utenti . Se si blocca un server rimuovendo i privilegi per questo gruppo, Analysis Services potrebbe non riuscire ad avviare, registrando questo errore: "Un privilegio obbligatorio non viene mantenuto dal client". Quando si verifica questo errore, ripristinare il privilegio in Analysis Services concedendole al gruppo di sicurezza di Analysis Services appropriato.
Regolazione quote di memoria per un processo (SeIncreaseQuotaPrivilege) Questo privilegio viene usato per richiedere una quantità maggiore di memoria se un processo non dispone di risorse sufficienti per completare l'esecuzione, in base alle soglie di memoria stabilite per l'istanza.
Blocco di pagine in memoria (SeLockMemoryPrivilege) Questo privilegio è necessario solo se il paging è completamente disattivato. Per impostazione predefinita, un'istanza del server tabulare usa il file di paging di Windows, ma è possibile impedirne l'uso impostando VertiPaqPagingPolicy su 0.

VertiPaqPagingPolicy impostato su 1 (impostazione predefinita) indica all'istanza del server tabulare di usare il file di paging di Windows. Le allocazioni non vengono bloccate consentendo a Windows di eliminare tramite paging le allocazioni in base alle esigenze. Poiché viene usato il paging, non è necessario bloccare le pagine in memoria. Pertanto, per la configurazione predefinita, dove VertiPaqPagingPolicy = 1, non è necessario concedere il privilegio Blocco di pagine in memoria a un'istanza tabulare.

VertiPaqPagingPolicy impostato su 0. Se si disattiva il paging per Analysis Services, le allocazioni vengono bloccate, supponendo che all'istanza tabulare venga concesso il privilegio Blocco di pagine in memoria . Con questa impostazione e il privilegio Blocco di pagine in memoria , Windows non può eliminare tramite paging le allocazioni di memoria effettuate per Analysis Services quando la quantità di memoria disponibile nel sistema è insufficiente. Analysis Services si basa sul privilegio Blocco di pagine in memoria quando si usa VertiPaqPagingPolicy = 0. Si noti che non è consigliabile disattivare il paging di Windows. Si aumenta la frequenza di errori di memoria insufficiente per le operazioni che altrimenti potrebbero riuscire se il paging fosse consentito. Per altre informazioni su VertiPaqPagingPolicy , vedere Memory Properties.

Per visualizzare o aggiungere privilegi di Windows per l'account del servizio

  1. Eseguire GPEDIT.msc | Criteri del computer locale | Configurazione computer | Impostazioni di Windows | Impostazioni di sicurezza | Criteri locali | Assegnazione diritti utente.

  2. Verificare i criteri esistenti che includono SQLServerMSASUser$. Si tratta di un gruppo di sicurezza locale presente nei computer in cui è installato Analysis Services. A questo gruppo di sicurezza vengono concessi sia i privilegi di Windows che le autorizzazioni alle cartelle di file. Fare doppio clic sul privilegio Accesso come servizio per vedere come il gruppo di sicurezza viene specificato nel sistema. Il nome completo del gruppo di sicurezza varia a seconda che Analysis Services sia stato installato come istanza denominata. Quando si aggiungono i privilegi dell'account, usare questo gruppo di sicurezza anziché l'account del servizio effettivo.

  3. Per aggiungere i privilegi dell'account in GPEDIT, fare clic con il pulsante destro del mouse su Aumento di un working set di processo e scegliere Proprietà.

  4. Fare clic su Aggiungi utente o gruppo.

  5. Immettere il gruppo di utenti per l'istanza di Analysis Services. Tenere presente che l'account del servizio è membro di un gruppo di sicurezza locale, per cui è necessario anteporre il nome del computer locale come dominio dell'account.

    Nell'elenco seguente sono riportati due esempi per un'istanza predefinita e un'istanza denominata con nome "Tabular" in un computer con nome "SQL01-WIN12", in cui il nome del computer corrisponde al dominio locale.

    • SQL01-WIN12\SQL01-WIN12$SQLServerMSASUser$MSSQLSERVER

    • SQL01-WIN12\SQL01-WIN12$SQLServerMSASUser$TABULAR

  6. Ripetere per Regolazione limite risorse memoria per un processoe, facoltativamente, per Blocco di pagine in memoria o Aumento della priorità di pianificazione.

Nota

Nelle versioni precedenti del programma di installazione l'account del servizio Analysis Services è stato aggiunto inavvertitamente al gruppo Performance Log Users . Anche se questo problema è stato risolto, le installazioni esistenti potrebbero disporre dell'appartenenza a questo gruppo non necessaria. Poiché l'account del servizio SQL Server Analysis Services non richiede l'appartenenza al gruppo Performance Log Users, è possibile rimuoverlo dal gruppo.

Autorizzazioni per il file system assegnate all'account del servizio Analysis Services

Nota

Vedere Configurare account di servizio e autorizzazioni di Windows per un elenco di autorizzazioni associate a ogni cartella di programma.

Vedere Configurare l'accesso HTTP ad Analysis Services in Internet Information Services (IIS) 8.0 per informazioni sulle autorizzazioni dei file correlate alla configurazione di IIS e alle SQL Server Analysis Services.

Tutte le autorizzazioni del file system necessarie per le operazioni del server, incluse le autorizzazioni necessarie per il caricamento e lo scaricamento dei database da una cartella di dati designata, vengono assegnate da SQL Server programma di installazione durante l'installazione.

Il proprietario delle autorizzazioni per i file di dati, gli eseguibili dei file di programma, i file di configurazioni, i file di log e i file temporanei è un gruppo di sicurezza locale creato dal programma di installazione di SQL Server.

Per ogni istanza installata viene creato un solo gruppo di sicurezza. Il gruppo di sicurezza è denominato dopo l'istanza , ovvero SQLServerMSASUser$MSSQLSERVER per l'istanza predefinita o SQLServerMSASUser$<nomeserver>$<nomeistanza> per un'istanza denominata. Questo gruppo di sicurezza viene fornito dal programma di installazione con le autorizzazioni per i file necessarie per eseguire le operazioni del server. Se si controllano le autorizzazioni di sicurezza per la directory \MSAS13.MSSQLSERVER\OLAP\BIN, si noterà che il proprietario dell'autorizzazione per la directory in questione è il gruppo di sicurezza, non l'account del servizio né il relativo SID per servizio.

Il gruppo di sicurezza contiene un solo membro: l'IDENTIFICATORe di sicurezza (SID) per servizio dell'account di avvio dell'istanza di SQL Server Analysis Services. Il programma di installazione aggiunge il SID per servizio al gruppo di sicurezza locale. L'uso di un gruppo di sicurezza locale con l'appartenenza al SID rappresenta una lieve ma percettibile differenza nel modo in cui il programma di installazione di SQL Server esegue il provisioning di Analysis Services rispetto al Motore di database.

Se si ritiene che le autorizzazioni per i file siano danneggiate, seguire questi passaggi per verificare la corretta esecuzione del provisioning del servizio:

  1. Usare lo strumento da riga di comando per il controllo del servizio (sc.exe) per ottenere il SID di un'istanza del servizio predefinita.

    SC showsid MSSqlServerOlapService

    Per un'istanza denominata, dove il nome dell'istanza è "Tabular", usare questa sintassi:

    SC showsid MSOlap$Tabular

  2. UsareUtenti e gruppi | locali di Gestione | computer per controllare l'appartenenza al gruppo di sicurezza SQLServerMSASUser$<nomeserver>$<nomeistanza>.

    Il SID del membro deve corrispondere al SID per servizio del passaggio 1.

  3. Usare ifile | di programma di Esplora risorse | di Microsoft SQL Server | MSASxx.MSSQLServer | OLAP | bin per verificare le proprietà di sicurezza della cartella vengono concesse al gruppo di sicurezza nel passaggio 2.

Nota

Non rimuovere né modificare mai un SID. Per ripristinare un SID per servizio che è stato eliminato inavvertitamente, vedere https://support.microsoft.com/kb/2620201.

Altre informazioni sui SID per servizio

A ogni account di Windows è associato un SID, ma anche ai servizi possono essere associati dei SID, definiti pertanto SID per servizio. Un SID per servizio viene creato all'installazione dell'istanza del servizio come elemento univoco, permanente del servizio. Il SID per servizio locale è un SID locale a livello di computer generato dal nome del servizio. In un'istanza predefinita, il relativo nome descrittivo è NT SERVICE\MSSQLServerOLAPService.

Il vantaggio di un SID per servizio consiste nella possibilità di modificare in modo arbitrario un account di accesso molto ben visibile senza influire sulle autorizzazioni per i file. Si supponga, ad esempio, che siano installate due istanze di Analysis Services, una predefinita e una denominata, entrambe in esecuzione con lo stesso account utente di Windows. Quando l'account di accesso è condiviso, ogni istanza del servizio avrà un SID per servizio univoco. Questo SID è diverso dal SID dell'account di accesso. Il SID per servizio viene usato per le autorizzazioni per i file e i privilegi di Windows. Al contrario, il SID dell'account di accesso viene usato per gli scenari di autenticazione e autorizzazione. Sono quindi SID diversi usati per scopi diversi.

Poiché il SID non è modificabile, gli ACL del file system creati durante l'installazione del servizio possono essere usati all'infinito, indipendentemente dalla frequenza con cui si modifica l'account del servizio. Come misura di sicurezza aggiuntiva, gli ACL mediante i quali vengono specificate le autorizzazioni tramite un SID garantiscono l'accesso ai file eseguibili del programma e alle cartelle di dati solo da una singola istanza di un servizio, anche se ne vengono eseguiti altri con lo stesso account.

Concessione di ulteriori autorizzazioni di Analysis Services per operazioni del server specifiche

SQL Server Analysis Services esegue alcune attività nel contesto di sicurezza dell'account del servizio (o dell'account di accesso) usato per avviare SQL Server Analysis Services ed esegue altre attività nel contesto di sicurezza dell'utente che richiede l'attività.

Nella tabella seguente sono descritte le autorizzazioni aggiuntive necessarie per supportare le attività eseguite come account del servizio.

Operazione del server Elemento di lavoro Giustificazione
Accesso remoto a origini dati relazionali esterne Creare un accesso al database per l'account del servizio L'elaborazione si riferisce al recupero dei dati da un'origine dati esterna (in genere un database relazionale), che viene successivamente caricato in un database SQL Server Analysis Services. Una delle opzioni di credenziali per il recupero di dati esterni consiste nell'utilizzare l'account del servizio. Questa opzione di credenziali funziona solo se si crea un accesso al database per l'account del servizio e si concedono le autorizzazioni di lettura sul database di origine. Per altre informazioni sull'uso dell'opzione dell'account del servizio per questa attività, vedere Impostare le opzioni di rappresentazione (SSAS - Multidimensionale ). Analogamente, se ROLAP viene utilizzato come modalità di archiviazione, sono disponibili le stesse opzioni di rappresentazione. In questo caso, all'account deve inoltre essere associato l'accesso in scrittura ai dati di origine per elaborare le partizioni ROLAP, in altre parole per archiviare le aggregazioni.
DirectQuery Creare un accesso al database per l'account del servizio DirectQuery è una funzionalità tabulare utilizzata per eseguire una query sui set di dati esterni che sono troppo grandi per adattarsi al modello tabulare o che presentano altre caratteristiche che rendono DirectQuery una soluzione migliore rispetto all'opzione di archiviazione in memoria predefinita. Una delle opzioni di connessione disponibili nella modalità DirectQuery consiste nell'utilizzo dell'account del servizio. Ancora una volta, questa opzione funziona solo quando l'account del servizio dispone di un accesso al database e delle autorizzazioni di lettura sull'origine dati di destinazione. Per altre informazioni sull'uso dell'opzione dell'account del servizio per questa attività, vedere Impostare le opzioni di rappresentazione (SSAS - Multidimensionale ). In alternativa, è possibile utilizzare le credenziali dell'utente corrente per il recupero dei dati. Nella maggior parte dei casi, per questa opzione è richiesta una connessione a doppio hop, pertanto assicurarsi di configurare l'account del servizio per la delega vincolata Kerberos, affinché sia in grado di delegare identità a un server a valle. Per altre informazioni, vedere Configure Analysis Services for Kerberos constrained delegation.
Accesso remoto ad altre istanze di SSAS Aggiungere l'account del servizio ai ruoli del database di Analysis Services definiti nel server remoto Le partizioni remote e il riferimento a oggetti collegati in altre istanze di SQL Server Analysis Services remote sono entrambe funzionalità di sistema che richiedono autorizzazioni per un computer remoto o un dispositivo. Se un utente crea e popola le partizioni remote oppure configura un oggetto collegato, questa operazione viene eseguita nel contesto di sicurezza dell'utente corrente. Se successivamente si automatizzano queste operazioni, SQL Server Analysis Services accederà alle istanze remote nel contesto di sicurezza dell'account del servizio. Per accedere agli oggetti collegati in un'istanza remota di SQL Server Analysis Services, l'account di accesso deve disporre dell'autorizzazione per leggere gli oggetti appropriati nell'istanza remota, ad esempio l'accesso in lettura a determinate dimensioni. Analogamente, per utilizzare le partizioni remote è necessario che l'account del servizio disponga dei diritti amministrativi per l'istanza remota. Queste autorizzazioni vengono concesse per l'istanza di Analysis Services remota, utilizzando ruoli mediante i quali vengono associate operazioni consentite a un oggetto specifico. Per istruzioni su come concedere autorizzazioni di controllo completo che consentono operazioni di elaborazione e query, vedere Concedere autorizzazioni di database (Analysis Services ). Per altre informazioni sulle partizioni remote, vedere Creare e gestire una partizione remota (Analysis Services ).
Writeback Aggiungere l'account del servizio ai ruoli del database di Analysis Services definiti nel server remoto Se abilitato in applicazioni client, il writeback è una funzionalità dei modelli multidimensionali che consente la creazione di nuovi valori dei dati durante la relativa analisi. Se il writeback è abilitato all'interno di qualsiasi dimensione o cubo, l'account del servizio SQL Server Analysis Services deve disporre delle autorizzazioni di scrittura per la tabella writeback nel database relazionale SQL Server di origine. Se questa tabella non esiste già e deve essere creata, l'account del servizio SQL Server Analysis Services deve disporre anche delle autorizzazioni per la creazione di tabelle all'interno del database SQL Server designato.
Scrivere in una tabella del log di query in un database relazionale SQL Server Creare un accesso al database per l'account del servizio e assegnare le autorizzazioni di scrittura sulla tabella del log di query È possibile abilitare la registrazione delle query per raccogliere i dati di utilizzo in una tabella di database per una successiva analisi. L'account del servizio SQL Server Analysis Services deve disporre delle autorizzazioni di scrittura per la tabella dei log di query nel database SQL Server designato. Se questa tabella non esiste già e deve essere creata, l'account di accesso SQL Server Analysis Services deve disporre anche delle autorizzazioni di creazione della tabella all'interno del database SQL Server designato. Per altre informazioni, vedere i post dei blog Improve SQL Server Analysis Services Performance with the Usage Based Optimization Wizard (Blog) (Miglioramento delle prestazioni di SQL Server Analysis Services con l'Ottimizzazione guidata basata sulle statistiche di utilizzo) e Query Logging in Analysis Services (Blog)(Registrazione delle query in Analysis Services).

Configurare account di servizio e autorizzazioni di Windows
Account del servizio SQL Server e SID per servizio (blog)
SQL Server utilizza un SID di servizio per fornire l'isolamento dei servizi (articolo KB)
Token di accesso (MSDN)
ID di sicurezza (MSDN)
Token di accesso (Wikipedia)
Elenchi di controllo di accesso (Wikipedia)