Maison  >  Article  >  base de données  >  Quelle est la déclaration pour ajouter le nom d'utilisateur et le mot de passe MySQL ?

Quelle est la déclaration pour ajouter le nom d'utilisateur et le mot de passe MySQL ?

青灯夜游
青灯夜游original
2020-10-15 11:04:179238parcourir

Instructions pour ajouter des noms d'utilisateur et des mots de passe dans MySQL : 1. Instruction CREATE USER, vous pouvez créer un utilisateur ordinaire et définir le mot de passe correspondant ; 2. Instruction INSERT, vous pouvez créer un nouvel utilisateur ordinaire et définir le correspondant ; mot de passe ; 3. Instruction GRANT, créez un nouvel utilisateur et définissez le mot de passe et les autorisations utilisateur correspondants.

Quelle est la déclaration pour ajouter le nom d'utilisateur et le mot de passe MySQL ?

(Tutoriel recommandé : Tutoriel vidéo MySQL)

MySQL créera un fichier nommé root par défaut lors de l'installation. l'utilisateur dispose de super privilèges et peut contrôler l'ensemble du serveur MySQL.

Dans la gestion et le fonctionnement quotidiens de MySQL, afin d'empêcher quelqu'un d'utiliser de manière malveillante l'utilisateur root pour contrôler la base de données, nous créons généralement des utilisateurs avec les autorisations appropriées et utilisons l'utilisateur root aussi peu ou aussi peu que possible de se connecter au système pour garantir un accès sécurisé aux données.

MySQL propose les 3 méthodes suivantes pour créer des utilisateurs, ajouter des noms d'utilisateur et des mots de passe.

  • Utilisez l'instruction CREATE USER pour créer un utilisateur et ajouter un nom d'utilisateur et un mot de passe.

  • Ajoutez un utilisateur dans la table mysql.user, ajoutez le nom d'utilisateur et le mot de passe.

  • Utilisez l'instruction GRANT pour créer un utilisateur et ajouter un nom d'utilisateur et un mot de passe.

Ce qui suit explique ces 3 méthodes en détail à partir d'exemples.

1. Utilisez l'instruction CREATE USER pour créer un utilisateur

Vous pouvez utiliser l'instruction CREATE USER pour créer un utilisateur MySQL et définir le mot de passe correspondant. Le format de syntaxe de base est le suivant :

CREATE USER <用户> [ IDENTIFIED BY [ PASSWORD ] &#39;password&#39; ] [ ,用户 [ IDENTIFIED BY [ PASSWORD ] &#39;password&#39; ]]

La description du paramètre est la suivante :

1) Utilisateur

spécifie de créer un compte utilisateur, le format est nom_utilisateur'@'nom_hôte . Ici, user_name est le nom d'utilisateur et host_name est le nom d'hôte, qui est le nom de l'hôte utilisé par l'utilisateur pour se connecter à MySQL. Si seul le nom d'utilisateur est donné sans spécifier le nom d'hôte lors du processus de création, le nom d'hôte est par défaut "%", qui représente un groupe d'hôtes, c'est-à-dire que les autorisations sont ouvertes à tous les hôtes.

2) La clause IDENTIFIED BY

est utilisée pour spécifier le mot de passe de l'utilisateur. Les nouveaux utilisateurs n'ont pas besoin d'un mot de passe initial. Si l'utilisateur n'a pas de mot de passe, cette clause peut être omise.

3) MOT DE PASSE 'mot de passe'

MOT DE PASSE signifie utiliser une valeur de hachage pour définir le mot de passe. Ce paramètre est facultatif. Si le mot de passe est une chaîne simple, il n'est pas nécessaire d'utiliser le mot-clé PASSWORD. « mot de passe » représente le mot de passe utilisé par l'utilisateur pour se connecter et doit être placé entre guillemets simples.

Les points suivants doivent être notés lors de l'utilisation de l'instruction CREATE USER :

  • L'instruction CREATE USER n'a pas besoin de spécifier un mot de passe initial. Cependant, du point de vue de la sécurité, cette approche n'est pas recommandée.

  • Pour utiliser l'instruction CREATE USER, vous devez disposer de l'autorisation INSERT de la base de données mysql ou de l'autorisation globale CREATE USER.

  • Après avoir créé un utilisateur à l'aide de l'instruction CREATE USER, MySQL ajoutera un nouvel enregistrement dans la table user de la base de données mysql.

  • L'instruction CREATE USER peut créer plusieurs utilisateurs en même temps. Plusieurs utilisateurs sont séparés par des virgules.

Les utilisateurs nouvellement créés ont très peu d'autorisations, ils ne peuvent effectuer que des opérations qui ne nécessitent pas d'autorisations. Par exemple, connectez-vous à MySQL, utilisez l'instruction SHOW pour interroger la liste de tous les moteurs de stockage et jeux de caractères, etc. Si deux utilisateurs ont le même nom d'utilisateur mais des noms d'hôte différents, MySQL les traite comme deux utilisateurs et permet aux deux utilisateurs de se voir attribuer des ensembles d'autorisations différents.

