Wie Daten mit SQL-Benutzerberechtigungen zu schützen

Eine große Bedrohung für die Integrität der Daten ist der Benutzer selbst. Manche Leute sollten keinen Zugriff auf die Daten haben und SQL gibt Ihnen die Kontrolle. Andere haben nur Zugang zu einigen der Daten beschränkt, aber keinen Zugang zu den übrigen. Einige sollten unbegrenzten Zugriff auf alles, was in der Datenbank. Sie benötigen ein System für die Benutzer zu klassifizieren und Zugriffsrechte für die Nutzer in verschiedenen Kategorien für die Zuordnung.

Der Schöpfer eines Schemas legt fest, wer sein Besitzer betrachtet wird. Als Besitzer eines Schemas, können Sie die Zugriffsrechte auf die Benutzer gewähren Sie angeben. Sie können auch zurücknehmen, die Sie bereits gewährt haben. Ein Benutzer muss ein Authentifizierungsverfahren durchlaufen, seine Identität zu beweisen, bevor er die Dateien, die Sie ihn zu verwenden, eine Autorisierung zugreifen können. Die Besonderheiten dieses Verfahrens hängt von der Umsetzung.

SQL gibt Ihnen die Möglichkeit, die folgenden Datenbankobjekte zu schützen:

  • Tische

  • Spalten

  • Ansichten

  • Domains

  • Zeichensätze

  • Sortierungen

  • Übersetzungen

SQL unterstützt verschiedene Arten von Schutz: Sehen, Hinzufügen, Ändern, Löschen, Referenzierung, und Verwendung Datenbanken. Es unterstützt auch die mit der Ausführung von externer Routinen zugeordnet Umzäunungen.

Sie erlauben den Zugriff durch die Verwendung von GEWÄHREN Anweisung und entfernen Sie den Zugriff durch die Verwendung von WIDERRUFEN Erklärung. Durch die Verwendung der Steuer WÄHLEN Anweisung, die DCL-Steuerelemente, die ein Datenbankobjekt, wie eine Tabelle, Spalte oder Ansicht zu sehen. Controlling der EINFÜGEN Anweisung bestimmt, die neue Zeilen in einer Tabelle hinzufügen können.

Die Beschränkung der Verwendung der AKTUALISIEREN Anweisung für autorisierte Benutzer gibt Ihnen die Kontrolle über die Tabelle ändern kann die rows- Einschränkung LÖSCHEN Anweisung steuert die Tabellenzeilen löschen.

Wenn eine Tabelle in einer Datenbank als Fremdschlüssel enthält eine Spalte, die ein Primärschlüssel in einer anderen Tabelle in der Datenbank ist, können Sie eine Einschränkung auf die erste Tabelle hinzufügen, so dass es die zweite Tabelle verweist. Wenn eine Tabelle eine andere verweist, kann ein Benutzer der ersten Tabelle der Lage sein, Informationen über den Inhalt des zweiten abzuleiten.

Als Besitzer der zweiten Tabelle, können Sie solche Snooping zu verhindern. Das GRANT REFERENCES Erklärung gibt Ihnen die Macht. Durch die Verwendung der GRANT USAGE Anweisung können Sie steuern, wer verwenden können - oder sogar sehen - den Inhalt einer Domain, Zeichensatz, Kollation oder Übersetzung.

SchutzbetriebErklärung
Aktivieren Benutzer eine Tabelle zu sehenGRANT SELECT
Verhindern, dass Benutzer aus einer Tabelle zu sehenREVOKE SELECT
Aktivieren Sie Benutzer hinzufügen Zeilen in eine TabelleGRANT INSERT
Verhindern, dass Benutzer von Hinzufügen von Zeilen zu einer TabelleREVOKE INSERT
Aktivieren von Benutzerdaten in Tabellenzeilen zu ändernGRANT UPDATE
Verhindern, dass Benutzer von Daten in Tabellenzeilen zu ändernREVOKE UPDATE
Aktivieren Sie Benutzertabellenzeilen zu löschenGRANT DELETE
Verhindern, dass Benutzer das Löschen von TabellenzeilenREVOKE DELETE
Aktivieren Benutzer eine Tabelle zu verweisenGRANT REFERENCES
Verhindern, dass Benutzer von Verweisen auf eine TabelleREVOKE LITERATUR
Aktivieren Benutzer eine Domäne, Zeichensatz zu verwenden, Übersetzung, orcollationGRANT USAGE ON DOMAIN, GRANT USAGE ONCHARACTER SET, GRANT USAGE ON COLLATION, GRANT USAGE ONTRANSLATION
Verhindern, dass Benutzer von der Verwendung einer Domain, Zeichensatz, Sortierung, ortranslationREVOKE USAGE ON DOMAIN, REVOKE USAGE ON CHARACTER SET, REVOKE USAGE ON COLLATION, REVOKE USAGE ON TRANSLATION

Sie können unterschiedliche Zugriffsebenen für verschiedene Menschen geben, je nach ihren Bedürfnissen. Die folgenden Befehle bieten einige Beispiele für diese Fähigkeit:

GRANT selecton CUSTOMERTO SALES_MANAGER-

Das obige Beispiel kann eine Person - der Verkaufsleiter - der CUSTOMER-Tabelle zu sehen.

Das folgende Beispiel ermöglicht es jedem, mit Zugriff auf das System der Einzelhandelspreisliste zu sehen:

GRANT selecton RETAIL_PRICE_LISTTO PUBLIC-

Das folgende Beispiel ermöglicht es dem Vertriebsleiter der Einzelhandelspreisliste zu ändern. Sie können den Inhalt von vorhandenen Zeilen ändern, aber sie können Zeilen nicht hinzufügen oder löschen:

GRANT UPDATEON RETAIL_PRICE_LISTTO SALES_MANAGER-

Das folgende Beispiel ermöglicht es dem Vertriebsleiter neue Zeilen in den Einzelhandelspreisliste hinzuzufügen:

GRANT INSERTON RETAIL_PRICE_LISTTO SALES_MANAGER-

Nun, dank diesem letzten Beispiel kann der Vertriebsleiter unerwünschte Zeilen aus der Tabelle zu löschen, zu:

GRANT DELETEON RETAIL_PRICE_LISTTO SALES Manager-

Menü