Maison  >  Article  >  base de données  >  Résumé et partage de la création d'utilisateurs et de la gestion des autorisations dans MySQL

Résumé et partage de la création d'utilisateurs et de la gestion des autorisations dans MySQL

WBOY
WBOYavant
2022-09-02 16:59:462081parcourir

Apprentissage recommandé : Tutoriel vidéo mysql

1. Gestion des utilisateurs

Vous pouvez afficher les utilisateurs créés dans mysql库里有个user表

1 Créer un utilisateur MySQL

Remarque : Vous ne pouvez pas simplement utiliser l'utilisateur. nom dans MySQL Pour décrire l'utilisateur, l'hôte doit être ajouté. Tel que hhy@10.1.1.1

Syntaxe de base :

mysql> create user '用户名'@'被允许连接的主机名称或主机的IP地址' identified by '用户密码';
mysql> select user,host from mysql.user;

Cas : Créer un compte MySQL, nom d'utilisateur : hhy, mot de passe utilisateur : 123

mysql> create user 'hhy'@'localhost' identified by '123';
/*或*/
mysql> create user 'hhy'@'127.0.0.1' identified by '123';

Créer un compte MySQL (re demandé Ouvrir une connexion à distance), adresse IP de l'hôte : 192.1668.44.110, nom d'utilisateur : test, mot de passe utilisateur : 123

mysql> create user 'test'@'192.1668.44.110' identified by '123';

Test : Sur l'hôte avec l'adresse IP 192.168.44.110

# yum install mysql -y
# mysql -h 192.168.44.110 -P 3306 -uharry -p
Enter password:123

Description de l'option : 192.168.44.110 : L'adresse IP du serveur MySQL

yum install mysql : signifie que le client MySQL est installé
yum install mysql-server : signifie que le serveur MySQL est installé

Cas : Créer un compte MySQL (nécessite ouverture de connexion à distance), segment de réseau IP hôte : 10.1.1.0, nom d'utilisateur : jack, mot de passe utilisateur : 123

create user 'jack'@'192.168.44.%' identified by '123'

Cas : Créer un compte MySQL (nécessite l'ouverture d'une connexion à distance), obligatoire pour être ouvert à tous les hôtes, nom d'utilisateur : root, mot de passe utilisateur : 123

create user 'root'@'%' identified by '123';

2. Supprimer l'utilisateur MySQL

Utilisateur de base :

mysql> supprimer l'utilisateur 'nom d'utilisateur'@'nom d'hôte ou adresse IP de l'hôte';

Remarque spéciale :

Si vous ne précisez pas le nom de l'hébergeur ou l'adresse IP de l'hébergeur lors de la suppression d'un utilisateur, toutes les informations sur ce compte seront supprimées par défaut.

Case: delete hhy compte

drop user 'hhy'@'localhost';

case: delete jack compte

drop user 'jack'@'192.168.44.%';

case: Create deux comptes Harry (localhost / 10.1.1.23), puis en supprimer l'un d'eux rreee

une autre façon de supprimer un compte MySQL

mysql> create user 'harry'@'localhost' identified by '123';
mysql> create user 'harry'@'192.168.44.110' identified 

mysql> drop user 'harry'@'192.168.44.110';

3. Modifier l'utilisateur MySQL

Instructions spéciales :Renommer un utilisateur MySQL peut généralement modifier deux parties, l'une est le nom de l'utilisateur et l'autre est le nom d'hôte ou l'hôte autorisé à accéder à l'IP. adresse.

Syntaxe de base :

mysql> delete from mysql.user where user='root' and host='%';
mysql> flush privileges;

Cas : Changer l'utilisateur 'root'@'%' en 'root'@'10.1.1.%'

mysql> rename user 旧用户信息 to 新用户信息;

Cas : Changer 'harry'@'localhost ' Renommé en 'hhy'@'localhost'

mysql> rename user 'root'@'%' to 'root'@'10.1.1.%';

Utilisez l'instruction de mise à jour pour mettre à jour les informations utilisateur

mysql> create user 'tom'@'localhost' identified by '123';
mysql> rename user 'tom'@'localhost' to 'hhy'@'localhost';

2. Gestion des autorisations

1 Description des autorisations

Description de toutes les autorisations