Exemple 1

Utilisez CREATE USER pour créer un utilisateur, le nom d'utilisateur est test1, le mot de passe est test1 et le nom d'hôte est localhost. L'instruction SQL et le processus d'exécution sont les suivants.

mysql> CREATE USER &#39;test1&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;test1&#39;;
Query OK, 1 rows affected (0.06 sec)

Les résultats montrent que l'utilisateur test1 a été créé avec succès.

Dans les applications pratiques, nous devons éviter de spécifier les mots de passe en texte clair. Nous pouvons utiliser le mot-clé PASSWORD pour définir le mot de passe en utilisant la valeur de hachage du mot de passe.

Exemple 2

Dans MySQL, vous pouvez utiliser la fonction password() pour obtenir la valeur de hachage du mot de passe L'instruction SQL et le processus d'exécution pour afficher le test1. Les valeurs de hachage sont les suivantes :

mysql> SELECT password(&#39;test1&#39;);
+-------------------------------------------+
| password(&#39;test1&#39;)                         |
+-------------------------------------------+
| *06C0BF5B64ECE2F648B5F048A71903906BA08E5C |
+-------------------------------------------+
1 row in set, 1 warning (0.00 sec)
“*06C0BF5B64ECE2F648B5F048A71903906BA08E5C”就是 test1 的哈希值。下面创建用户 test1,SQL 语句和执行过程如下:
mysql> CREATE USER &#39;test1&#39;@&#39;localhost&#39;IDENTIFIED BY PASSWORD &#39;*06C0BF5B64ECE2F648B5F048A71903906BA08E5C&#39;;
Query OK, 0 rows affected, 1 warning (0.00 sec)

Après une exécution réussie, vous pouvez vous connecter en utilisant le mot de passe "test1".

2. Utilisez l'instruction INSERT pour créer un nouvel utilisateur

Vous pouvez utiliser l'instruction INSERT pour ajouter des informations utilisateur au mysql.user table, mais vous devez disposer de l'autorisation INSERT sur la table mysql.user. Habituellement, l'instruction INSERT ajoute uniquement les valeurs des trois champs Host, User et Authentication_string.

Le champ mot de passe dans la table utilisateur de MySQL 5.7 est passé de Mot de passe à chaîne_d'authentification. Si vous utilisez une version antérieure à MySQL 5.7, remplacez simplement le champ chaîne_d'authentification par Mot de passe.

Le code pour créer un utilisateur à l'aide de l'instruction INSERT est le suivant :

INSERT INTO mysql.user(Host, User,  authentication_string, ssl_cipher, x509_issuer, x509_subject) VALUES (&#39;hostname&#39;, &#39;username&#39;, PASSWORD(&#39;password&#39;), &#39;&#39;, &#39;&#39;, &#39;&#39;);

Étant donné que les trois champs ssl_cipher, x509_issuer et x509_subject dans la table user de la base de données mysql n'ont pas de valeurs par défaut, de nouveaux enregistrements sont insérés dans la table utilisateur, assurez-vous de définir les valeurs de ces trois champs, sinon l'instruction INSERT ne sera pas exécutée.

Exemple 3

Ce qui suit utilise l'instruction INSERT pour créer un utilisateur nommé test2. Le nom d'hôte est localhost et le mot de passe est également test2. L'instruction SQL et le processus d'exécution sont les suivants :

mysql> INSERT INTO mysql.user(Host, User, authentication_string, ssl_cipher, x509_issuer, x509_subject) VALUES (&#39;localhost&#39;, &#39;test2&#39;, PASSWORD(&#39;test2&#39;), &#39;&#39;, &#39;&#39;, &#39;&#39;);
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] &#39;password&#39;]

其中:

  • priv_type 参数表示新用户的权限;

  • database.table 参数表示新用户的权限范围,即只能在指定的数据库和表上使用自己的权限;

  • user 参数指定新用户的账号,由用户名和主机名构成;

  • IDENTIFIED BY 关键字用来设置密码;

  • password 参数表示新用户的密码。

例 4

下面使用 GRANT 语句创建名为 test3 的用户,主机名为 localhost,密码为 test3。该用户对所有数据库的所有表都有 SELECT 权限。SQL 语句和执行过程如下:

mysql> GRANT SELECT ON*.* TO &#39;test3&#39;@localhost IDENTIFIED BY &#39;test3&#39;;
Query OK, 0 rows affected, 1 warning (0.01 sec)

其中,“*.*” 表示所有数据库下的所有表。结果显示创建用户成功,且 test3 用户对所有表都有查询(SELECT)权限。

技巧:GRANT 语句是 MySQL 中一个非常重要的语句,它可以用来创建用户、修改用户密码和设置用户权限。教程后面会详细介绍如何使用 GRANT 语句修改密码、更改权限。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn