Account del servizio SQL Server privilegi e diritti di Windows


12

La mia domanda è: se si crea un nuovo account utente di dominio per ciascuno dei processi di SQL Server, quali autorizzazioni devono essere impostate per ciascun account? Oppure il gestore della configurazione SQL si occupa davvero di questo, e ho appena avuto un problema imprevisto?

Molto spesso devo installare Microsoft SQL Server e mi chiedevo se qualcuno potesse fornire consigli sulla configurazione degli account su cui dovrebbero funzionare i servizi. IMO questo è stato vagamente documentato da Microsoft, mentre ti indicano nella giusta direzione che non sono mai stato in grado di trovare esempi concreti.

Per riassumere ciò che ho visto finora:

Per distribuzioni semplici \ ambienti di sviluppo è OK utilizzare le impostazioni predefinite dell'account virtuale utilizzate dall'installatore: ad es NT SERVICE\MSSQLSERVER

Evita di usare l' SYSTEMaccount, questo non è sicuro.

Per la produzione e negli ambienti di dominio, si consiglia di utilizzare un account di servizio gestito o di creare un account utente di dominio (non un amministratore) per ciascun servizio. Presumibilmente se si utilizza un account di dominio al momento dell'installazione, il programma di installazione imposterà tutte le autorizzazioni necessarie per l'utente.

Se si modifica l'account del servizio su un'installazione esistente da un account virtuale a un account di dominio, si consiglia di utilizzare il gestore della configurazione di SQL Server per impostare i nuovi account di servizio. Presumibilmente questo imposterà tutte le autorizzazioni necessarie per te.

Ho appena provato a cambiare l'account del servizio in un'installazione esistente in un account di dominio e questo mi darebbe un errore di accesso fino a quando non avessi concesso l' log on as serviceautorizzazione dell'account , che contraddice la parte in cui il gestore della configurazione di SQL Server imposterà le autorizzazioni necessarie. (Anche se non sono sicuro che un oggetto Criteri di gruppo possa aver interferito con l'impostazione di questa politica di sicurezza locale)

Microsoft fornisce un elenco delle autorizzazioni concesse dall'installazione di SQL Server in questa pagina .

Ma non mi è chiaro se è qualcosa che dovrei fare manualmente affinché l'utente crei per eseguire il servizio o se utilizzare il gestore configurazione SQL debba impostare automaticamente queste autorizzazioni.

SQL Server 2014, Domain Controller è su Windows Server 2008 R2.


Quale versione di SQL? È questo un ambiente AD? In tal caso, qual è il livello del dominio?
Katherine Villyard,

Grazie, ho aggiunto le versioni alla domanda. SQL Server 2014, Domain Controller è a livello funzionale di Windows Server 2008 R2

1
Non mi sembra una vaga documentazione. Questo sembra abbastanza completo. - msdn.microsoft.com/en-us/library/ms143504.aspx

Sì, sono d'accordo, nel complesso la documentazione è buona ma la parte di cui non sono sicuro era vaga è ciò che intendevo. Hai ragione, in generale la documentazione è molto dettagliata.
Plumdog,

Risposte:


10

Molto spesso devo installare MS SQL Server e mi chiedevo se qualcuno potesse fornire consigli sulla configurazione degli account su cui dovrebbero funzionare i servizi. IMO questo è stato vagamente documentato da Microsoft, mentre ti indicano nella giusta direzione che non sono mai stato in grado di trovare esempi concreti.

In realtà è documentato abbastanza accuratamente: http://msdn.microsoft.com/en-us/library/ms143504.aspx

C'è una parte di cui non sei sicuro?

Per distribuzioni semplici \ ambienti di sviluppo è OK utilizzare le impostazioni predefinite dell'account virtuale utilizzate dall'installatore: ad es. NT SERVICE \ MSSQLSERVER

Questo dipenderà dall'ambiente. Personalmente, odio trovare un server che qualcuno ha configurato usando un account locale e chiedere di ottenere l'accesso alle risorse di rete un po 'di tempo in futuro, tra le altre questioni.

Per la produzione e negli ambienti di dominio, si consiglia di utilizzare un account di servizio gestito o di creare un account utente di dominio (non un amministratore) per ciascun servizio.

Ancora una volta, dipende, ma generalmente sarei d'accordo (un contro esempio sarebbe gruppi di disponibilità in cui ha senso utilizzare un singolo account di dominio in tutte le istanze).

Presumibilmente se si utilizza un account di dominio al momento dell'installazione, il programma di installazione imposterà tutte le autorizzazioni necessarie per l'utente.

A meno che non si verifichi un errore, ecc., Lo farà. Non sono sicuro del perché la parte "Presumibilmente".

Se si modifica l'account del servizio su un'installazione esistente da un account virtuale a un account di dominio, si consiglia di utilizzare il gestore della configurazione di SQL Server per impostare i nuovi account di servizio. Presumibilmente questo imposterà tutte le autorizzazioni necessarie per te.

Quando si modifica uno qualsiasi dei servizi per SQL Server, utilizzare sempre SSCM. Sempre. Periodo. Imposta le autorizzazioni per il nuovo account sulle basi. Se prima che fosse utilizzato l'account di sistema locale e fosse stata concessa l'autorizzazione illimitata a tutto il sistema, mi sarei aspettato che qualcosa fallisse dopo la modifica a causa di una maggiore sicurezza controllata. Questo non è un errore SSCM di SQL Server, è un errore dell'amministratore di non concedere le autorizzazioni EXTRA appropriate (come l'accesso a una condivisione di rete, cartelle con restrizioni, elementi al di fuori del campo di installazione di SQL Server, ecc.)

