SQL Server 2016 Grundkurs: Administration

Serverrollen-Berechtigungen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Ein angelegtes Login in SQL Server 2016 beinhaltet standardmäßig lediglich das Recht, eine Verbindung herzustellen. Um Benutzern auf Serverebene zusätzliche Berechtigungen zu gewähren, müssen Sie gesondert vorgehen.
11:28

Transkript

Ein angelegtes Login-SQL Server beinhaltet lediglich das Recht "Connect". Wenn Sie jetzt Benutzer im SQL Server berechtigen wollen und zwar auf der Serverebene, müssen Sie dazu gesondert vorgehen. Wie das funktioniert, sehen Sie im folgenden Video. Bisher haben wir den SQL Server Benutzer MMuster angelegt. Wie verbinden uns aktuell als dieser, haben ihm keinerlei zusätzliche Berechtigungen gegeben, das heißt, das einzige Recht, was der Benutzer jetzt hat, ist das Recht sich zu verbinden. Er sieht natürlich hier ein paar Objekte und die Strukturen. Wenn wir aber mal draufgehen und die Instanz-Porperties jetzt nehmen, also überprüfen, ob er irgendwie in Bezug auf den SQL Server jetzt Rechte hat, auf die Instanz zum Beispiel, das Authentifizierungsverfahren zu ändern. Werden wir sehen, dass solche Rechte natürlich verweigert werden, weil er hier im Grunde genommen noch nichts an Rechten zusätzlich besitzt. Wie können wir diesen Benutzer jetzt zusätzliche Rechte geben? Dazu gehe ich zum Knoten Sicherheit wieder da, wo ich administrativ berechtigt bin, suche mir den Benutzer heraus, mache einen Doppelklick und in die Properties zu kommen und wir haben jetzt hier links bei der Auswahl der Seiten, den Bereich "Serverrollen". Was hat es mit den Serverrollen auf sich? Sie sehen hier vordefinierte Serverrollen, sogenannte feste Serverrollen, bulkadmin, dbcreator, discadmin, processadmin, securityadmin, serveradmin, setupadmin und sysadmin. Das heißt, im Grunde genommen habe ich jetzt die Chance, dem Benutzer Rechte auf Server auf Instanzebene zuzuweisen. Einige sind selbstsprechend, wenn ich sage "dpcreator", bekommt er das Recht neue Datenbanken anzulegen. Für die neue Datenbank hat er natürlich alle Rechte, er ist owner, hat aber noch lange nicht das Recht auf andere Datenbanken zuzugreifen. Wenn ich jetzt sage, er möchte oder er darf Optionen eines Servers ändern, zum Beispiel min-Max-Memory oder solche Sachen zuweisen, dann würde ich sagen, okay, ich mache ihn zum Serveradmin. Das sind also keine vollen Rechte, wir haben also eine Abstufung. Volle Rechte hätte er mit sysadmin, das heißt die Rolle, die wirklich der SA hat oder auch die Windows-Administratoren. Aber ich mache ihn mal exemplarisch zum Serveradmin. Bestätige das Ganze. Jetzt muss ich wieder gucken, hier oben bin ich als Admin angemeldet. Hier unten kann ich es als der User testen. Gehe in die Eigenschaften, zu dem Bereich Arbeitsspeicher. Trage jetzt hier mal einen Wert ein, sage "OK". Und im Unterschied zu vorhin, sehen wir, wie das Ganze jetzt funktioniert. Die festen Serverrollen im Grunde genommen, sieht man das hier auf der Folie, im ersten Stichpunkt, worüber ich rede, diese festen Serverrollen sind also vordefiniert. Seit SQL Server 2012 können Sie auch Benutzerdefinierte Serverrollen, also eigene anlegen, das ging vorher nicht. Und man hat natürlich dann die Möglichkeit, wenn man jetzt so rangeht, dass so eine Serverrolle ein fester vordefinierter Satz an Berechtigungen ist. Durch eigene Serverrollen auch dieser dann entsprechend Einzelberechtigungen zuzuweisen und sich für Standortadministratoren oder bestimmte Aufgabenbereiche dann über eigene Serverrollen entsprechend seine Berechtigungsstrukturen dann auch aufzubauen. Es geht natürlich immer darum, Minimieren der Verwendung von festen Serverrollen, das heißt also hier muss man natürlich für sich jetzt einen Kompromiss finden, der auf seine Servicelevel Agreements in der Firma abgestimmt ist. Unten sehen wir dann einen Beispiel mit TSQL, also "USE Master", ich wechsle den Datenbankkontext zur Masterdatenbank. Sage dann "GRANT ALTER ON LOGIN", also im Grunde genommen "GRANT" ich erteile das Recht, "ALTER" das Recht zu ändern, also jemand bekommt praktisch das Recht Ändernungen an Logins vorzunehmen, für HRApp, das ist also in dem Fall das Login. "TO AdventureWorks/Holly", das ist im Grunde genommen dann die Domäne und Benutzer Holly der oder die, die entsprechend das Recht dann bekommt. Unten noch mal im zweiten Fall, "GRANT ALTER", also das Recht zu ändern, "ANY DATABASE", also jede Datenbank, "TO AdventureWorks/Holly", das heißt, hier also immer das Adekvate, wie kann man es einzeln vergeben, feinen Granulat, beziehungsweise wie kann ich es natürlich über die Serverrollen nachher steuern. Hinsichtlich der Serverrollen, gehe mal hier zurück, da wo ich die Berechtigungen entsprechend steuern kann, zu den festen Serverrollen, Sehe also jetzt hier wie durch Serveradmin zum Beispiel dieses Recht gesetzt wurde, Instanzwerte zu ändern. Ich könnte jetzt mal ohne das dbcreator, das Recht existiert, zum Beispiel Testen ist eher in der Lage hier unten im Knoten jetzt eine neue Datenbank anzulegen. Gehe also da mal drauf. Dauert dann wieder einen kleinen Moment. Ja, da schickt der mich wohl etwas in den Wartezustand, das heißt also ich wäre jetzt mal, ja Management Studio ist ausgelastet. Erfahrungsgemäß wenn man das Ganze per Scriptfenster probiert, aber im Moment will er da mich gar nicht rauslassen. Jetzt ein neues Abfragefenster aufmacht, "Create database", ich gebe mal hier Demo an, so bin als MMuster angemeldet, führe das aus. Sehe ich, dass die Create database- Anweisung in der Masterdatenbank verweigert wurde. Jetzt gehen wir zu dem Knoten "Sicherheit", zu den Anmeldungen, zu dem Benutzer so lange hat es gedauert bis im Hintergrund das grafische User-Interface Aufgang zu dem Benutzer, zu den Serverrollen und sagen wir mal, machen ihm zum dbcreator. So jetzt per Script, weil das einfach ein bisschen schneller geht. Ausführen. Und wir sehen, dass der Befehl abgeschlossen werden konnte. Wenn wir entsprechend hier oben dann auch mal in der Ansicht aktualisieren, den Knoten Datenbanken aufmachen, sehen wir, dass die Datenbank angelegt wurde und hier sehe ich also auch als wäre ich letztendlich verbunden. Das heißt, die Serverrollen ein Mittel um also sehr schön zuzuweisen, was darf jemand auf der Serverebene eine Datenbank anlegen, im Grunde genommen den Server administrieren, den Sysadmin, volle Rechte nutzen. Und wenn man sich das Ganze anschließend mal weiter anschaut, sieht man, dass hier so typische Berechtigungen auf der Serverebene zum Beispiel sind, "ALTER ANY DATABASE", "BACKUP DATABASE", "CONNECT", das "CREATE DATABASE", was ich eben demonstriert habe, "SHUTDOWN". Das könnten wir natürlich jetzt alles einfach einzeln geben, indem wir sagen, "GRANT" und dann das Recht erteilen. Die Serverrollen fassen natürlich dann Sätze an Berechtigungen zusammen. Mann kann die Berechtigungszuweisung, sieht man hier werden durch Abfragen der Ansicht sys.server_permission angezeigt, ist also eine VIEW, die man nutzen kann, um das Ganze abzufragen und in der nächsten Folie ist noch mal schön zu sehen, was steckt eigentlich letztendlich hinter diesen jeweiligen Rollen. Das heißt also, der sysadmin, das sagte ich schon, kann beliebige Aktionen ausführen. Dbcrator kann also neue Datenbanken erstellen. Der Diskadmin, da geht es darum, Datenträgerdateien zu verwalten, also letztendlich für eine Datenbank neue Files hinzuzufügen, Properties zu ändern. Der Serveradmin eben auch demonstriert, Serverweite Einstellungen zum Beispiel in maxmemory, shutdown, also so Änderungen an der Instanz eben vornehmen. Der securityadmin, der also letztendlich wie das Wort ja schon sagt, Security, die Anmeldung, die Serveranmeldung verwalten und überwachen kann, der processadmin, die SQL Server-Prozesse verwalten. Im bulkadmin, also was Massenladevorgänge sind, zum Beispiel das Kommando, das TSQL Kommando, BULK INSERT ausführen, um Massendaten zu laden in eine Datenbank. Und ein setupadmin, der hat eben die Möglichkeit, dann Replikationen zu konfigurieren, oder sogenannte Verbindungsserver, das heißt also, ich habe hier eine feine granuläre Abstufung und wenn man jetzt so diese Rolle "public", diese Sonderrolle nimmt, die es dort gibt, das ist hier gezeigt, ist also eine Spezialrolle, die auf Serverebene zugewiesen wird. Standardmäßig werden folgende Berechtigungen erteilt, "VIEW ANY DATABASE", das heißt also über diese Rolle "public" bekommt jeder zugewiesen, dass er im Grunde genommen die Datenbanken sieht. Und wenn er einen Login hat, sein CONNECT auf die Standardendpunkte der Instanz. Wenn Sie selber Datenbankrollen anlegen können, dann können Sie das machen mit "CREATE SERVER ROLE". Das ist also eine Möglichkeit seit SQL Server 2012 und damit können Sie sich natürlich eine eigene Granularität auf dieser Ebene zusammenbauen. Die Alternative ist natürlich, wenn Sie das nicht per Kommando machen, es gibt hier den Konten Serverrollen unter den Anmeldungen. Und jetzt können Sie natürlich auch über diesen Weg sagen, rechte Maustaste, neue Serverrolle, geben der jetzt einen Namen, zum Beispiel jetzt Standort Admin. So Erstmal einfach angelegt. Die Rolle Beinhaltet jetzt Mitglieder, das heißt, ich kann also jetzt Mitglieder hinzufügen, also Anmeldung, gehe mal auf durchsuchen, sehe, dass hier meine Logins letztendlich in der Liste drin stehen, wie zum Beispiel jetzt der MMuster. Füge den jetzt als Rollenmitglied hinzu. Und so habe ich Erstmal die Möglichkeit im Grunde genommen, mir auch seit SQL Server 2012 eigene Serverrollen anzulegen, Mitglieder einzusammeln, und letztendlich habe ich hier Sicherungsfähige Elemente. Das heißt also, in Bezug jetzt auf meinen SQL Server, zum Beispiel meine Instanz kann ich jetzt hier unten entsprechend dieser Rolle, die ich jetzt eben erstellt habe, Standortadmin sagen, was für Rechte verbergen sich hinter dieser Rolle, die die Mitglieder bekommen. Und das könnte jetzt zum Beispiel sein, nehmen wir mal hier beliebige Verbindungsserver, zum Beispiel ändern, das Recht möchte ich erteilen, oder herunterfahren des SQL Servers möchte ich erteilen. Bestätige das dann mit "OK". Bin also hier oben natürlich Administrativ drin. Kann jetzt diese Verbindung mal trennen, das heißt, hier bin ich jetzt als MMuster angemeldet, sage jetzt mal "Beenden". Und aufgrund des Rechts, was ich jetzt der Rolle erteilt habe und der MMuster ist jetzt Mitglied dieser Rolle, ist er in der Lage jetzt die SQL Server-Instanz, also den Dienst zu beenden und das Ganze herunterzufahren. In diesem Video haben Sie gesehen, nachdem ein Benutzer über ein Login verfügt und das Connect-Recht hat, wie ich ihm entsprechend einer Serverrolle zuweisen kann. Die SQL Server Serverrollen, ein fester Satz jeweils an Berechtigungen sich dahinter befindet, dass man seit SQL Server 2012 eigene Serverrollen anlegen kann, dass man dann Benutzer den Serverrollen zuweist und Sie dann vom Scope her auf der Instanzebene auf der Serverrolle entsprechend über die Berechtigungen verfügen.

SQL Server 2016 Grundkurs: Administration

Erlernen Sie die Administration des SQL Server 2016 vom Umgang mit dem Management Studio bis zu Automatisierung und Monitoring.

6 Std. 10 min (60 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:08.05.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!