mysql> update mysql.user set user='hhy',host='localhost' where user='tom' and host='localhost';

mysql> flush privileges;

Par défaut, s'il n'y a pas d'autorisation quand. attribution d'autorisations Spécifier avec l'option Grant signifie que cet utilisateur ne peut pas accorder d'autorisations à d'autres utilisateurs, mais que cette allocation d'autorisation ne peut pas dépasser ses propres autorisations.

2. Emplacement de stockage des autorisations (comprendre)

  • mysql.user :Comptes et mots de passe de tous les utilisateurs MySQL, et autorisations utilisateur sur l'ensemble de la base de données et de la table (*.*)
  • mysql.db : Non Les autorisations de la bibliothèque mysql sont stockées ici (db.*)
  • mysql.table_priv :Autorisation d'une certaine table dans une certaine bibliothèque (db.table)
  • mysql.columns_priv :Autorisation d'une certaine colonne dans une certaine table dans une certaine bibliothèque (db .table.col1)
  • mysql.procs_priv:Autorisation des procédures stockées dans une certaine bibliothèque
3 Autoriser les utilisateurs

Créer une table de base de données:

USAGE	无权限,只有登录数据库,只可以使用test或test_*数据库
ALL		所有权限
以下权限为指定权限
select/update/delete/super/replication slave/reload...
with grant option 选项表示允许把自己的权限授予其它用户或者从其他用户收回自己的权限

. Syntaxe de base :

create database java;
use java;
create table tb_student(
	id mediumint not null auto_increment,
	name varchar(20),
	age tinyint unsigned default 0,
	gender enum('男','女'),
	address varchar(255),
	primary key(id)
) engine=innodb default charset=utf8;

insert into tb_student values (null,'刘备',33,'男','湖北省武汉市');
insert into tb_student values (null,'貂蝉',18,'女','湖南省长沙市');
insert into tb_student values (null,'关羽',32,'男','湖北省荆州市');
insert into tb_student values (null,'大乔',20,'女','河南省漯河市');
insert into tb_student values (null,'赵云',25,'男','河北省石家庄市');
insert into tb_student values (null,'小乔',18,'女','湖北省荆州市');

Library.table Méthode de représentation : *.* représente toutes les tables de données de toutes les bases de données, db_itheima.* représente toutes les tables de données de la base de données db_itheima, db_itheima.tb_admin représente la table tb_admin de la base de données db_itheima

Cas : Attribuez une base de données Java à votre compte Autorisations de requête

mysql> grant 权限1,权限2 on 库.表 to 用户@主机
mysql> grant 权限(列1,列2,...) on 库.表 to 用户@主机

Cas : Attribuez des autorisations à la table de données java.tb_student au compte hehanyu (obligatoire pour modifier uniquement le champ d'âge)

mysql> grant select on java.* to 'hehanyu'@'192.168.44.%';

mysql> flush privileges;

Cas : Ajoutez un compte root@%, puis attribuez toutes les autorisations

mysql> grant update(age) on java.tb_student to 'hehanyu'@'192.168.44.%';

mysql> flush privileges;

4. Interrogez les autorisations de l'utilisateur

Interrogez les autorisations de l'utilisateur actuel :

create user 'root'@'%' identified by '123';
grant all on *.* to 'root'@'%';
flush privileges;

Interrogez les autorisations d'autres utilisateurs :

mysql> show grants;

5 avec l'option d'attribution d'autorisation

.
mysql> show grants for '用户名称'@'授权的主机名称或IP地址';

Comme indiqué dans la commande ci-dessus :amy a la fonction d'accorder des autorisations et Harry n'a pas la fonction d'accorder des autorisations.

Si l'autorisation d'octroi n'a pas l'option avec option d'octroi, elle ne peut pas autoriser d'autres utilisateurs.

6.revoke pour récupérer les autorisations

Syntaxe de base :

revoke 权限 on 库.表 from 用户;
查看hehanyu用户权限
mysql> show grants for 'hehanyu'@'192.168.44.%';
撤消指定的权限
mysql> revoke update on java.tb_student from 'tom'@'192.168.44.%';
撤消所有的权限
mysql> revoke select on java.* from 'tom'@'192.168.44.%';

推荐学习: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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer