Wie konfiguriere ich SQL Server 2012 so, dass Dateien in meinem Benutzerkonto wiederhergestellt und angezeigt werden können?


10

Ich habe eine SQL Server 2012-Instanz, die als Dienst auf meinem Computer ausgeführt wird, und gemäß der Dienstseite meldet sie sich als Konto "NT Service \ MSSQLSERVER" an. Ich kann diesen Kontonamen jedoch nirgendwo anders sehen, auch nicht im Bereich "Lokale Benutzer und Gruppen" auf dem Computerverwaltungsbildschirm, da es sich, wie ein Link unten sagt, nicht um ein Benutzerkonto handelt, sondern um einen Dienstnamen in diesem Feld Microsoft hat so hilfreich "Konto" beschriftet. An diesem Punkt kann ich viele Leute sehen, die verwirrt sind.

Die Aufgabe, die ich ausführen möchte, besteht darin, Dateien mithilfe des SSMS-Dialogfelds "Sicherungsdatei suchen" wiederherzustellen, in dem ein Dialogfeld verwendet wird, das sich von den Standarddialogfeldern zum Öffnen von Windows-Dateien völlig unterscheidet, wahrscheinlich weil es einen "Remote" -Job ausführt und über das Sicherheitskontext des SQL-Servers, eine weitere Quelle der Verwirrung der Endbenutzer, von der ich hoffe, dass diese Frage zur Klärung beiträgt.

Wenn ich eine .mdf / .bak-Sicherungsdatei wiederherstellen möchte, die sich in einem meiner Ordner befindet, muss ich diesen Ordner so einstellen, dass er für alle lesbar ist. Andernfalls kann ich mit dem SQL Server "Backup suchen" nicht dorthin gelangen Datei "Fenster. Ich finde diese Idee, dass Sie eine grafische Benutzeroberfläche verwenden, die mit einem Dienst kommuniziert, der andere Benutzerkonten und Rechte als Sie hat, die niemand bei Microsoft Ihnen klar machen wollte, sehr verwirrend, selbst wenn ich jahrelange Erfahrung mit der Windows-Systemadministration habe .

Ich hoffe, ich habe einige Dokumentationsseiten für SQL Server verpasst, auf denen Sie nach der Installation einer neuen SQL Server-Instanz erfahren, wie Sie die Sicherheit einrichten können.

In Forenbeiträgen wie diesem haben sogar Microsoft-Mitarbeiter gesagt, "das ist kompliziert" und dass es sich in Denali "wieder geändert" hat. Wie funktioniert dies jetzt in SQL Server 2012 und wie kann ich der Sicherheit des SQL-Datenbankmoduls die Berechtigung zum Lesen von Dateien hinzufügen, die Benutzern gehören SID.


Der Grund, warum SQL das Standarddialogfeld nicht verwendet, besteht darin, dass Sie keine Datei auswählen können, aus der SQL nicht lesen kann. Sind Sie offen für die Konfiguration der Sicherheit, wenn Sie das Konto ändern möchten, unter dem SQL ausgeführt wird, oder möchten Sie es so lassen, wie es jetzt ist? Wenn das Ändern des Dienstkontos in Ordnung ist, ist dies leicht zu erledigen. Wir verwenden benannte Konten, daher kann ich keine Tests mit dem generischen MSSQLSERVER-Konto durchführen, um dies zu unterstützen.
Cfradenburg


Wenn jeder seine SQL Server so ändert, dass sie bei der Entwicklung mit einer regulären Benutzer-ID ausgeführt werden, ist dies möglicherweise die "Best Practice". Ich frage mich nur, ob das eine gute Idee ist oder nicht. Wenn das manuelle Hinzufügen von "NT Service \ MSSQLSERVER" zu den Ordnern, zu denen ich hinzufügen muss, die Standardidee ist, wäre dies wahrscheinlich die logischste minimale Lösung, oder? Ich wünschte, die SQL Server-SSMS-Benutzeroberfläche wäre etwas einfacher mit dieser versteckten Konto-ID "NT Server \ xxx" zu verbinden.
Warren P

Antworten:


5

Als Referenz ist "Denali" SQL Server 2012. In Bezug auf "Verwirrung der Endbenutzer" geht es mir nicht nur darum, ob ein Endbenutzer in Bezug auf SSMS verwirrt ist oder nicht. Microsoft hat dieses Tool nicht für den normalen Endbenutzer entwickelt, sondern für den Datenbankadministrator und / oder einen Benutzer, der eine Datenbank verwalten musste. Daher wird es eine Lernkurve mit den bereitgestellten Tools und deren Funktionsweise geben. Das Dateidialogfeld ist in SSMS seit der Veröffentlichung von SSMS mit SQL Server 2005 so. Aus diesem Grund werden die meisten T-SQL-Anweisungen zum Sichern, Wiederherstellen oder Anhängen einer Datenbank verwendet, die sie seitdem verwendet .

Um Dateisystemberechtigungen mit SQL Server zu konfigurieren, können Sie den Anweisungen von MSDN hier folgen .

Die Art und Weise, wie Dienstkonten behandelt werden, war nicht mit oder aufgrund von SQL Server verbunden, sondern aufgrund der Änderung auf Betriebssystemebene. Mit Windows Server 2008 R2 werden Dienstkonten etwas sicherer. Der Vorteil, den Sie haben, besteht darin, dass das Dienstkonto einfacher auf Ressourcen in einer Domäne zugreifen kann, selbst wenn es mit den Standardeinstellungen installiert ist. Dieser Link bietet einen ziemlich detaillierten Überblick darüber, wie Dienstkontoberechtigungen mit SQL Server 2012 behandelt werden. Ein Auszug aus dem Link finden Sie unten in den virtuellen Konten, die standardmäßig in SQL Server 2012 verwendet werden. Der Artikel enthält auch einen Link, der auf weitere Informationen eingeht Diskussion über das Service Account-Konzept mit Windows hier. Es ist von Windows Server 2008 R2, aber ich glaube, es gilt immer noch für Windows Server 2012 und wahrscheinlich für Windows Server 2012 R2.

Virtuelle Konten

Virtuelle Konten in Windows Server 2008 R2 und Windows 7 sind verwaltete lokale Konten, die die folgenden Funktionen zur Vereinfachung der Dienstverwaltung bereitstellen. Das virtuelle Konto wird automatisch verwaltet, und das virtuelle Konto kann in einer Domänenumgebung auf das Netzwerk zugreifen. Wenn der Standardwert für die Dienstkonten während der SQL Server-Einrichtung unter Windows Server 2008 R2 oder Windows 7 verwendet wird, wird ein virtuelles Konto verwendet, das den Instanznamen als Dienstnamen im Format NT SERVICE \ verwendet. Dienste, die als virtuelle Konten ausgeführt werden, greifen auf Netzwerkressourcen zu, indem sie die Anmeldeinformationen des Computerkontos im Format \ $ verwenden. Lassen Sie das Kennwort leer, wenn Sie ein virtuelles Konto zum Starten von SQL Server angeben. Wenn das virtuelle Konto den Service Principal Name (SPN) nicht registriert, registrieren Sie den SPN manuell. Weitere Informationen zum manuellen Registrieren eines SPN finden Sie unter Registrieren eines Dienstprinzipalnamens für Kerberos-Verbindungen. Hinweis Hinweis Virtuelle Konten können nicht für die SQL Server-Failoverclusterinstanz verwendet werden, da das virtuelle Konto nicht auf jedem Knoten des Clusters dieselbe SID haben würde.

In der folgenden Tabelle sind Beispiele für virtuelle Kontonamen aufgeführt.

Standardinstanz des Database Engine-Dienstes: NT SERVICE \ MSSQLSERVER Benannte Instanz eines Database Engine-Dienstes mit dem Namen PAYROLL: NT SERVICE \ MSSQL $ PAYROLL SQL Server-Agent-Dienst auf der Standardinstanz von SQL Server: NT SERVICE \ SQLSERVERAGENT SQL Server-Agent-Dienst auf einem Instanz von SQL Server mit dem Namen PAYROLL: NT SERVICE \ SQLAGENT $ PAYROLL


3
Mit Endbenutzer meine ich eine der Dutzenden von Personengruppen, von denen einige recht professionell und technisch kompetent in verschiedenen Disziplinen sind, die aber möglicherweise keine Datenbankadministratoren sind. Persönlich denke ich, dass sogar Datenbankadministratoren feststellen würden, dass die Benutzeroberfläche dieses Tools verbessert werden könnte. Der robuste Drittanbieter-Werkzeugmarkt ist ein weiterer Indikator dafür, dass SSMS zwar kostenlos, aber den Preis wert ist.
Warren P

1
2017 ist es nicht besser geworden. Die kurze Antwort lautet also: "Es wird nie besser werden, lernen Sie, wie es funktioniert, egal wie schlecht die Benutzeroberfläche gestaltet ist."
Warren P

2

Um die Dateien in einem anderen Ordner anzuzeigen / darauf zuzugreifen, erteilen Sie NT SERVICE\MSSQLSERVERBerechtigungen für den Ordner. Screenshots und die damit verbundenen Schritte finden Sie in meiner Antwort in der .bak-Datei, die in keinem Verzeichnis in SSMS sichtbar ist . (Unterscheidet sich geringfügig vom Hinzufügen normaler Benutzer- / Gruppenberechtigungen zu einem Ordner.)

Ich hoffe, das hilft!


1

Wenn Sie versuchen, eine Wiederherstellung über SSMS durchzuführen, und über die Windows-Authentifizierung (!) Angemeldet sind, benötigt IHR Windows-Konto (und nicht "jeder") die entsprechenden Berechtigungen - NICHT den SQL Server-Dienst Konto. Hoffe, dass die Verwirrung beseitigt wird. Das Dienstkonto hat andere Anforderungen. Wenn Sie beispielsweise über ein SQL-authentifiziertes Konto angemeldet waren - welche Berechtigungen sollte das Betriebssystem dann anfordern? - Dies ist das Dienstkonto von SQL Server Nur Fall! Dies hat sich seit SQL Server 7.0 nicht geändert und wahrscheinlich auch nicht vorher :)


1
Vergessen Sie nicht die Anmeldeinformationen .
Remus Rusanu

Ich bin nicht sicher, ob dies die Verwirrung beseitigt ... Wenn Sie über WA angemeldet sind, benötigt Ihr SQL Server-Konto die Berechtigungen zum Wiederherstellen (in Bezug auf SQL Server), aber das SQL Server-Dienstkonto benötigt die Leseberechtigungen auf dem Dateisystem, um die .bakDatei zu öffnen (die es normalerweise nicht hat, wenn sie sich in Ihrem Benutzerverzeichnis befindet, sofern dies nicht ausdrücklich gewährt wird).
Bruno
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.