Der Unterschied zwischen MySQL-Benutzerverwaltung und PostgreSQL-Benutzerverwaltung

Der Unterschied zwischen MySQL-Benutzerverwaltung und PostgreSQL-Benutzerverwaltung

1. MySQL-Benutzerverwaltung

[Beispiel 1.1] Melden Sie sich als Root-Benutzer bei der Testdatenbank des lokalen MySQL-Servers an

mysql -uroot -p -hlocalhost-Test

[Beispiel 1.2] Melden Sie sich als Root-Benutzer bei der Testdatenbank des lokalen MySQL-Servers an und führen Sie eine Abfrageanweisung aus

mysql -uroot -p -hlocalhost test -e "DESC Person;"

[Beispiel 1.3] Verwenden Sie CREATE USER, um einen Benutzer mit dem Benutzernamen jeffrey, dem Passwort mypass und dem Hostnamen localhost zu erstellen

ERSTELLEN SIE BENUTZER „jeffrey“@„localhost“, IDENTIFIZIERT DURCH „mypass“;

[Beispiel 1.4] Verwenden Sie die GRANT-Anweisung, um einen neuen Benutzer testUser mit dem Passwort testpwd zu erstellen. Der Benutzer testUser hat Abfrage- und Aktualisierungsberechtigungen für alle Daten und erhält SELECT- und UPDATE-Berechtigungen für alle Datentabellen.

GRANT SELECT,UPDATE ON *.* TO 'testUser'@'localhost' IDENTIFIED BY 'testpwd'; /*Konto erstellen und Berechtigungen erteilen*/
SELECT Host,User,Select_priv,Update_priv, FROM mysql.user where user='testUser'; /*Informationen zu Kontoberechtigungen anzeigen*/

[Beispiel 1.5] Verwenden Sie INSERT, um ein neues Konto mit dem Benutzernamen customer1, dem Hostnamen localhost und dem Passwort customer1 zu erstellen:

INSERT INTO Benutzer (Host, Benutzer, Passwort) VALUES('localhost','kunde1', PASSWORT('kunde1'));

[Beispiel 1.6] Verwenden Sie DROP USER, um den Benutzer „jeffrey“@„localhost“ zu löschen.

DROP USER 'jeffrey'@'localhost';

[Beispiel 1.7] Verwenden Sie DELETE, um den Benutzer „customer1“@„localhost“ zu löschen.

LÖSCHEN AUS mysql.user, WO host='localhost' und user='customer1';

[Beispiel 1.8] Verwenden Sie mysqladmin, um das Passwort des Root-Benutzers in „rootpwd“ zu ändern.

mysqladmin -u root -p Passwort "123456"

[Beispiel 1.9] Verwenden Sie die UPDATE-Anweisung, um das Passwort des Root-Benutzers in „rootpwd2“ zu ändern:

UPDATE mysql.user setze Password=password("rootpwd2")
WO Benutzer="root" und Host="localhost";

[Beispiel 1.10] Verwenden Sie die SET-Anweisung, um das Passwort des Root-Benutzers in „rootpwd3“ zu ändern:

PASSWORT FESTLEGEN=Passwort("rootpwd3");

[Beispiel 1.11] Verwenden Sie die SET-Anweisung, um das Passwort des Benutzers testUser in „newpwd“ zu ändern:

PASSWORT FESTLEGEN FÜR 'testUser'@'localhost'=password("newpwd");

[Beispiel 1.12] Verwenden Sie die UPDATE-Anweisung, um das Passwort des Benutzers testUser in „newpwd2“ zu ändern:

UPDATE mysql.user set Password=PASSWORT("neuesPasswort2")
WO Benutzer="Testbenutzer" und Host="localhost";

[Beispiel 1.13] Verwenden Sie die GRANT-Anweisung, um das Passwort des Benutzers testUser in „newpwd3“ zu ändern:

sql

[Beispiel 1.14] Der Benutzer testUser verwendet die SET-Anweisung, um sein Passwort in "newpwd4" zu ändern:

PASSWORT FESTLEGEN = PASSWORT("newpwd4");

