Wie entwerfe ich eine sichere MySQL-Tabellenstruktur, um Berechtigungskontrollfunktionen zu implementieren?
Mit der Entwicklung des Internets hat die Systemsicherheit zunehmend an Bedeutung gewonnen. In vielen Anwendungen ist die Berechtigungskontrolle ein wichtiges Mittel zum Schutz sensibler Daten und Funktionen. In der MySQL-Datenbank können wir Berechtigungskontrollfunktionen implementieren, indem wir die Tabellenstruktur richtig gestalten, um sicherzustellen, dass nur autorisierte Benutzer auf bestimmte Daten zugreifen können.
Das Folgende ist ein grundlegender MySQL-Tabellenstrukturentwurf zum Implementieren von Berechtigungskontrollfunktionen:
Tabellenname: Benutzer
Felder: ID, Benutzername, Passwort, Rollen-ID
Tabellenname: Rollen
Felder: ID, Rollenname
Tabellenname: Berechtigungen
Felder: ID, Berechtigungsname
Tabellenname: Rollenberechtigungen
Felder: Rollen_ID, Berechtigungs-ID
Tabellenname: Benutzerrollen
Felder: Benutzer_ID, Rollen_ID
Hier implementieren wir Rollen und Berechtigungen, Benutzer und Rollen durch die Beziehung zwischen zugehörigen Tabellen. Hier ist ein Beispielcode zum Erstellen der Tabelle und zum Auffüllen der Beispieldaten:
--Benutzertabelle erstellen
TABELLE Benutzer erstellen (
ID INT PRIMARY KEY AUTO_INCREMENT,
Benutzername VARCHAR(20) NOT NULL,
Passwort VARCHAR(255) NICHT (
id INT PRIMARY KEY AUTO_INCREMENT,
Erlaubnisname VARCHAR(30) NOT NULL
--Erstellen Sie eine Tabelle mit Rollenberechtigungen.
--Benutzerrollentabelle erstellen
TABELLE Benutzerrollen erstellen (
Rollen-ID INT,
PRIMÄRSCHLÜSSEL (Benutzer-ID, Rollen-ID)
);
-- Beispieldaten ausfüllen
INSERT INTO Berechtigungen (Berechtigungsname) VALUES ('Artikel erstellen'), ('Artikel bearbeiten'), ('Artikel löschen');
INSERT INTO Role_permissions (role_id , Erlaubnis_ID) VALUES (1, 1), (1, 2), (1, 3), (2, 2), (3, 3);
INSERT INTO Benutzer (Benutzername, Passwort, Rollen-ID) VALUES ('admin', 'password', 1), ('editor', 'password', 2), ('reader', 'password', 3);
INSERT INTO user_roles (user_id, role_id) VALUES (1, 1), (2 , 2), (3, 3);
Durch die obige Tabellenstruktur und Beispieldaten können wir die folgenden Berechtigungskontrollfunktionen implementieren:
Administratoren haben die Berechtigung, Artikel zu erstellen, zu bearbeiten und zu löschen;
Redakteure haben die Möglichkeit Berechtigungen zum Bearbeiten von Artikeln;
Leser haben keine besonderen Berechtigungen.
In der Anwendung können nach erfolgreicher Anmeldeüberprüfung die Berechtigungen des Benutzers basierend auf der Rollen-ID des Benutzers abgefragt werden, wie unten gezeigt:
SELECT p.permission_name
FROM users AS u
INNER JOIN user_roles AS ur ON u.id = ur.user_id
INNER JOIN Role_permissions AS rp ON r.id = rp.role_id
INNER JOIN-Berechtigungen AS p ON rp.permission_id = p.idDas obige ist der detaillierte Inhalt vonWie entwerfe ich eine sichere MySQL-Tabellenstruktur zur Implementierung von Berechtigungskontrollfunktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!