Heim  >  Artikel  >  Datenbank  >  Wie entwerfe ich eine sichere MySQL-Tabellenstruktur zur Implementierung von Berechtigungskontrollfunktionen?

Wie entwerfe ich eine sichere MySQL-Tabellenstruktur zur Implementierung von Berechtigungskontrollfunktionen?

王林
王林Original
2023-10-31 12:00:44961Durchsuche

Wie entwerfe ich eine sichere MySQL-Tabellenstruktur zur Implementierung von Berechtigungskontrollfunktionen?

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 (

Benutzer-ID INT,

Rollen-ID INT,
PRIMÄRSCHLÜSSEL (Benutzer-ID, Rollen-ID)
);

-- Beispieldaten ausfüllen

INSERT INTO Rollen (Rollenname) VALUES ('Administrator' ), ('Herausgeber'), ('Leser');

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-Rollen AS r ON ur.role_id = r.id

INNER JOIN Role_permissions AS rp ON r.id = rp.role_id

INNER JOIN-Berechtigungen AS p ON rp.permission_id = p.id
    WHERE u. username = 'admin';
  1. Durch die obige Abfrage können wir die Berechtigungen des aktuellen Benutzers abrufen und so den Zugriff des Benutzers auf Daten und Funktionen basierend auf den Berechtigungen steuern.
  2. Es ist zu beachten, dass bei der Gestaltung der Tischstruktur diese sinnvoll auf die tatsächlichen Bedürfnisse abgestimmt sein sollte. Zusätzlich zur grundlegenden Tabellenstruktur im obigen Beispiel können Sie basierend auf spezifischen Geschäftsanforderungen weitere Felder und Tabellenbeziehungen hinzufügen.
  3. Kurz gesagt: Durch die ordnungsgemäße Gestaltung der MySQL-Tabellenstruktur zur Implementierung der Berechtigungskontrollfunktion kann die Sicherheit des Systems wirksam geschützt werden. Ich hoffe, dass der obige Inhalt für Sie hilfreich ist.

Das 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn