Heim Backend-Entwicklung PHP-Tutorial Verwenden Sie PHP und MySQL, um ein leistungsstarkes System zur Benutzerrechtekontrolle zu implementieren

Verwenden Sie PHP und MySQL, um ein leistungsstarkes System zur Benutzerrechtekontrolle zu implementieren

Jun 25, 2023 am 10:04 AM
mysql php 权限控制

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:

  1. 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)
);

  1. roles表

CREATE TABLE roles (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(50) NOT NULL,
PRIMARY KEY (id)
);

我们还需要一个将用户和角色关联的表。这个表将用户ID映射到角色ID。让我们来创建这个表。

  1. 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,

PRIMÄR KEY (id)

);

  1. roles table

CREATE TABLE roles (

id int(11) NOT NULL AUTO_INCREMENT,
    name varchar(50) NOT NULL,
  1. PRIMARY KEY (id)
  2. );

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.

  1. role_user table

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 Rollen (id),
  1. CONSTRAINT FK_role_id_user_id FOREIGN KEY (user_id) REFERENCES users (id)
  2. );

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:
Rolle

    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

    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.
Benutzer

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;
  }
}
Nach dem Login kopieren
🎜🎜Erstellen einer Rolle🎜🎜🎜Das Erstellen einer Rolle ist sehr einfach. Fügen Sie einfach einen Datensatz in die Tabelle „Rollen“ ein. Hier ist ein Beispiel. 🎜
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;
  }
}
Nach dem Login kopieren
🎜🎜Benutzerrollen zuweisen🎜🎜🎜Da wir nun Benutzer und Rollen erstellt haben, müssen wir sie verknüpfen. Rollen können durch Einfügen der Rollen-ID und Benutzer-ID in die Tabelle „role_user“ zugewiesen werden. Nachfolgend finden Sie einige Beispielcodes. 🎜
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;
  }
}
Nach dem Login kopieren
🎜🎜Überprüfen Sie, ob der Benutzer die Berechtigung hat🎜🎜🎜Abschließend müssen wir prüfen, ob der Benutzer die Berechtigung zum Ausführen einer Aktion hat. Wir finden alle Rollen, zu denen der Benutzer gehört, und prüfen, ob die Rollen über die erforderlichen Berechtigungen verfügen. Gibt true zurück, wenn der Benutzer über die Berechtigung verfügt, andernfalls false. Nachfolgend finden Sie einige Beispielcodes. 🎜
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;
}
Nach dem Login kopieren
🎜3. Zusammenfassung🎜🎜Die Verwendung von PHP und MySQL zum Erstellen eines Benutzerberechtigungskontrollsystems kann die Sicherheit und Integrität von Webanwendungen gewährleisten. Wir können den Benutzerzugriff auf bestimmte Vorgänge und Informationen basierend auf Rollen und Berechtigungen beschränken. Durch dieses System können wir Webanwendungen vor unbefugtem Zugriff schützen und so die Gesamtsicherheit verbessern. 🎜

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!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

MySQL: Die einfache Datenverwaltung für Anfänger MySQL: Die einfache Datenverwaltung für Anfänger Apr 09, 2025 am 12:07 AM

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.

Kann ich das Datenbankkennwort in Navicat abrufen? Kann ich das Datenbankkennwort in Navicat abrufen? Apr 08, 2025 pm 09:51 PM

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.

So erstellen Sie Navicat Premium So erstellen Sie Navicat Premium Apr 09, 2025 am 07:09 AM

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.

Wie kann ich das Datenbankkennwort in Navicat für Mariadb anzeigen? Wie kann ich das Datenbankkennwort in Navicat für Mariadb anzeigen? Apr 08, 2025 pm 09:18 PM

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).

Navicat kann keine Verbindung zu MySQL/Mariadb/PostgreSQL und anderen Datenbanken herstellen Navicat kann keine Verbindung zu MySQL/Mariadb/PostgreSQL und anderen Datenbanken herstellen Apr 08, 2025 pm 11:00 PM

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.

So erstellen Sie eine neue Verbindung zu MySQL in Navicat So erstellen Sie eine neue Verbindung zu MySQL in Navicat Apr 09, 2025 am 07:21 AM

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.

Navicat stellt eine Verbindung zu Datenbankfehlercode und Lösung her Navicat stellt eine Verbindung zu Datenbankfehlercode und Lösung her Apr 08, 2025 pm 11:06 PM

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).

So stellen Sie eine Verbindung zu einem lokalen MySQL in Navicat her So stellen Sie eine Verbindung zu einem lokalen MySQL in Navicat her Apr 09, 2025 am 07:45 AM

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.

See all articles