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.
Schutzbetrieb | Erklärung |
---|---|
Aktivieren Benutzer eine Tabelle zu sehen | GRANT SELECT |
Verhindern, dass Benutzer aus einer Tabelle zu sehen | REVOKE SELECT |
Aktivieren Sie Benutzer hinzufügen Zeilen in eine Tabelle | GRANT INSERT |
Verhindern, dass Benutzer von Hinzufügen von Zeilen zu einer Tabelle | REVOKE INSERT |
Aktivieren von Benutzerdaten in Tabellenzeilen zu ändern | GRANT UPDATE |
Verhindern, dass Benutzer von Daten in Tabellenzeilen zu ändern | REVOKE UPDATE |
Aktivieren Sie Benutzertabellenzeilen zu löschen | GRANT DELETE |
Verhindern, dass Benutzer das Löschen von Tabellenzeilen | REVOKE DELETE |
Aktivieren Benutzer eine Tabelle zu verweisen | GRANT REFERENCES |
Verhindern, dass Benutzer von Verweisen auf eine Tabelle | REVOKE LITERATUR |
Aktivieren Benutzer eine Domäne, Zeichensatz zu verwenden, Übersetzung, orcollation | GRANT USAGE ON DOMAIN, GRANT USAGE ONCHARACTER SET, GRANT USAGE ON COLLATION, GRANT USAGE ONTRANSLATION |
Verhindern, dass Benutzer von der Verwendung einer Domain, Zeichensatz, Sortierung, ortranslation | REVOKE 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-