Beliebte Beiträge Auf Dem Pc Und Software

Top Artikel Auf Internet - 2018

Zugriffssteuerung für Benutzer und Rollen in SQL

Sicherheit ist von größter Bedeutung für Datenbankadministratoren, die ihre Gigabyte wichtiger Geschäftsdaten vor neugierigen Außenseitern und Insidern schützen möchten, die versuchen, ihre Autorität zu überschreiten. Alle relationalen Datenbank-Managementsysteme bieten eine Art von intrinsischen Sicherheitsmechanismen, um diese Bedrohungen zu minimieren. Sie reichen vom einfachen Passwortschutz von Microsoft Access bis hin zur komplexen Benutzer- / Rollenstruktur, die von modernen relationalen Datenbanken wie Oracle und Microsoft SQL Server unterstützt wird. Dieser Artikel konzentriert sich auf die Sicherheitsmechanismen, die für alle Datenbanken gelten, die die strukturierte Abfragesprache (oder SQL) implementieren. Gemeinsam werden wir die Datenzugriffssteuerung verstärken und die Sicherheit Ihrer Daten gewährleisten.

Benutzer

Serverbasierte Datenbanken unterstützen alle ein Benutzerkonzept, das dem in Computerbetriebssystemen ähnelt. Wenn Sie mit der Benutzer- / Gruppenhierarchie in Microsoft Windows NT und Windows 2000 vertraut sind, werden Sie feststellen, dass die von SQL Server und Oracle unterstützten Benutzer- / Rollengruppierungen sehr ähnlich sind.

Es wird dringend empfohlen, dass Sie erstellen individuelle Datenbankbenutzerkonten für jede Person, die auf Ihre Datenbank zugreift. Es ist technisch möglich, Accounts zwischen Benutzern zu teilen oder einfach einen Benutzeraccount für jeden Benutzertyp zu verwenden, der auf Ihre Datenbank zugreifen muss, aber ich rate aus zwei Gründen dringend davon ab. Erstens wird die individuelle Verantwortlichkeit eliminiert - wenn ein Benutzer eine Änderung an Ihrer Datenbank vornimmt (sagen wir, indem er sich selbst eine Erhöhung von 5.000 $ gibt), können Sie ihn nicht durch die Verwendung von Audit-Protokollen auf eine bestimmte Person zurückverfolgen. Wenn ein bestimmter Benutzer Ihre Organisation verlässt und Sie seinen Zugriff aus der Datenbank entfernen möchten, müssen Sie das Kennwort ändern, auf das sich alle Benutzer verlassen.

Die Methoden zum Erstellen von Benutzerkonten variieren von Plattform zu Plattform Plattform und Sie müssen Ihre DBMS-spezifische Dokumentation für das genaue Verfahren konsultieren. Microsoft SQL Server-Benutzer sollten die Verwendung der gespeicherten sp_adduser-Prozedur untersuchen. Oracle-Datenbankadministratoren finden den Befehl CREATE USER hilfreich. Möglicherweise möchten Sie auch alternative Authentifizierungsschemas untersuchen. Beispielsweise unterstützt Microsoft SQL Server die Verwendung von Windows NT Integrated Security. Bei diesem Schema werden Benutzer anhand ihrer Windows NT-Benutzerkonten für die Datenbank identifiziert und müssen keine zusätzliche Benutzer-ID und kein zusätzliches Kennwort für den Zugriff auf die Datenbank eingeben. Dieser Ansatz ist bei Datenbankadministratoren äußerst beliebt, da er die Last der Kontoverwaltung auf das Netzwerkadministrationspersonal verlagert und dem Endbenutzer eine einfache Anmeldung ermöglicht.

Rollen

Wenn Sie in einem Bei einer Umgebung mit einer kleinen Anzahl von Benutzern werden Sie wahrscheinlich feststellen, dass das Erstellen von Benutzerkonten und das direkte Zuweisen von Berechtigungen für Ihre Anforderungen ausreichend ist. Wenn Sie jedoch eine große Anzahl von Benutzern haben, werden Sie höchstwahrscheinlich von der Last der Verwaltung von Konten und ordnungsgemäßen Berechtigungen überwältigt sein. Um diese Belastung zu verringern, unterstützen relationale Datenbanken den Begriff der Rollen. Datenbankrollen funktionieren ähnlich wie Windows NT-Gruppen. Benutzerkonten werden Rollen zugewiesen, und Berechtigungen werden dann der Rolle als Ganzes und nicht den einzelnen Benutzerkonten zugewiesen. Beispielsweise könnten wir eine DBA-Rolle erstellen und dann die Benutzerkonten unserer Verwaltungsmitarbeiter dieser Rolle hinzufügen. Sobald wir dies getan haben, können wir allen gegenwärtigen (und zukünftigen) Administratoren eine spezifische Berechtigung zuweisen, indem Sie einfach der Rolle die Berechtigung zuweisen. Die Verfahren zum Erstellen von Rollen variieren wiederum von Plattform zu Plattform. MS SQL Server-Administratoren sollten die gespeicherte Prozedur sp_addrole untersuchen, während Oracle DBAs die CREATE ROLE-Syntax verwenden sollten.

Berechtigungen erteilen

Nachdem wir nun Benutzer zu unserer Datenbank hinzugefügt haben, ist es an der Zeit, die Sicherheit zu erhöhen, indem Sie Berechtigungen hinzufügen. In einem ersten Schritt erteilen wir unseren Benutzern die entsprechenden Datenbankberechtigungen. Das erreichen wir mit der SQL GRANT-Anweisung.

Hier ist die Syntax der Anweisung:

GRANT
[ON

]
TO
[WITH GRANT OPTION]

Betrachten wir nun diese Aussage Zeile für Zeile. In der ersten Zeile, GRANT , können wir die spezifischen Tabellenberechtigungen angeben, die wir erteilen. Dies können entweder Berechtigungen auf Tabellenebene (wie SELECT, INSERT, UPDATE und DELETE) oder Datenbankberechtigungen (wie CREATE TABLE, ALTER DATABASE und GRANT) sein. In einer GRANT-Anweisung können mehrere Berechtigungen erteilt werden, Berechtigungen auf Tabellenebene und Berechtigungen auf Datenbankebene dürfen jedoch nicht in einer einzelnen Anweisung kombiniert werden.

Die zweite Zeile, EIN

, wird verwendet Geben Sie die betroffene Tabelle für Berechtigungen auf Tabellenebene an. Diese Zeile wird weggelassen, wenn wir Berechtigungen auf Datenbankebene gewähren. Die dritte Zeile gibt den Benutzer oder die Rolle an, denen Berechtigungen erteilt werden.

Schließlich ist die vierte Zeile, WITH GRANT OPTION , optional. Wenn diese Zeile in der Anweisung enthalten ist, kann der betroffene Benutzer diese Berechtigungen auch anderen Benutzern erteilen. Beachten Sie, dass die WITH GRANT OPTION nicht angegeben werden kann, wenn die Berechtigungen einer Rolle zugewiesen sind.

Beispiele

Sehen wir uns ein paar Beispiele an. In unserem ersten Szenario haben wir kürzlich eine Gruppe von 42 Dateneingabeoperatoren eingestellt, die Kundendatensätze hinzufügen und pflegen. Sie müssen auf Informationen in der Customers-Tabelle zugreifen, diese Informationen ändern und neue Datensätze zur Tabelle hinzufügen können. Sie sollten nicht in der Lage sein, einen Datensatz vollständig aus der Datenbank zu löschen. Zuerst sollten wir Benutzerkonten für jeden Operator erstellen und dann alle zu einer neuen Rolle hinzufügen, DataEntry. Als nächstes sollten wir die folgende SQL-Anweisung verwenden, um ihnen die entsprechenden Berechtigungen zu erteilen:

GRANT SELECT, INSERT, UPDATE
ON Kunden
TO DataEntry

Und das ist alles! Sehen wir uns nun einen Fall an, in dem wir Berechtigungen auf Datenbankebene zuweisen. Wir möchten, dass Mitglieder der DBA-Rolle neue Tabellen zu unserer Datenbank hinzufügen können. Darüber hinaus möchten wir, dass sie anderen Benutzern die Berechtigung erteilen können, dasselbe zu tun. Hier ist die SQL-Anweisung:

GRANT CREATE TABLE
bis DBA
mit GRANT OPTION

Senden Sie Ihren Kommentar