Come configuro SQL Server 2012 in modo che possa ripristinare e visualizzare i file nel mio account utente?


10

Ho un'istanza di SQL Server 2012 in esecuzione come servizio sul mio computer e in base alla pagina del servizio accede come account "Servizio NT \ MSSQLSERVER". Tuttavia, non riesco a vedere quel nome account da nessun'altra parte, incluso nell'area "Utenti e gruppi locali" nella schermata di gestione del computer, perché, come dice un link qui sotto, non è un account utente, è un nome di servizio, in quella casella che Microsoft ha così utile l'etichetta "account". A questo punto posso vedere molte persone confuse.

L'attività che sto tentando di eseguire è ripristinare i file utilizzando la finestra di dialogo SSMS "Individua file di backup", che utilizza una finestra di dialogo completamente diversa da qualsiasi finestra di dialogo aperta di file standard di Windows, probabilmente perché esegue un lavoro "remoto" e opera dal contesto di sicurezza del server SQL, un'altra ricca fonte di confusione per l'utente finale, che spero che questa domanda possa aiutare a chiarire.

Finora se voglio ripristinare un file .mdf / .bak di backup che ho in una delle mie cartelle, devo impostare quella cartella in modo che sia leggibile da Tutti o altrimenti non riesco ad accedere lì con SQL Server "Trova backup File "finestra. Trovo l'idea che tu stia utilizzando una GUI che parla con un servizio che ha account e diritti utente diversi da te, che nessuno in Microsoft si è nemmeno preoccupato di chiarirti, molto confuso anche quando ho anni di esperienza con l'amministrazione del sistema Windows .

Spero di aver perso alcune pagine di documentazione per SQL Server che ti direbbero, dopo aver installato una nuova istanza di SQL Server, come impostare la sicurezza.

I post nei forum come questo hanno persino uno staff Microsoft che dice "questo è complicato" e che "è cambiato, ancora" in Denali. Come funziona ora in SQL Server 2012 e come posso aggiungere l'autorizzazione per leggere i file appartenenti agli Utenti alla sicurezza del motore di database SQL SID.


Il motivo per cui SQL non utilizza la finestra di dialogo standard è quindi non è possibile selezionare un file da cui SQL non è in grado di leggere. Per quanto riguarda come configurare la sicurezza, sei aperto a modificare l'account con cui viene eseguito SQL o vuoi lasciarlo com'è adesso? Se la modifica dell'account del servizio è corretta, è facile occuparsene. Usiamo account nominati, quindi non posso fare test con l'account MSSQLSERVER generico per aiutarlo.
cfradenburg,


Se tutti modificano i propri server SQL per l'esecuzione con un ID utente normale durante lo sviluppo, questa potrebbe essere la "best practice". Mi chiedo solo se sia una buona idea o no. Se aggiungere manualmente "NT Service \ MSSQLSERVER" alle cartelle che devo aggiungere è l'idea standard, immagino che sarebbe la soluzione minima più logica, giusto? Non vorrei che l'interfaccia utente SSMS del server SQL fosse un po 'più semplice per connettersi a questo ID account "NT Server \ xxx" nascosto.
Warren P

Risposte:


5

Per riferimento "Denali" è SQL Server 2012. Per quanto riguarda la "confusione dell'utente finale", non mi preoccupo affatto se un utente finale sia confuso o meno rispetto a SSMS. Microsoft non ha sviluppato questo strumento per l'utente normale, ma per l'amministratore del database e / o un utente che doveva gestire un database. Pertanto ci sarà una curva di apprendimento con gli strumenti forniti e come funzionano. La finestra di dialogo del file è stata così in SSMS da quando SSMS è uscito con SQL Server 2005. Questo è il motivo per cui in generale vedrai la maggior parte delle stick con le istruzioni T-SQL per il backup, il ripristino o il collegamento di un database che lo utilizza da allora .

Per configurare le autorizzazioni del file system con SQL Server è possibile seguire le istruzioni da MSDN qui .

Il modo in cui vengono gestiti gli account di servizio non è stato fornito o a causa di SQL Server, a causa della modifica a livello del sistema operativo. Window Server 2008 R2 ha aggiunto un po 'più di livello di sicurezza agli account dei servizi. Il vantaggio che hai è che l'account del servizio può accedere più facilmente alle risorse su un dominio anche se installato con le impostazioni predefinite. Questo collegamento fornisce uno sguardo abbastanza dettagliato su come vengono gestite le autorizzazioni degli account di servizio con SQL Server 2012. L'estratto del collegamento è riportato di seguito sugli account virtuali utilizzati per impostazione predefinita in SQL Server 2012. C'è anche un collegamento fornito nell'articolo che approfondisce discussione sul concetto di account di servizio con Windows, qui. Proviene da Windows Server 2008 R2 ma credo sia ancora valido su Windows Server 2012 e probabilmente su Windows Server 2012 R2.

Account virtuali

Gli account virtuali in Windows Server 2008 R2 e Windows 7 sono account locali gestiti che forniscono le seguenti funzionalità per semplificare l'amministrazione del servizio. L'account virtuale è gestito automaticamente e l'account virtuale può accedere alla rete in un ambiente di dominio. Se il valore predefinito viene utilizzato per gli account del servizio durante l'installazione di SQL Server su Windows Server 2008 R2 o Windows 7, viene utilizzato un account virtuale che utilizza il nome dell'istanza come nome del servizio, nel formato NT SERVICE \. I servizi eseguiti come account virtuali accedono alle risorse di rete utilizzando le credenziali dell'account del computer nel formato \ $. Quando si specifica un account virtuale per l'avvio di SQL Server, lasciare vuota la password. Se l'account virtuale non riesce a registrare il nome principale del servizio (SPN), registrare manualmente il nome SPN. Per ulteriori informazioni sulla registrazione manuale di un nome SPN, vedere Registrare un nome principale di servizio per Kerberos Connections. Nota Nota Gli account virtuali non possono essere utilizzati per l'istanza del cluster di failover di SQL Server, poiché l'account virtuale non avrebbe lo stesso SID su ciascun nodo del cluster.

Nella tabella seguente sono elencati esempi di nomi di account virtuali.

Istanza predefinita del servizio Motore di database: NT SERVICE \ MSSQLSERVER Istanza denominata di un servizio Motore di database denominato PAYROLL: NT SERVICE \ MSSQL $ PAYROLL Servizio SQL Server Agent sull'istanza predefinita di SQL Server: NT SERVICE \ SQLSERVERAGENT Servizio SQL Server Agent su un istanza di SQL Server denominata PAYROLL: NT SERVICE \ SQLAGENT $ PAYROLL


3
Per utente finale intendo una qualsiasi delle dozzine di categorie di persone, alcune abbastanza professionali e tecnicamente competenti in varie discipline, ma che potrebbero NON essere DBA. Personalmente penso che anche i DBA troverebbero che l'interfaccia utente su questo strumento potrebbe essere migliorata. Il robusto mercato degli strumenti di terze parti è un altro indicatore del fatto che SSMS, sebbene gratuito, vale interamente il prezzo.
Warren P

1
Nel 2017 non è migliorato. Quindi la risposta breve è "non migliorerà mai, scopri come funziona, per quanto male l'interfaccia utente sia progettata".
Warren P,

2

Per visualizzare / accedere ai file in un'altra cartella, concedere le NT SERVICE\MSSQLSERVERautorizzazioni per la cartella. Vedi la mia risposta pubblicata sul file .bak non visibile in nessuna directory di SSMS per le schermate e i passaggi coinvolti. (Leggermente diverso dall'aggiunta delle normali autorizzazioni utente / gruppo a una cartella.)

Spero che aiuti!


1

In effetti, se si tenta di eseguire un ripristino tramite SSMS e si è connessi tramite Autenticazione di Windows (!), Sarà il TUO account di Windows (e non "tutti") che avrà bisogno delle autorizzazioni per farlo - NON il servizio SQL Server Account. Spero che questo cancella la confusione. L'account del servizio ha altre esigenze. Ad esempio se si è effettuato l'accesso tramite un account autenticato SQL - quali autorizzazioni dovrebbero richiedere il sistema operativo? - Sarà l'account del servizio di SQL Server in questo solo caso! Questo non è cambiato da SQL Server 7.0 e probabilmente nemmeno prima :)


1
Non dimenticare le credenziali .
Remus Rusanu,

Non sono sicuro che cancella la confusione ... Se hai effettuato l'accesso tramite WA, il tuo account SQL Server necessita delle autorizzazioni per il ripristino (per quanto riguarda SQL Server), ma l'account del servizio SQL Server richiede le autorizzazioni di lettura sul file system per aprire il .bakfile (che generalmente non avrà se si trova nella directory dell'utente, a meno che non sia esplicitamente concesso).
Bruno,
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.