[Beispiel 1.15] Verwenden Sie die GRANT-Anweisung, um einen neuen Benutzer grantUser mit dem Passwort „grantpwd“ zu erstellen. Der Benutzer grantUser verfügt über Abfrage- und Einfügeberechtigungen für alle Daten und erhält GRANT-Berechtigungen. Die GRANT-Anweisung und ihre Ausführungsergebnisse sind wie folgt:

MySQL> GRANT SELECT,INSERT ON *.* TO 'grantUser'@'localhost' IDENTIFIZIERT DURCH 'grantpwd' MIT GRANT-OPTION;
Abfrage OK, 0 Zeilen betroffen (0,03 Sek.)

Das Ergebnis zeigt, dass die Ausführung erfolgreich war. Verwenden Sie die SELECT-Anweisung, um die Berechtigungen des Benutzers testUser2 abzufragen:

MySQL> SELECT Host, Benutzer, Select_priv, Insert_priv, Grant_priv FROM mysql.user, wobei Benutzer = "grantUser";
+-----------+------------+----------+--------------+-------------+
| Host | Benutzer | Select_priv | Insert_priv | Grant_priv |
+-----------+------------+----------+--------------+--------------+
| lokaler Host | Testbenutzer2 | J | J | J |
+-----------+------------+----------+--------------+--------------+
1 Zeile im Satz (0,00 Sek.)

[Beispiel 1.16] Verwenden Sie die REVOKE-Anweisung, um die Aktualisierungsberechtigung des Benutzers testUser zu widerrufen. Die REVOKE-Anweisung und ihre Ausführungsergebnisse sind wie folgt:

MySQL> UPDATE AUF *.* VON 'testUser'@'localhost' widerrufen;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

Das Ausführungsergebnis zeigt, dass die Ausführung erfolgreich war. Verwenden Sie die SELECT-Anweisung, um die Berechtigungen des Benutzertests abzufragen:

MySQL> SELECT Host, Benutzer, Select_priv, Update_priv, Grant_priv FROM MySQL.user, wobei Benutzer = "Testbenutzer";

[Beispiel 1.17] Verwenden Sie die Anweisung SHOW GRANTS, um die Berechtigungsinformationen des Benutzers testUser abzufragen. Die Anweisung SHOW GRANTS und ihre Ausführungsergebnisse sind wie folgt:

MySQL> GRANTS FÜR 'testUser'@'localhost' ANZEIGEN;

Falloperationsprozess

Öffnen Sie das MySQL-Clienttool und geben Sie den Login-Befehl ein, um sich bei MySQL anzumelden.

C:\>mysql -u root -p
Passwort eingeben: **

Geben Sie das richtige Passwort ein und drücken Sie die Eingabetaste. Eine Willkommensnachricht wird angezeigt und weist auf eine erfolgreiche Anmeldung hin.

Wählen Sie die MySQL-Datenbank als aktuelle Datenbank aus.

MySQL> MySQL verwenden;
Datenbank geändert

Die Meldung „Datenbank geändert“ wird angezeigt und gibt an, dass der Datenbankwechsel erfolgreich war.

Erstellen Sie ein neues Konto mit dem Benutzernamen newAdmin und dem Kennwort pw1, um vom lokalen Host aus auf MySQL zugreifen zu können.

Mit der GRANT-Anweisung können Sie ein neues Konto erstellen. Der Erstellungsprozess läuft wie folgt ab:

MySQL> GRANT SELECT, UPDATE(id, name, alter)
 -> EIN test_db.person_old
 -> AN 'newAdmin'@'localhost' IDENTIFIZIERT DURCH 'pw1'
 -> MIT MAX_CONNECTIONS_PER_HOUR 30;
SELECT Host, Benutzer, select_priv, update_priv FROM Benutzer WHERE Benutzer='newAdmin';
SELECT Host, DB, Benutzer, Tabellenname, Tabellenpriv., Spaltenpriv. 
VON tables_priv WO Benutzer='newAdmin';
SELECT Host, DB, Benutzer, Tabellenname, Spaltenname, Spaltenpriv 
VON columns_priv WO user='newAdmin';

Die Abfrageergebnisse der drei SQL-Anweisungen lauten wie folgt:

MySQL> SELECT Host, Benutzer, Select_Priv, Update_Priv FROM Benutzer WHERE Benutzer='newAdmin';
MySQL> SELECT Host, Datenbank, Benutzer, Tabellenname, Tabellenpriv., Spaltenpriv.
 -> VON tables_priv WO Benutzer='newAdmin';
MySQL> SELECT Host, Datenbank, Benutzer, Tabellenname, Spaltenname, Spaltenpriv
 -> VON columns_priv WO user='newAdmin';

Führen Sie die Anweisung SHOW GRANTS aus, um die Berechtigungsinformationen von newAdmin anzuzeigen.

Um die Berechtigungsinformationen des newAdmin-Kontos anzuzeigen, geben Sie die folgende Anweisung ein:

GRANTS FÜR 'newAdmin'@'localhost' ANZEIGEN;

Melden Sie sich mit dem Benutzer „newAdmin“ bei MySQL an.

Um die aktuelle Anmeldung zu beenden, verwenden Sie den Befehl EXIT. Die Anweisung lautet wie folgt:

MySQL> beenden
Tschüss

Melden Sie sich mit dem Konto newAdmin bei MySQL an. Die Anweisung lautet wie folgt:

C:\>MySQL -u newAdmin -p
Passwort eingeben: ***

Nach Eingabe des korrekten Passwortes erscheint die Eingabeaufforderung „mysql>“ und die Anmeldung ist erfolgreich.

Verwenden Sie den Benutzer newAdmin, um die Daten in der Tabelle person_dd in der Datenbank test_db anzuzeigen.

Dem Benutzer newAdmin werden Abfrageberechtigungen für drei Felder in der Personentabelle in der Testdatenbank erteilt, sodass er die SELECT-Anweisung ausführen kann, um die Werte dieser Felder anzuzeigen. Der Ausführungsprozess läuft wie folgt ab:

MySQL> AUSWÄHLEN * VON test_db.person_dd LIMIT 5;

Verwenden Sie den Benutzer newAdmin, um einen neuen Datensatz in die Tabelle person_dd einzufügen und die Ergebnisse der Anweisungsausführung anzuzeigen.

Um einen neuen Datensatz einzufügen, geben Sie die folgende Anweisung ein:

INSERT INTO test_db.person_old(Name, Alter, Info) VALUES('gaga', 30);

Die Ausführungsergebnisse sind wie folgt:

FEHLER 1142 (42000): INSERT-Befehl für Benutzer „newAdmin“@„localhost“ für Tabelle „Person“ verweigert

Wie Sie sehen, kann die Anweisung nicht ausgeführt werden und die Fehlermeldung zeigt an, dass der Benutzer newAdmin keinen Eintrag in die Personentabelle einfügen kann. Daher können Benutzer keine nicht autorisierten Vorgänge ausführen.

Melden Sie sich vom aktuellen Konto ab, melden Sie sich erneut als Root-Benutzer an und widerrufen Sie die Berechtigungen des neuen Administratorkontos.

Geben Sie den Exit-Befehl ein: exit

Melden Sie sich erneut als Root-Benutzer bei MySQL an und wählen Sie die MySQL-Datenbank als aktuelle Datenbank aus.

Geben Sie eine Anweisung ein, um die Berechtigungen des newAdmin-Kontos zu widerrufen. Der Ausführungsprozess ist wie folgt:

Auswahl widerrufen, Update auf test.person von „newAdmin“@„localhost“;

Die Ausführungsergebnisse sind wie folgt:

MySQL> Auswahl widerrufen, Update auf test.person von 'newAdmin'@'localhost';
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

Löschen Sie die Kontoinformationen von newAdmin.

Um ein bestimmtes Konto zu löschen, können Sie die Anweisung DROP USER verwenden und Folgendes eingeben:

DROP USER 'neuerAdmin'@'localhost';

2. PostgreSQL-Benutzerverwaltung

2.1 Gruppenrollenverwaltung

[Beispiel 2.1] Erstellen Sie eine Rolle mit dem Namen post2. Der SQL-Code lautet wie folgt:

ROLLE post2 ERSTELLEN;

[Beispiel 2.2] Überprüfen Sie die Rollen im System. Der SQL-Code lautet wie folgt:

WÄHLEN Sie Rollenname aus Seitenrollen;

