


Verwenden Sie PHP und MySQL, um ein leistungsstarkes System zur Benutzerrechtekontrolle zu implementieren
In modernen Webanwendungen ist die Kontrolle der Benutzerberechtigungen von entscheidender Bedeutung. Um die Sicherheit und Integrität einer Anwendung zu gewährleisten, muss der Benutzerzugriff auf bestimmte Vorgänge und Informationen eingeschränkt werden und die spezifischen Aufgaben, die Benutzer ausführen dürfen, müssen definiert werden. In diesem Artikel werde ich vorstellen, wie Sie mit PHP und MySQL ein leistungsstarkes Benutzerberechtigungskontrollsystem erstellen, um die Sicherheit und Integrität Ihrer Webanwendungen zu gewährleisten.
1. Design von Datenbanktabellen
In der MySQL-Datenbank benötigen wir mindestens zwei Tabellen, um das Benutzerberechtigungskontrollsystem zu implementieren. In der ersten Tabelle werden grundlegende Informationen für alle Benutzer aufgezeichnet, einschließlich Benutzername, Passwort und E-Mail-Adresse. Die zweite Tabelle ist die Berechtigungstabelle, die die Berechtigungen jeder Rolle/Benutzergruppe aufzeichnet. Daher müssen wir die folgenden zwei Tabellen in der Datenbank erstellen:
- users table
CREATE TABLE users
(users
(
id
int(11) NOT NULL AUTO_INCREMENT,
username
varchar(50) NOT NULL,
password
varchar(255) NOT NULL,
email
varchar(100) NOT NULL,
PRIMARY KEY (id
)
);
- roles表
CREATE TABLE roles
(
id
int(11) NOT NULL AUTO_INCREMENT,
name
varchar(50) NOT NULL,
PRIMARY KEY (id
)
);
我们还需要一个将用户和角色关联的表。这个表将用户ID映射到角色ID。让我们来创建这个表。
- role_user表
CREATE TABLE role_user
(
role_id
int(11) NOT NULL,
user_id
int(11) NOT NULL,
PRIMARY KEY (role_id
,user_id
),
CONSTRAINT FK_role_user_role_id
FOREIGN KEY (role_id
) REFERENCES roles
(id
),
CONSTRAINT FK_role_id_user_id
FOREIGN KEY (user_id
) REFERENCES users
(id
id
int(11) NOT NULL AUTO_INCREMENT,
Benutzername
varchar(50) NICHT NULL,
Passwort
varchar(255) NICHT NULL, E-Mail
varchar(100) NICHT NULL,
id
));
- roles table
CREATE TABLE roles
(
id
int(11) NOT NULL AUTO_INCREMENT, - PRIMARY KEY (
id
) );
name
varchar(50) NOT NULL,Wir benötigen außerdem eine Tabelle, die Benutzer und Rollen zuordnet. Diese Tabelle ordnet Benutzer-IDs Rollen-IDs zu. Lassen Sie uns diese Tabelle erstellen.
- role_user table
CREATE TABLE role_user
(
role_id
int(11) NOT NULL, user_id
int(11) NOT NULL ,
role_id
,user_id
),- CONSTRAINT
- CONSTRAINT
FK_role_id_user_id
FOREIGN KEY (user_id
) REFERENCESusers
(id
) );
FK_role_user_role_id
FOREIGN KEY (role_id
) REFERENCES Rollen
(id
),2. Implementierung des Benutzerrechtekontrollsystems
- Da wir nun die erforderlichen Datenbanktabellen erstellt haben, können wir mit der Implementierung des Benutzerrechtekontrollsystems für unsere Anwendung beginnen. Hier sind einige grundlegende Konzepte:
- Eine Rolle ist eine logische Struktur, die eine Reihe von Berechtigungen miteinander verknüpft. Beispielsweise können wir eine „Administrator“-Rolle erstellen und dieser Rolle alle administrativen Berechtigungen erteilen.
- Berechtigungen sind die Kontrollrechte einer bestimmten Funktion. Beispielsweise sind das Anzeigen, Erstellen, Bearbeiten und Löschen von Benutzern unterschiedliche Berechtigungen. Durch die Gewährung dieser Berechtigungen an bestimmte Rollen wird der Zugriff der Benutzer eingeschränkt.
Ein Benutzer ist eine Person, die mit einer Anwendung interagiert. Jedem Benutzer werden eine oder mehrere Rollen zugewiesen, die die Aktionen definieren, die der Benutzer ausführen und auf die er zugreifen kann.
Jetzt wollen wir sehen, wie man dieses System implementiert.
🎜🎜Benutzer erstellen🎜🎜🎜Für jeden neuen Benutzer müssen wir einen entsprechenden Benutzerdatensatz erstellen. Wir erstellen für jeden Benutzer einen Datensatz in der Tabelle „Benutzer“, einschließlich Benutzername, Passwort und E-Mail-Adresse. Verwenden Sie den folgenden Code, um den Benutzer zu erstellen. 🎜function create_user($username, $password, $email) { // Encrypt password $encrypted_password = password_hash($password, PASSWORD_DEFAULT); // Prepare SQL statement $sql = "INSERT INTO users (username, password, email) VALUES (?, ?, ?)"; // Bind parameters $stmt = $conn->prepare($sql); $stmt->bind_param("sss", $username, $encrypted_password, $email); // Execute statement if ($stmt->execute()) { return true; } else { return false; } }
function create_role($name) { // Prepare SQL statement $sql = "INSERT INTO roles (name) VALUES (?)"; // Bind parameters $stmt = $conn->prepare($sql); $stmt->bind_param("s", $name); // Execute statement if ($stmt->execute()) { return true; } else { return false; } }
function assign_role_to_user($role_id, $user_id) { // Prepare SQL statement $sql = "INSERT INTO role_user (role_id, user_id) VALUES (?, ?)"; // Bind parameters $stmt = $conn->prepare($sql); $stmt->bind_param("ii", $role_id, $user_id); // Execute statement if ($stmt->execute()) { return true; } else { return false; } }
function has_permission($user_id, $permission) { // Fetch user roles $sql = "SELECT role_id FROM role_user WHERE user_id = ?"; $stmt = $conn->prepare($sql); $stmt->bind_param("i", $user_id); $stmt->execute(); $result = $stmt->get_result(); // Check if any role has permission while ($row = $result->fetch_assoc()) { $sql2 = "SELECT permissions FROM roles WHERE id = " . $row['role_id']; $result2 = $conn->query($sql2); if ($result2->num_rows == 1) { $row2 = $result2->fetch_assoc(); $permissions = json_decode($row2['permissions'], true); if (in_array($permission, $permissions)) { return true; } } } // Permission not found return false; }
Das obige ist der detaillierte Inhalt vonVerwenden Sie PHP und MySQL, um ein leistungsstarkes System zur Benutzerrechtekontrolle zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



MySQL ist für Anfänger geeignet, da es einfach zu installieren, leistungsfähig und einfach zu verwalten ist. 1. Einfache Installation und Konfiguration, geeignet für eine Vielzahl von Betriebssystemen. 2. Unterstützung grundlegender Vorgänge wie Erstellen von Datenbanken und Tabellen, Einfügen, Abfragen, Aktualisieren und Löschen von Daten. 3. Bereitstellung fortgeschrittener Funktionen wie Join Operations und Unterabfragen. 4. Die Leistung kann durch Indexierung, Abfrageoptimierung und Tabellenpartitionierung verbessert werden. 5. Backup-, Wiederherstellungs- und Sicherheitsmaßnahmen unterstützen, um die Datensicherheit und -konsistenz zu gewährleisten.

Navicat selbst speichert das Datenbankkennwort nicht und kann das verschlüsselte Passwort nur abrufen. Lösung: 1. Überprüfen Sie den Passwort -Manager. 2. Überprüfen Sie Navicats "Messnot Password" -Funktion; 3.. Setzen Sie das Datenbankkennwort zurück; 4. Kontaktieren Sie den Datenbankadministrator.

Erstellen Sie eine Datenbank mit Navicat Premium: Stellen Sie eine Verbindung zum Datenbankserver her und geben Sie die Verbindungsparameter ein. Klicken Sie mit der rechten Maustaste auf den Server und wählen Sie Datenbank erstellen. Geben Sie den Namen der neuen Datenbank und den angegebenen Zeichensatz und die angegebene Kollektion ein. Stellen Sie eine Verbindung zur neuen Datenbank her und erstellen Sie die Tabelle im Objektbrowser. Klicken Sie mit der rechten Maustaste auf die Tabelle und wählen Sie Daten einfügen, um die Daten einzufügen.

Navicat für MariADB kann das Datenbankkennwort nicht direkt anzeigen, da das Passwort in verschlüsselter Form gespeichert ist. Um die Datenbanksicherheit zu gewährleisten, gibt es drei Möglichkeiten, Ihr Passwort zurückzusetzen: Setzen Sie Ihr Passwort über Navicat zurück und legen Sie ein komplexes Kennwort fest. Zeigen Sie die Konfigurationsdatei an (nicht empfohlen, ein hohes Risiko). Verwenden Sie Systembefehlsleitungs -Tools (nicht empfohlen, Sie müssen die Befehlszeilen -Tools beherrschen).

Häufige Gründe, warum Navicat keine Verbindung zur Datenbank und ihren Lösungen herstellen kann: 1. Überprüfen Sie den laufenden Status des Servers. 2. Überprüfen Sie die Verbindungsinformationen; 3. Passen Sie die Firewall -Einstellungen ein; 4. Konfigurieren Sie den Remote -Zugriff; 5. Fehlerbehebung mit Netzwerkproblemen; 6. Berechtigungen überprüfen; 7. Sicherheitskompatibilität sicherstellen; 8. Fehlerbehebung bei anderen Möglichkeiten.

Sie können eine neue MySQL -Verbindung in Navicat erstellen, indem Sie den Schritten folgen: Öffnen Sie die Anwendung und wählen Sie eine neue Verbindung (Strg N). Wählen Sie "MySQL" als Verbindungstyp. Geben Sie die Hostname/IP -Adresse, den Port, den Benutzernamen und das Passwort ein. (Optional) Konfigurieren Sie erweiterte Optionen. Speichern Sie die Verbindung und geben Sie den Verbindungsnamen ein.

Häufige Fehler und Lösungen beim Anschließen mit Datenbanken: Benutzername oder Kennwort (Fehler 1045) Firewall -Blocks -Verbindungsverbindung (Fehler 2003) Timeout (Fehler 10060) Die Verwendung von Socket -Verbindung kann nicht verwendet werden (Fehler 1042).

Um eine Verbindung zu einer lokalen MySQL -Datenbank mit Navicat herzustellen: Erstellen Sie eine Verbindung und legen Sie den Verbindungsnamen, den Host, den Port, den Benutzernamen und das Passwort fest. Testen Sie die Verbindung, um sicherzustellen, dass die Parameter korrekt sind. Speichern Sie die Verbindung. Wählen Sie eine neue Verbindung aus der Verbindungsliste aus. Doppelklicken Sie auf die Datenbank, mit der Sie eine Verbindung herstellen möchten.