Ho appena provato a cambiare l'account del servizio in un'installazione esistente in un account di dominio e questo mi darebbe un errore di accesso fino a quando non avessi concesso l'autorizzazione "Accedi come servizio" dell'account, che contraddice la parte in cui il gestore della configurazione di SQL Server imposterà qualsiasi richiesta permessi. (Anche se non sono sicuro che un oggetto Criteri di gruppo possa aver interferito con l'impostazione di questa politica di sicurezza locale)

Sembra che un oggetto Criteri di gruppo stia causando un problema (IMHO). Non sarebbe la prima volta :)

Quindi la mia domanda è: se crei un nuovo account utente di dominio per ciascuno dei processi di SQL Server quali autorizzazioni dovrebbero essere impostate per ciascun account?

Vorrei impostare esplicitamente tutte le autorizzazioni al di fuori di quelle indicate nel link msdn che ho sopra (anche dato da @joeqwerty e nel tuo PO). Ad esempio, su una cartella "backup" su una condivisione di rete, su una nuova unità aggiunta per contenere nuovi database (in cui l'installazione era già in esecuzione ma l'unità non esisteva), ecc.

Ma non mi è chiaro se è qualcosa che dovrei fare manualmente affinché l'utente crei per eseguire il servizio o se utilizzare il gestore configurazione SQL debba impostare automaticamente queste autorizzazioni.

A meno che qualcosa non sia estremamente rotto con il server, questi non dovrebbero essere dati manualmente.


Grazie per la tua risposta, sono d'accordo con i tuoi commenti. Ho installato il server SQL su una VM pulita diversa per verificarlo e sono stato in grado di passare dall'account virtuale NT SERVICE / MSSQLSERVER a un account utente di dominio e ha funzionato senza problemi. Quindi penso che la risposta sia come hai detto, utilizzare Gestione configurazione SQL Server per modificare gli accessi dell'account utente del servizio e non dovrebbero essere richieste autorizzazioni aggiuntive.
Plumdog,

Un altro commento, mi dispiace che avrei potuto chiarire la mia domanda mettendo il mio punto principale in cima al post che farò in futuro. La domanda principale di cui non ero sicuro era; [se si crea un nuovo account utente di dominio per ciascuno dei processi di SQL Server, quali autorizzazioni devono essere impostate per ciascun account? ...]. Il motivo per cui ho ritenuto che la documentazione fosse vaga in questa parte è perché esiste un elenco di autorizzazioni impostate, ma non è esplicito se SSCM le imposterà per te.
Plumdog,

@plumdog Per il tuo secondo commento, la maggior parte delle autorizzazioni sono fornite dall'installer. Un account di servizio virtuale e un sid sono legati a quello, motivo per cui SSCM dovrebbe sempre essere utilizzato in modo che il trasferimento in e out delle autorizzazioni associate a questo venga eseguito correttamente, tra le altre cose come la sicurezza legata alla crittografia della chiave master del servizio, ecc. .
Sean Gallardy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.