Datenkontrollsprache
Data Control Language (DCL) ist eine Teilmenge von SQL, die verwendet wird, um den Zugriff auf in einem relationalen Datenbankmanagementsystem gespeicherte Daten zu steuern.
DCL-Befehle befassen sich hauptsächlich mit dem Gewähren oder Entziehen von Berechtigungen für Datenbankobjekte wie Tabellen, Sichten und Schemata.
DCL-Befehle
Die zwei wichtigsten DCL-Befehle sind:
-
GRANT
: Dieser Befehl wird verwendet, um bestimmten Benutzern oder Rollen spezifische Berechtigungen zu erteilen; -
REVOKE
: Dieser Befehl wird verwendet, um bestimmten Benutzern oder Rollen zuvor erteilte Berechtigungen zu entziehen.
Berechtigungen
Objekte
Implementierung
Um einem bestimmten Benutzer für ein Objekt in SQL bestimmte Berechtigungen zu erteilen, kann die folgende Anweisung verwendet werden:
GRANT privileges
ON object
TO {user | role | PUBLIC};
Es gibt 3 Arten von Rollen in der Datenbank, denen Berechtigungen erteilt werden können:
- user: Ein individueller Datenbankbenutzer;
- role: Eine Datenbankrolle, eine benannte Gruppe von Berechtigungen, die Benutzern zugewiesen werden kann (z. B. admin, developer, analyst);
- PUBLIC: Ein spezielles Schlüsselwort, das die angegebenen Berechtigungen allen Benutzern gewährt.
Eine Rolle kann einem Benutzer mit folgender Anweisung zugewiesen werden:
GRANT role TO user;
Schließlich können zuvor erteilte Berechtigungen mit folgender Anweisung entzogen werden:
REVOKE privileges
ON object
FROM {user | role | PUBLIC};
Beispiel
Hier sind einige Beispiele, wie der Befehl GRANT
verwendet wird, um verschiedene Berechtigungen für die Tabellen BankAccounts und UserLogs an verschiedene Rollen und Benutzer zu vergeben.
-- Create role
CREATE ROLE bank_manager;
-- Grant privileges to bank_manager role
GRANT SELECT, INSERT, UPDATE, DELETE ON BankAccounts TO bank_manager;
GRANT SELECT, INSERT ON UserLogs TO bank_manager;
-- Create users
CREATE USER john WITH PASSWORD 'password123';
CREATE USER jane WITH PASSWORD 'password456';
-- Assign roles to users
GRANT bank_manager TO john;
GRANT bank_manager TO jane;
Nun können einige der gewährten Berechtigungen entzogen werden:
-- Revoke privileges from bank_manager role
REVOKE UPDATE, DELETE ON BankAccounts FROM bank_manager;
REVOKE INSERT ON UserLogs FROM bank_manager;
-- Revoke bank_manager role from john
REVOKE bank_manager FROM john;
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 4.35
Datenkontrollsprache
Swipe um das Menü anzuzeigen
Data Control Language (DCL) ist eine Teilmenge von SQL, die verwendet wird, um den Zugriff auf in einem relationalen Datenbankmanagementsystem gespeicherte Daten zu steuern.
DCL-Befehle befassen sich hauptsächlich mit dem Gewähren oder Entziehen von Berechtigungen für Datenbankobjekte wie Tabellen, Sichten und Schemata.
DCL-Befehle
Die zwei wichtigsten DCL-Befehle sind:
-
GRANT
: Dieser Befehl wird verwendet, um bestimmten Benutzern oder Rollen spezifische Berechtigungen zu erteilen; -
REVOKE
: Dieser Befehl wird verwendet, um bestimmten Benutzern oder Rollen zuvor erteilte Berechtigungen zu entziehen.
Berechtigungen
Objekte
Implementierung
Um einem bestimmten Benutzer für ein Objekt in SQL bestimmte Berechtigungen zu erteilen, kann die folgende Anweisung verwendet werden:
GRANT privileges
ON object
TO {user | role | PUBLIC};
Es gibt 3 Arten von Rollen in der Datenbank, denen Berechtigungen erteilt werden können:
- user: Ein individueller Datenbankbenutzer;
- role: Eine Datenbankrolle, eine benannte Gruppe von Berechtigungen, die Benutzern zugewiesen werden kann (z. B. admin, developer, analyst);
- PUBLIC: Ein spezielles Schlüsselwort, das die angegebenen Berechtigungen allen Benutzern gewährt.
Eine Rolle kann einem Benutzer mit folgender Anweisung zugewiesen werden:
GRANT role TO user;
Schließlich können zuvor erteilte Berechtigungen mit folgender Anweisung entzogen werden:
REVOKE privileges
ON object
FROM {user | role | PUBLIC};
Beispiel
Hier sind einige Beispiele, wie der Befehl GRANT
verwendet wird, um verschiedene Berechtigungen für die Tabellen BankAccounts und UserLogs an verschiedene Rollen und Benutzer zu vergeben.
-- Create role
CREATE ROLE bank_manager;
-- Grant privileges to bank_manager role
GRANT SELECT, INSERT, UPDATE, DELETE ON BankAccounts TO bank_manager;
GRANT SELECT, INSERT ON UserLogs TO bank_manager;
-- Create users
CREATE USER john WITH PASSWORD 'password123';
CREATE USER jane WITH PASSWORD 'password456';
-- Assign roles to users
GRANT bank_manager TO john;
GRANT bank_manager TO jane;
Nun können einige der gewährten Berechtigungen entzogen werden:
-- Revoke privileges from bank_manager role
REVOKE UPDATE, DELETE ON BankAccounts FROM bank_manager;
REVOKE INSERT ON UserLogs FROM bank_manager;
-- Revoke bank_manager role from john
REVOKE bank_manager FROM john;
Danke für Ihr Feedback!