Anweisungen zum Hinzufügen von Benutzernamen und Passwort in MySQL: 1. CREATE USER-Anweisung, Sie können einen normalen Benutzer erstellen und das entsprechende Passwort festlegen. 2. INSERT-Anweisung, Sie können einen neuen normalen Benutzer erstellen und das entsprechende Passwort festlegen Erstellen Sie mit der Anweisung einen neuen Benutzer und legen Sie das entsprechende Passwort und die Benutzerberechtigungen fest.
(Empfohlenes Tutorial: MySQL-Video-Tutorial)
Wenn MySQL installiert ist, wird standardmäßig ein Benutzer namens root erstellt, der über Superprivilegien verfügt und den gesamten MySQL-Server steuern kann.
Um zu verhindern, dass jemand den Root-Benutzer in böswilliger Absicht zur Steuerung der Datenbank verwendet, erstellen wir bei der täglichen Verwaltung und dem Betrieb von MySQL normalerweise einige Benutzer mit entsprechenden Berechtigungen und verwenden den Root-Benutzer so wenig oder so wenig wie möglich zum Anmelden zum System, um den sicheren Zugriff zu gewährleisten.
MySQL bietet die folgenden 3 Methoden zum Erstellen von Benutzern, Hinzufügen von Benutzernamen und Passwörtern.
Verwenden Sie die CREATE USER-Anweisung, um einen Benutzer zu erstellen und einen Benutzernamen und ein Passwort hinzuzufügen.
Benutzer in der Tabelle mysql.user hinzufügen, Benutzernamen und Passwort hinzufügen.
Verwenden Sie die GRANT-Anweisung, um einen Benutzer zu erstellen, Benutzernamen und Passwort hinzuzufügen.
Im Folgenden werden diese 3 Methoden anhand von Beispielen ausführlich erläutert.
1. Verwenden Sie die CREATE USER-Anweisung, um einen Benutzer zu erstellen.
Sie können die CREATE USER-Anweisung verwenden, um einen MySQL-Benutzer zu erstellen und das entsprechende Passwort festzulegen. Das grundlegende Syntaxformat lautet wie folgt:
CREATE USER <用户> [ IDENTIFIED BY [ PASSWORD ] 'password' ] [ ,用户 [ IDENTIFIED BY [ PASSWORD ] 'password' ]]
Die Parameterbeschreibung lautet wie folgt:
1) Der Benutzer
gibt an, ein Benutzerkonto zu erstellen, das Format ist Benutzername'@'Hostname. Hier ist user_name der Benutzername und host_name der Hostname, also der Name des Hosts, den der Benutzer für die Verbindung zu MySQL verwendet. Wenn während des Erstellungsprozesses nur der Benutzername ohne Angabe des Hostnamens angegeben wird, wird der Hostname standardmäßig auf „%“ gesetzt, was eine Gruppe von Hosts darstellt, d. h. die Berechtigungen stehen allen Hosts offen.
2) IDENTIFIED BY-Klausel
wird zur Angabe des Benutzerpassworts verwendet. Neue Benutzer benötigen kein Initialpasswort. Wenn der Benutzer kein Passwort hat, kann diese Klausel weggelassen werden.
3) PASSWORD 'password'
PASSWORD bedeutet die Verwendung eines Hashwerts zum Festlegen des Passworts. Dieser Parameter ist optional. Wenn das Passwort eine einfache Zeichenfolge ist, muss das Schlüsselwort PASSWORD nicht verwendet werden. „Passwort“ stellt das Passwort dar, das der Benutzer zum Anmelden verwendet, und muss in einfache Anführungszeichen gesetzt werden.
Bei der Verwendung der CREATE USER-Anweisung sollten Sie folgende Punkte beachten:
Die CREATE USER-Anweisung muss kein anfängliches Passwort angeben. Aus Sicherheitsgründen wird dieser Ansatz jedoch nicht empfohlen.
Um die CREATE USER-Anweisung verwenden zu können, müssen Sie über die INSERT-Berechtigung der MySQL-Datenbank oder die globale CREATE USER-Berechtigung verfügen.
Nach dem Erstellen eines Benutzers mit der CREATE USER-Anweisung fügt MySQL einen neuen Datensatz in der Benutzertabelle der MySQL-Datenbank hinzu.
CREATE USER-Anweisung kann mehrere Benutzer gleichzeitig erstellen. Mehrere Benutzer werden durch Kommas getrennt.
Neu erstellte Benutzer haben nur sehr wenige Berechtigungen, sie können nur Vorgänge ausführen, für die keine Berechtigungen erforderlich sind. Melden Sie sich beispielsweise bei MySQL an und fragen Sie mit der SHOW-Anweisung die Liste aller Speicher-Engines und Zeichensätze usw. ab. Wenn zwei Benutzer denselben Benutzernamen, aber unterschiedliche Hostnamen haben, behandelt MySQL sie als zwei Benutzer und ermöglicht, dass den beiden Benutzern unterschiedliche Berechtigungssätze zugewiesen werden.
Beispiel 1
Verwenden Sie CREATE USER, um einen Benutzer zu erstellen. Der Benutzername ist test1, das Passwort ist test1 und der Hostname ist localhost. Die SQL-Anweisung und der Ausführungsprozess sind wie folgt.
mysql> CREATE USER 'test1'@'localhost' IDENTIFIED BY 'test1'; Query OK, 1 rows affected (0.06 sec)
Die Ergebnisse zeigen, dass der Benutzer test1 erfolgreich erstellt wurde.
In praktischen Anwendungen sollten wir die Angabe von Passwörtern im Klartext vermeiden. Wir können das Schlüsselwort PASSWORD verwenden, um das Passwort mithilfe des Hash-Werts des Passworts festzulegen.
Beispiel 2
In MySQL können Sie die Funktion „password()“ verwenden, um den Hashwert des Passworts abzurufen. Die SQL-Anweisung und der Ausführungsprozess zum Anzeigen des test1-Hashwerts lauten wie folgt:
mysql> SELECT password('test1'); +-------------------------------------------+ | password('test1') | +-------------------------------------------+ | *06C0BF5B64ECE2F648B5F048A71903906BA08E5C | +-------------------------------------------+ 1 row in set, 1 warning (0.00 sec) “*06C0BF5B64ECE2F648B5F048A71903906BA08E5C”就是 test1 的哈希值。下面创建用户 test1,SQL 语句和执行过程如下: mysql> CREATE USER 'test1'@'localhost'IDENTIFIED BY PASSWORD '*06C0BF5B64ECE2F648B5F048A71903906BA08E5C'; Query OK, 0 rows affected, 1 warning (0.00 sec)
Nach erfolgreicher Ausführung , können Sie sich mit dem Passwort „test1“ anmelden.
2. Verwenden Sie die INSERT-Anweisung, um einen neuen Benutzer zu erstellen
Sie können die INSERT-Anweisung verwenden, um Benutzerinformationen zur mysql.user-Tabelle hinzuzufügen, Sie müssen jedoch über INSERT-Berechtigungen für die mysql.user-Tabelle verfügen. Normalerweise fügt die INSERT-Anweisung nur die Werte der drei Felder Host, Benutzer und Authentifizierungszeichenfolge hinzu.
Das Passwortfeld in der Benutzertabelle von MySQL 5.7 hat sich von „Passwort“ in „authentication_string“ geändert. Wenn Sie eine Version vor MySQL 5.7 verwenden, ersetzen Sie einfach das Feld „authentication_string“ durch „Passwort“.
Der Code zum Erstellen eines Benutzers mithilfe der INSERT-Anweisung lautet wie folgt:
INSERT INTO mysql.user(Host, User, authentication_string, ssl_cipher, x509_issuer, x509_subject) VALUES ('hostname', 'username', PASSWORD('password'), '', '', '');
Da die drei Felder ssl_cipher, x509_issuer und x509_subject in der Benutzertabelle der MySQL-Datenbank keine Standardwerte haben, müssen diese drei Felder beim Einfügen festgelegt werden Neue Datensätze in die Benutzertabelle einfügen, andernfalls wird die INSERT-Anweisung nicht ausgeführt.
Beispiel 3
Im Folgenden wird die INSERT-Anweisung verwendet, um einen Benutzer namens test2 zu erstellen. Der Hostname lautet localhost und das Passwort lautet ebenfalls test2. Die SQL-Anweisung und der Ausführungsprozess sind wie folgt:
mysql> INSERT INTO mysql.user(Host, User, authentication_string, ssl_cipher, x509_issuer, x509_subject) VALUES ('localhost', 'test2', PASSWORD('test2'), '', '', ''); Query OK, 1 row affected, 1 warning (0.02 sec)
结果显示,新建用户成功。但是这时如果通过该账户登录 MySQL 服务器,不会登录成功,因为 test2 用户还没有生效。
可以使用 FLUSH 命令让用户生效,命令如下:
FLUSH PRIVILEGES;
使用以上命令可以让 MySQL 刷新系统权限相关表。执行 FLUSH 命令需要 RELOAD 权限。
注意:user 表中的 User 和 Host 字段区分大小写,创建用户时要指定正确的用户名称或主机名。
3. 使用GRANT语句新建用户
虽然 CREATE USER 和 INSERT INTO 语句都可以创建普通用户,但是这两种方式不便授予用户权限。于是 MySQL 提供了 GRANT 语句。
使用 GRANT 语句创建用户的基本语法形式如下:
GRANT priv_type ON database.table TO user [IDENTIFIED BY [PASSWORD] 'password']
其中:
priv_type 参数表示新用户的权限;
database.table 参数表示新用户的权限范围,即只能在指定的数据库和表上使用自己的权限;
user 参数指定新用户的账号,由用户名和主机名构成;
IDENTIFIED BY 关键字用来设置密码;
password 参数表示新用户的密码。
例 4
下面使用 GRANT 语句创建名为 test3 的用户,主机名为 localhost,密码为 test3。该用户对所有数据库的所有表都有 SELECT 权限。SQL 语句和执行过程如下:
mysql> GRANT SELECT ON*.* TO 'test3'@localhost IDENTIFIED BY 'test3'; Query OK, 0 rows affected, 1 warning (0.01 sec)
其中,“*.*” 表示所有数据库下的所有表。结果显示创建用户成功,且 test3 用户对所有表都有查询(SELECT)权限。
技巧:GRANT 语句是 MySQL 中一个非常重要的语句,它可以用来创建用户、修改用户密码和设置用户权限。教程后面会详细介绍如何使用 GRANT 语句修改密码、更改权限。
Das obige ist der detaillierte Inhalt vonWie lautet die Anweisung zum Hinzufügen eines MySQL-Benutzernamens und eines MySQL-Passworts?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!