Fallstudie zu MySQL-Berechtigungen und Datenbankdesign

Fallstudie zu MySQL-Berechtigungen und Datenbankdesign

Berechtigungen und Datenbankdesign

Benutzerverwaltung

Verwenden Sie SQLyog, um einen Benutzer zu erstellen und Berechtigungen zu erteilen

Grundlegende Befehle

/* Benutzer- und Berechtigungsverwaltung */ ------------------
Benutzerinformationstabelle: mysql.user
 
-- FLUSH-PRIVILEGIEN
 
-- Benutzer hinzufügen CREATE USER kuangshen IDENTIFIED BY '123456'
CREATE USER Benutzername IDENTIFIED BY [PASSWORT] Passwort (Zeichenfolge)
    – Sie müssen über das globale CREATE USER-Privileg für die MySQL-Datenbank oder über das INSERT-Privileg verfügen.
    - Kann nur Benutzer erstellen, kann aber keine Berechtigungen erteilen.
    - Benutzername, beachten Sie die Anführungszeichen: zB 'Benutzername'@'192.168.1.1'
    - Das Passwort muss ebenfalls in Anführungszeichen gesetzt werden, und rein numerische Passwörter müssen ebenfalls in Anführungszeichen gesetzt werden. - Um das Passwort im Klartext anzugeben, lassen Sie das Schlüsselwort PASSWORD weg. Um das Kennwort als Hashwert anzugeben, der von der Funktion PASSWORD() zurückgegeben wird, schließen Sie das Schlüsselwort PASSWORD ein.
 
-- Benutzer umbenennen BENUTZER kuangshen in kuangshen2 umbenennen
BENENNEN SIE BENUTZER ALT_BENUTZER IN NEUER_BENUTZER UM
 
-- Passwort festlegen SET PASSWORD = PASSWORD('Passwort') -- Passwort für aktuellen Benutzer festlegen SET PASSWORD FOR Benutzername = PASSWORD('Passwort') -- Passwort für angegebenen Benutzer festlegen -- Benutzer löschen DROP USER kuangshen2
DROP USER Benutzername -- Berechtigungen zuweisen/Benutzer hinzufügen GRANT Berechtigungsliste ON Tabellenname TO Benutzername [IDENTIFIED BY [PASSWORT] 'Passwort']
    – Alle Berechtigungen bedeutet alle Berechtigungen – *.* bedeutet alle Tabellen in allen Bibliotheken – Bibliotheksname.Tabellenname bedeutet eine Tabelle unter einer Bibliothek – Berechtigungen anzeigen SHOW GRANTS FOR root@localhost;
GRANTS FÜR Benutzernamen ANZEIGEN – aktuelle Benutzerberechtigungen anzeigen GRANTS ANZEIGEN; oder GRANTS FÜR CURRENT_USER ANZEIGEN; oder GRANTS FÜR CURRENT_USER ANZEIGEN();
 
-- Berechtigungen widerrufen REVOKE permission list ON table name FROM user name REVOKE ALL PRIVILEGES, GRANT OPTION FROM user name -- Alle Berechtigungen widerrufen

Berechtigungen Erklärung

-- Berechtigungsliste ALL [PRIVILEGES] -- Alle einfachen Berechtigungen außer GRANT OPTION ALTER setzen -- Verwendung von ALTER TABLE erlauben
ALTER ROUTINE – Ändern oder Löschen einer gespeicherten Prozedur CREATE – Aktivieren der Verwendung von CREATE TABLE
CREATE ROUTINE -- eine gespeicherte Routine erstellen CREATE TEMPORARY TABLES -- Verwendung von CREATE TEMPORARY TABLE zulassen
BENUTZER ERSTELLEN – Ermöglicht die Verwendung der Funktionen „BENUTZER ERSTELLEN“, „BENUTZER LÖSCHEN“, „BENUTZER UMBENENNEN“ und „ALLE PRIVILEGIEN WIDERRUFEN“.
CREATE VIEW -- Ermöglicht die Verwendung von CREATE VIEW
DELETE -- Ermöglicht die Verwendung von DELETE
DROP - Ermöglicht die Verwendung von DROP TABLE
EXECUTE -- Ermöglicht dem Benutzer, eine gespeicherte Prozedur auszuführen. FILE -- Ermöglicht die Verwendung von SELECT ... INTO OUTFILE und LOAD DATA INFILE.
INDEX - Ermöglicht die Verwendung von CREATE INDEX und DROP INDEX
INSERT -- Ermöglicht die Verwendung von INSERT
LOCK TABLES – Ermöglicht Ihnen, LOCK TABLES auf Tabellen anzuwenden, für die Sie über SELECT-Berechtigungen verfügen.
PROZESS - Aktivieren Sie die Verwendung von „Vollständige Prozessliste anzeigen“.
REFERENCES -- nicht implementiert RELOAD -- FLUSH ist erlaubt
REPLICATION CLIENT -- ermöglicht dem Benutzer, die Adresse eines Slave- oder Master-Servers anzufordern. REPLICATION SLAVE -- für Replikations-Slave-Server (liest Binärlog-Ereignisse vom Master-Server)
SELECT -- Ermöglicht die Verwendung von SELECT
SHOW DATABASES -- Zeigt alle Datenbanken an SHOW VIEW -- Ermöglicht die Verwendung von SHOW CREATE VIEW
SHUTDOWN – ermöglicht die Verwendung von mysqladmin shutdown
SUPER – Ermöglicht die Verwendung der Anweisungen CHANGE MASTER, KILL, PURGE MASTER LOGS und SET GLOBAL sowie des Debug-Befehls mysqladmin; ermöglicht Ihnen die (einmalige) Verbindung, auch wenn die Anzahl der Verbindungen erreicht wurde.
UPDATE -- Ermöglicht die Verwendung von UPDATE
USAGE - Synonym für "keine Privilegien" GRANT OPTION - Gewährung von Privilegien erlauben /* Tabellenwartung */
 
--Analysieren und speichern Sie die Schlüsselwortverteilung der Tabelle ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE Tabellenname…
-- Überprüfen Sie eine oder mehrere Tabellen auf Fehler CHECK TABLE tbl_name [, tbl_name] ... [Option] ...
Option = {SCHNELL | SCHNELL | MITTEL | ERWEITERT | GEÄNDERT}
-- Defragmentieren Sie die Datendatei OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...

MySQL-Sicherung

Notwendigkeit einer Datenbanksicherung

  • Stellen Sie sicher, dass wichtige Daten nicht verloren gehen
  • Datenübertragung

MySQL-Datenbank-Sicherungsmethode

  • mysqldump-Sicherungstool
  • Datenbankverwaltungstools wie SQLyog
  • Datenbankdateien und zugehörige Konfigurationsdateien direkt kopieren

mysqldump-Client

Wirkung:

  • Datenbank sichern
  • Datenbank zur Sicherung erfassen
  • Übertragen Sie Daten auf einen anderen SQL-Server, nicht notwendigerweise einen MySQL-Server.

-- Exportieren 1. Exportieren Sie eine Tabelle -- mysqldump -uroot -p123456 school student >D:/a.sql
  mysqldump -u Benutzername -p Passwort Datenbankname Tabellenname > Dateiname (D:/a.sql)
2. Mehrere Tabellen exportieren -- mysqldump -uroot -p123456 school student result >D:/a.sql
  mysqldump -u Benutzername -p Passwort Datenbankname Tabelle 1 Tabelle 2 Tabelle 3 > Dateiname (D:/a.sql)
3. Exportieren Sie alle Tabellen --mysqldump -uroot -p123456 school >D:/a.sql
  mysqldump -u Benutzername -p Passwort Datenbankname > Dateiname (D:/a.sql)
4. Exportieren Sie eine Bibliothek -- mysqldump -uroot -p123456 -B school >D:/a.sql
  mysqldump -u Benutzername -p Passwort -B Datenbankname > Dateiname (D:/a.sql)
 
Sie können -w verwenden, um Sicherungsbedingungen zu übernehmen -- Importieren 1. Beim Anmelden bei mysql: -- Quelle D:/a.sql
  Quell-Backup-Datei 2. Ohne Anmeldung mysql -u Benutzername -p Passwort Datenbankname < Backup-Datei

Normalisiertes Datenbankdesign

Warum brauchen wir Datenbankdesign?

Wenn die Datenbank komplex ist, müssen wir die Datenbank entwerfen

Schlechtes Datenbankdesign:

  • Datenredundanz, Speicherplatzverschwendung
  • Ausnahmen bei der Datenaktualisierung und -einfügung
  • Schlechte Programmleistung

Gutes Datenbankdesign:

  • Datenspeicherplatz sparen
  • Kann die Datenintegrität gewährleisten
  • Erleichtert die Entwicklung von Datenbankanwendungssystemen

Datenbankdesign im Softwareprojektentwicklungszyklus:

  • Bedarfsanalysephase: Analysieren Sie die Geschäfts- und Datenverarbeitungsanforderungen des Kunden
  • Entwurfsphase: Entwerfen Sie das ER-Modelldiagramm der Datenbank und bestätigen Sie die Richtigkeit und Vollständigkeit der Bedarfsinformationen.

Schritte zum Entwerfen einer Datenbank

  • Informationen sammeln
  • Kommunizieren und diskutieren Sie mit Personen, die mit dem System zu tun haben, um die Benutzeranforderungen und die Aufgaben, die die Datenbank erfüllen muss, vollständig zu verstehen.
  • Identifizieren Sie die Entität [Entität]
  • Identifiziert die Schlüsselobjekte oder Entitäten, die von der Datenbank verwaltet werden sollen. Entitäten sind im Allgemeinen Substantive.
  • Identifizieren Sie die detaillierten Informationen, die für jede Entität gespeichert werden müssen [Attribut]
  • Identifiziert die Beziehung zwischen Entitäten [Beziehung]