[Beispiel 2.3] Ändern Sie den Namen der Rolle post1 in post3. Die SQL-Anweisung lautet wie folgt:

ALTER ROLE post1 RENAME TO post3;

【Beispiel 2.4】Löschen Sie den Rollenbeitrag3. Die SQL-Anweisung lautet wie folgt:

ROLLE DROP post3;

2.2 Verschiedene Berechtigungen von Rollen

1. Anmelden

[Beispiel 2.5] Erstellen Sie eine Rolle post4, die über Anmeldeberechtigung verfügt. Die SQL-Anweisung lautet wie folgt:

ROLLE ERSTELLEN post4 LOGIN;

2Super User

[Beispiel 2.6] Erstellen Sie die Rolle post5, die über Superuser-Berechtigungen verfügt. Die SQL-Anweisung lautet wie folgt:

ROLLE post5 SUPERUSER ERSTELLEN;

3. Erstellen Sie eine Datenbank

[Beispiel 2.7] Erstellen Sie eine Rolle post6, die die Berechtigung zum Erstellen einer Datenbank hat. Die SQL-Anweisung lautet wie folgt:

ROLLE ERSTELLEN post6 CREATEDB;

4. Erstelle einen Charakter

Zum Anlegen einer Rolle muss diese Berechtigung explizit erteilt werden (Ausnahme: Superuser). Sobald eine Rolle über das CREATEROLE-Privileg verfügt, kann sie andere Rollen ändern und löschen sowie die Mitgliedschaft in anderen Rollen erteilen oder widerrufen. Wenn Sie als Superuser arbeiten möchten, reicht diese Berechtigung allein natürlich nicht aus, Sie benötigen die Berechtigung SUPERUSER.

Erstellen Sie eine Rolle mit der Berechtigung zum Erstellen von Rollen. Die SQL-Syntax lautet wie folgt:

Rolle erstellen Name CREATEROLE;

[Beispiel 2.8] Erstellen Sie eine Rolle post7, die die Berechtigung zum Erstellen einer Datenbank hat. Die SQL-Anweisung lautet wie folgt:

ROLLE ERSTELLEN post7 CREATEROLE;

5. Passwort

Die Kennwortberechtigung ist erforderlich, wenn für die Client-Authentifizierungsmethode eine Verbindung zur Datenbank erforderlich ist. Zu den gängigen Authentifizierungsmethoden gehören Passwort, MD5 und Crypt.

Erstellen Sie eine Rolle mit Kennwortberechtigungen. Die SQL-Syntax lautet wie folgt:

CREATE ROLE-Name

Kennwortauthentifizierungsmethode spezifisches Kennwort

[Beispiel 2.9] Erstellen Sie die Rolle post8, die über Kennwortberechtigung verfügt. Die SQL-Anweisung lautet wie folgt:

ROLLE post8 erstellen PASSWORT '123456';

2.3 Kontoverwaltung

1. Benutzer anlegen

[Beispiel 2.10] Erstellen Sie einen Benutzer namens postgre02 mit den Berechtigungen zum Erstellen von Datenbanken und Rollen. Das Anmeldekennwort lautet „123456789“. Die SQL-Anweisung lautet wie folgt:

BENUTZER ERSTELLEN postgre02 PASSWORT '123456789' 
ERSTELLTB ERSTELLEROLE;

2. Benutzer löschen

[Beispiel 2.11] Verwenden Sie DROP USER, um das Konto „postgre02“ zu löschen. Die SQL-Anweisung lautet wie folgt:

BENUTZER DROP postgre02;

3. Benutzerpasswort ändern

[Beispiel 2.12] Ändern Sie das Passwort des Accounts "postgre01" in "123123". Die SQL-Anweisung lautet:

ALTER USER postgre01 PASSWORT '123123';

2.4 Gruppenrollen- und Benutzerrollenverwaltung

1. Gruppenrollen autorisieren

[Beispiel 2.13] Fügen Sie der Rolle „post1“ Berechtigungen zum Erstellen von Tabellen und Rollen hinzu. Die SQL-Anweisungen lauten wie folgt:

ALTER ROLE post1 CREATEDB CREATEROLE;

2. Benutzerberechtigung

[Beispiel 2.14] Fügen Sie dem Benutzer „postgre01“ Berechtigungen zum Erstellen von Tabellen und Rollen hinzu. Die SQL-Anweisungen lauten wie folgt:

ALTER USER postgre01 CREATEDB CREATEROLE;

3. Gruppenrollenberechtigungen widerrufen

[Beispiel 2.15] Widerrufen Sie die Berechtigungen zum Erstellen von Tabellen und Rollen der Rolle „post1“. Die SQL-Anweisung lautet wie folgt:

ALTER ROLE post1 NOCREATEDB NOCREATEROLE;

4. Benutzerberechtigungen widerrufen

[Beispiel 2.16] Dem Benutzer "postgre01" die Berechtigung zum Erstellen von Tabellen und Rollen entziehen. Die SQL-Anweisung lautet:

ALTER USER postgre01 NOCREATEDB NOCREATEROLE;

2.5 Datenbankberechtigungsverwaltung

1. Ändern Sie den Besitzer der Datenbank

[Beispiel 2.17] Ändern Sie den Besitzer der Datenbank „mytest“ in post1. Die SQL-Anweisung lautet wie folgt:

ALTER DATABASE mytest OWNER TO post2;

2. Erhöhen Sie die Datentabellenberechtigungen des Benutzers

[Beispiel 2.18] Wobei ppo1 eine vorhandene Datentabelle ist, postgres ein vorhandener Benutzer ist und postgres die ppo1-Datentabelle aktualisieren darf. Verwenden Sie den folgenden Befehl, um die Tabellenberechtigungen zu aktualisieren:

GRANT UPDATE ON ppo1 AN postgres;

Wenn Sie die obige Anweisung wie folgt ändern:

GRANT-UPDATE ZU ppo1 FÜR DIE ÖFFENTLICHKEIT;

Dies bedeutet, dass allen Rollen im System die Aktualisierungsberechtigung für die Datentabelle ppo1 erteilt wird.

Wenn Sie die obige Anweisung wie folgt ändern:

GRANT ALLES AUF ppo1 AN postgres;

Dies bedeutet, dass dem Benutzer „postgres“ alle für das Objekt geltenden Berechtigungen erteilt werden.

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung des Tutorials zur Postgresql-Protokollkonfiguration
  • Ein Beispiel für das Schreiben anonymer Blöcke in einer PostgreSQL-Datenbank
  • Postgresql Zeigen Sie die Implementierung des aktuellen Benutzernamens an
  • PostgreSQL-Operation zum Löschen des Primärschlüssels
  • Konfigurationsvorgänge für logische PostgreSQL-Replikation
  • So stellen Sie in SpringBoot eine Verbindung zur PostgreSql-Datenbank her
  • Testlösung zur Wiederherstellung von Datenausfällen bei PostgreSQL-Master-Slave
  • Überwachungs- und Datenwartungsvorgänge der PostgreSQL-Datenbank

<<:  Native JS-Implementierung des Ladefortschrittsbalkens

>>:  Tutorial zu HTML-Tabellen-Tags (21): Zeilenrahmen-Farbattribut BORDERCOLOR

Artikel empfehlen

So installieren Sie suPHP für PHP5 auf CentOS 7 (Peng Ge)

Standardmäßig wird PHP unter CentOS 7 als Apache ...

Problemlösungsvorgänge für Alpine Docker-Bildschriftarten

1. Führen Sie Schriftarten aus, öffnen Sie den Sc...

Beispielanalyse der Auswirkungen des MySQL-Index auf die Sortierung

Dieser Artikel veranschaulicht anhand von Beispie...

Verwendung der MySQL-Anweisung „truncate table“

Mit der Anweisung „Truncate table“ werden alle Da...

Erläuterung zu JavaScript-Anti-Shake und -Throttling

Inhaltsverzeichnis Stabilisierung Drosselung Zusa...

JavaScript zählt, wie oft ein Zeichen vorkommt

In diesem Artikelbeispiel wird der spezifische Ja...

Detailliertes Beispiel für JavaScript-Array-Methoden

Inhaltsverzeichnis Einführung Erstellen eines Arr...

Verwendung des Linux-Telnet-Befehls

1. Einleitung Der Befehl Telnet dient zur Anmeldu...