Maison > Article > base de données > Comment ajouter des utilisateurs à la base de données MySQL
Deux méthodes pour ajouter des utilisateurs : 1. Utilisez l'instruction CREATE USER pour créer un nouvel utilisateur et définir le mot de passe correspondant, la syntaxe est "CREATE USER user IDENTIFIED BY [PASSWORD] 'password']". 2. Utilisez l'instruction GRANT pour créer un nouvel utilisateur, avec la syntaxe "GRANT user author ON database.table TO user [IDENTIFIED BY [PASSWORD] 'password']".
L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.
Lorsque MySQL est installé, un utilisateur nommé root sera créé par défaut. Cet 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 le moins possible l'utilisateur root pour se connecter. au système pour assurer la sécurité des données.
Deux façons d'ajouter (créer) des utilisateurs à la base de données MySQL
Utilisez l'instruction CREATE USER pour créer des utilisateurs
Utilisez l'instruction GRANT pour créer des utilisateurs
Oui Utilisez 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 ] 'password'];
1) L'utilisateur
précise créer un compte utilisateur, le format est username'@'hostname. 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.
3) 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.
2) 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.
Remarque : Le mot de passe doit être en texte clair. MySQL crypte les mots de passe avant d'enregistrer les comptes d'utilisateurs dans la table user
. user
表中之前,MySQL将加密密码。
例如,要创建一个使用 密码dbadmin
连接到MySQL数据库服务器 的新用户,请使用以下 语句:localhost
secret
CREATE USER
CREATE USER dbadmin@localhost IDENTIFIED BY 'secret';
要查看用户帐户的权限,请使用以下SHOW GRANTS
语句:
SHOW GRANTS FOR dbadmin@localhost;
结果中的*.*
表示用户帐户dbadmin
只能登录数据库服务器,没有其他权限。要向用户授予权限,请使用GRANT
语句。
请注意,点(.
)前面的部分代表数据库,点(.
)后面的部分代表表格,例如, database.table
要允许用户帐户从任何主机进行连接,请使用百分比(%)
通配符,如以下示例所示:
CREATE USER superadmin@'%'IDENTIFIED BY 'secret';
百分比通配符%
与在LIKE
运算符中使用的效果相同,例如,要允许mysqladmin
用户帐户从begtut.com
主机的任何子域连接到数据库服务器 ,请使用百分比通配符%
,如下所示:
CREATE USER mysqladmin@'%.begtut.com'IDENTIFIED by 'secret';
请注意,您还可以在CREATE USER
语句中使用下划线通配符_ 。
如果省略hostname
用户帐户的一部分,MySQL将接受它并允许用户从任何主机连接。例如,以下语句创建一个名为remote
可以从任何主机连接到数据库服务器的新用户帐户:
CREATE USER remote;
您可以看到授予remote
用户帐户的权限,如下所示:
SHOW GRANTS FOR remote;
如果您不小心引用了用户帐户'username@hostname'
,MySQL会创建一个用户 username@hostname name
dbadmin
pour vous connecter au serveur de base de données MySQL, utilisez l'instruction suivante : ">localhost
secret
CRÉER UN UTILISATEUR
🎜CREATE USER 'api@localhost';🎜Pour afficher les autorisations de un compte utilisateur, utilisez l'instruction
SHOW GRANTS
suivante : 🎜SHOW GRANTS FOR 'api@localhost';🎜🎜🎜
*.*
dans les résultats représente le compte utilisateur dbadmin peut uniquement se connecter au serveur de base de données et ne dispose d'aucune autre autorisation. Pour accorder des autorisations à un utilisateur, utilisez l'instruction GRANT
. 🎜🎜Veuillez noter que la partie avant le point (.
) représente la base de données, et la partie après le point (.) Représente une table, par exemple, <code class="bt-codespan">database.table
🎜🎜Pour permettre à un compte utilisateur de se connecter depuis n'importe quel hôte, utilisez des pourcentages (%)
, comme indiqué dans l'exemple suivant : 🎜CREATE USER remote;🎜Le caractère générique de pourcentage
%
fonctionne avec le LIKE
a le même effet que s'il était utilisé dans le compte utilisateur mysqladmin
depuis n'importe quel sous-hôte du begtut.com
domaine hôte pour vous connecter au serveur de base de données, veuillez utiliser le caractère générique de pourcentage %
comme indiqué ci-dessous : 🎜ERROR 1396 (HY000): Operation CREATE USER failed for 'remote'@'%'🎜Veuillez noter que vous pouvez également utilisez le caractère générique de pourcentage
Utilisez le caractère générique de soulignement _ dans l'instruction CREATE USER
. 🎜🎜Si vous omettez la partie hostname
du compte utilisateur, MySQL l'acceptera et permettra à l'utilisateur de se connecter depuis n'importe quel hôte. Par exemple, l'instruction suivante crée un nouveau compte utilisateur nommé remote
qui peut se connecter au serveur de base de données depuis n'importe quel hôte : 🎜GRANT priv_type ON database.table TO user [IDENTIFIED BY [PASSWORD] 'password']🎜 Vous pouvez voir la subvention
remote
Les autorisations du compte utilisateur, comme suit : 🎜mysql> GRANT SELECT ON*.* TO 'test3'@localhost IDENTIFIED BY 'test3'; Query OK, 0 rows affected, 1 warning (0.01 sec)🎜🎜🎜Si vous faites accidentellement référence au compte utilisateur
'username@hostname'
, MySQL le fera créez un utilisateur nom d'utilisateur@nom d'hôte
et permet aux utilisateurs de se connecter à partir de n'importe quel hôte, ce qui n'est peut-être pas ce à quoi vous vous attendez. 🎜例如,以下语句创建一个api@localhost
可以从任何主机连接到MySQL数据库服务器的新用户。
CREATE USER 'api@localhost';
SHOW GRANTS FOR 'api@localhost';
如果您创建一个已存在的用户,MySQL将发出错误。例如,以下语句创建一个remote
已存在的名为的用户帐户:
CREATE USER remote;
MySQL发出以下错误消息:
ERROR 1396 (HY000): Operation CREATE USER failed for 'remote'@'%'
注意:CREATE USER
语句只是一个没有权限的新用户帐户。如果要向用户授予权限,请使用GRANT
语句。
虽然 CREATE USER 语句可以创建普通用户,但是这种方式不便授予用户权限。于是 MySQL 提供了 GRANT 语句。
使用 GRANT 语句创建用户的基本语法形式如下:
GRANT priv_type ON database.table TO user [IDENTIFIED BY [PASSWORD] 'password']
其中:
priv_type 参数表示新用户的权限;
database.table 参数表示新用户的权限范围,即只能在指定的数据库和表上使用自己的权限;
user 参数指定新用户的账号,由用户名和主机名构成;
IDENTIFIED BY 关键字用来设置密码;
password 参数表示新用户的密码。
示例:
下面使用 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 语句修改密码、更改权限。
【相关推荐:mysql视频教程】
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!