Drei Paradigmen

Frage: Warum ist eine Datennormalisierung notwendig?

Probleme, die durch unsachgemäßes Tabellendesign verursacht werden:

  • Doppelte Informationen
  • Update-Abnormalität
  • Ausnahme einfügen
    • Informationen können nicht korrekt dargestellt werden
  • Ausnahmen löschen
    • Verlust gültiger Informationen

Drei Paradigmen

Erste Normalform (1. NF)

Das Ziel des ersten Paradigmas besteht darin, die Atomizität jeder Spalte sicherzustellen. Wenn jede Spalte die kleinste unteilbare Dateneinheit ist, ist das erste Paradigma erfüllt.

Zweite Normalform (2. NF)

Die zweite Normalform (2NF) basiert auf der ersten Normalform (1NF), d. h. um die zweite Normalform (2NF) zu erfüllen, muss zuerst die erste Normalform (1NF) erfüllt sein.

Das zweite Paradigma erfordert, dass jede Tabelle nur eine Sache beschreibt

Dritte Normalform (3. NF)

Eine Relation befindet sich in der dritten Normalform, wenn sie in der zweiten Normalform vorliegt und keine anderen Spalten als der Primärschlüssel transitiv von den Primärschlüsselspalten abhängig sind.

Das dritte Paradigma erfordert die Gewährleistung, dass jede Datenspalte in der Datentabelle direkt und nicht indirekt mit dem Primärschlüssel verknüpft ist.

Die Beziehung zwischen Normalisierung und Leistung

Um bestimmte Geschäftsziele zu erreichen, ist die Datenbankleistung wichtiger als die Normalisierung der Datenbank

Bei der Normalisierung von Daten sollte die Leistungsfähigkeit der Datenbank umfassend berücksichtigt werden.

Durch das Hinzufügen zusätzlicher Felder zu einer bestimmten Tabelle können Sie den Zeitaufwand für die Suche nach Informationen darin erheblich reduzieren.

Durch das Einfügen berechneter Spalten in eine gegebene Tabelle ist es einfacher abzufragen

Dies ist das Ende dieses Artikels über MySQL-Berechtigungen und Datenbankdesignfälle. Weitere Informationen zu MySQL-Berechtigungen und Datenbankdesign finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Eine bequeme Möglichkeit, mehrere Datenquellen und Mysql-Datenbanken im Springboot-Backend zu konfigurieren
  • Detaillierte Erklärung der MySQL DEFINER-Verwendung
  • Ausführliche Erläuterung der MySQL-Isolationsebene und des Sperrmechanismus
  • Aufbau einer Django-Produktionsumgebung (uWSGI+Django+Nginx+Python+MySQL)
  • Eine kurze Analyse, ob der MySQL-Primärschlüssel Zahlen oder UUIDs für schnellere Abfragen verwendet
  • Warum MySQL die Verwendung von Nullspalten mit Standardwerten nicht empfiehlt
  • So stellen Sie mit Node-Red eine Verbindung zur MySQL-Datenbank her
  • Detaillierte Erklärung von Group By und Having in MySQL

<<:  Podman bootet den Container automatisch und vergleicht ihn mit Docker

>>:  Reines CSS zum Ändern der Layoutgröße durch Ziehen nach links und rechts

Artikel empfehlen

MySQL-Tutorial: Datendefinitionssprache (DDL), Beispiel, ausführliche Erklärung

Inhaltsverzeichnis 1. Einführung in die Grundfunk...

Detaillierte grafische Erklärung zum Löschen des Keep-Alive-Cache

Inhaltsverzeichnis Eröffnungsszene Direktes Rende...

Analyse der Linux-Bootsystemmethoden

Dieser Artikel beschreibt, wie man das Linux-Syst...

So ändern Sie das Root-Passwort von MySQL in Docker

Der erste Schritt besteht darin, einen MySQL-Cont...

Eine kurze Analyse der Netzwerkprogrammierfunktionen von Linux

Inhaltsverzeichnis 1. Erstellen Sie einen Socket ...

So passen Sie CSS an den Vollbildmodus des iPhone an

1. Medienabfragemethode /*iPhone X-Anpassung*/ @m...

Eine Zeile CSS-Code zur Integration von Avatar und Nationalflagge

Es ist Nationalfeiertag und jeder kann es kaum er...

So unterstützen Sie ApacheBench mehrere URLs

Da der Standard-AB nur Stresstests für eine einze...

Ein kleines Problem mit Nullwerten in MySQL

Heute habe ich beim Testen des Nullwertes ein kle...

Über das Problem der dynamischen Spleißen der SRC-Bildadresse von img in Vue

Werfen wir einen Blick auf das dynamische Spleiße...

JS implementiert Click-Drop-Effekt

js realisiert den Spezialeffekt des Klickens und ...

Erfahren Sie mehr über den MySQL-Ausführungsplan

Inhaltsverzeichnis 1. Einführung in den Implement...