Maison >base de données >tutoriel mysql >De quelles autorisations MySQL dispose-t-il ?

De quelles autorisations MySQL dispose-t-il ?

青灯夜游
青灯夜游original
2022-04-12 14:04:0819068parcourir

Les autorisations MySQL incluent : 1. USAGE, qui ne peut être utilisé que pour la connexion à la base de données et ne peut effectuer aucune opération ; 2. SELECT, qui permet l'utilisation d'instructions SELECT pour afficher le contenu de la table ; 3. super, qui permet l'exécution d'un fichier ; série de commandes de gestion de base de données ; 4. processus, permet de visualiser les informations sur le processus ; 5. Arrêt, etc.

De quelles autorisations MySQL dispose-t-il ?

L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.

Autorisations diverses Mysql :

De quelles autorisations MySQL dispose-t-il ?

1. UTILISATION : autorisation de connexion (login) Lorsque vous créez un utilisateur, son autorisation d'utilisation sera automatiquement accordée (accordée par défaut).

Cette autorisation ne peut être utilisée que pour la connexion à la base de données et ne peut effectuer aucune opération, et cette autorisation ne peut pas être recyclée. Les autorisations utilisateur ne peuvent pas être supprimées même si REVOKE est utilisé.

 grant usage on *.* to 'iap'@'%' identified by 'iap123';

2. Autorisations sous la catégorie de données

2.1 : utilisez SELECT pour afficher le contenu de la table. Ce n'est qu'avec cette autorisation que vous pouvez exécuter des requêtes SELECT.

grant select on testdb.* to 'iap'@'%';

2.2, insert

Vous devez avoir l'autorisation d'insertion avant de pouvoir utiliser l'insertion dans les valeurs….

2.3, update

Vous devez avoir l'autorisation de mise à jour avant de pouvoir utiliser la table de mise à jour.

 update shop set price=3.5 where article=0001 and dealer='A';

2.4, supprimer

Vous devez avoir l'autorisation de suppression avant de pouvoir utiliser supprimer de ….où….(supprimer les enregistrements dans la table)

2.5, fichier (pas pour une certaine base de données, donc doit utilisez sur *.* pour effectuer)

l'autorisation de fichier fait référence à l'accès aux fichiers sur l'hôte du serveur. Seuls les utilisateurs de base de données disposant d'autorisations de fichier peuvent effectuer des opérations de sélection ..dans le fichier externe, de chargement de données dans le fichier....

Mais ne le faites pas. L'octroi de fichiers, de processus et de super autorisations à des comptes autres que les administrateurs présente de sérieux risques de sécurité.

R
grant file on *.* to 'iap'@'%';

Export Fichier: Select ... into Outfile 'Fichier Path'

view Import and Export Path Paramings: show Variables comme'% Sec% ';

Le paramètre

secure-file-priv est utilisé pour limiter charger les données, sélectionner ... le fichier de sortie et charger_file() dans lequel répertoire spécifié .

Méthode de modification spécifique : https://blog.csdn.net/weixin_39631030/article/details/79873936

Importer le fichier : charger le fichier de données 'Chemin absolu du fichier' dans la tablenom de la table ;

Utilisation spécifique : https://www.cnblogs.com/darange/p/10508714.html

3. Autorisations structurelles

CREATE : autorisation de créer des tables. Vous devez disposer de l'autorisation de création pour utiliser la création de table.

grant create on testdb.* to 'iap'@'%'

3.2, alter

doit avoir l'autorisation de modifier pour utiliser alter table.

grant alter on testdb.* to 'iap'@'%'

Exemple : alter table shop modify dealer char(15);

3.3, index

doit avoir l'autorisation d'index pour exécuter [create |drop] index

grant index on testdb.* to 'iap'@'%';

create index ix_shop on shop(article);

drop index ix_shop on shop;

3.4, drop

Vous devez avoir l'autorisation de drop pour utiliser

grant drop on testdb.* to 'iap'@'%';

drop database db_name;

drop table table_name;

drop view view_name;

drop index index_name;

3.5, créer des tables temporaires (notez qu'il s'agit de tables, pas de table)

Vous devez avoir l'autorisation de créer des tables temporaires avant de pouvoir utiliser la création de tables temporaires.

-- 授予iap@localhost 创建临时表权限
grant create temporary tables on testdb.* to 'iap'@'%';

--例 :  iap 用户登录,创建临时表
create temporary table tt1(id int);

3.6, afficher la vue

必须拥有show view权限,才能执行show create view

grant show view on testdb.* to 'iap'@'%';

show create view view_shop;

3.7、CREATE ROUTINE:创建procedure或function的权限。

如果用户有create routine 权限那么他就可以创建procedure | function 。

create  {procedure|function}

如果用户创建了procedure | function 那么mysql 自动授予EXECUTE, ALTER ROUTINE权限给它的创建者:

grant create routine on testdb.* to 'iap'@'%';

3.8、alter routine

必须具有alter routine的权限,才可以使用

{alter |drop} {procedure|function}

-- 授予 testdb数据库 修改/删除 存储过程/函数的权限
grant alter routine on testdb.* to 'iap'@'%';

3.9、excute

执行存在的FunctionsProcedures。

grant execute on testdb.* to 'iap'@'%';

3.10 、create view

必须有create view的权限,才可以使用 create view 创建视图。

-- 授予'iap'@'localhost'创建视图权限
grant create view on testdb.* to 'iap'@'%';

-- 例 : 'iap'@'localhost' 登录,创建v_shop视图
create view v_shop as select price from shop;

3.11 、event

 event : 允许查询,创建,修改,删除MySQL事件.

事件适用范围:对于每隔一段时间就有固定需求的操作,如创建表,删除数据等操作,可以使用event来处理。

详细说明:https://www.cnblogs.com/langtianya/p/5445528.html

例如:使用event在每月的1日凌晨1点自动创建下个月需要使用的三张表。

3.12 、Trigger

Trigger权限代表允许创建,删除,执行,显示触发器的权限.

4、管理权限

4.1、grant option

拥有grant option,就可以将自己拥有的权限授予其他用户(仅限于自己已经拥有的权限)

grant grant option on testdb.* to 'iap'@'%';

4.2、super

Super权限代表允许执行一系列数据库管理命令,包括kill强制关闭某个连接命令, change master to创建复制关系命令,以及create/alter/drop server等命令,修改全局变量的SET语句

mysql> grant super on *.* to p1@localhost;
mysql> purge master logs before ‘mysql-bin.000006′;

4.3、 process

Process权限代表允许查看MySQL中的进程信息,比如执行show processlist, mysqladmin processlist, show engine等命令

通过这个权限,用户可以执行SHOW PROCESSLIST和KILL命令。默认情况下,每个用户都可以执行SHOW PROCESSLIST命令,但是只能查询本用户的进程。

show PROCESSLIST

另外,管理权限(如 super, process, file等)不能够指定某个数据库,on后面必须跟*.*

grant super on *.* to p1@localhost;

4.4、Shutdown

shutdown权限代表允许关闭数据库实例,执行语句包括 : mysqladmin shutdown.

4.5、 show database

通过show database只能看到你拥有的某些权限的数据库,除非你拥有全局SHOW DATABASES权限。

对于iap@%t用户来说,没有对mysql数据库的权限,所以以此身份登陆查询时,无法看到mysql数据库:

4.6、reload

必须拥有reload权限,才可以执行flush [tables | logs | privileges]

reload 是 administrative 级的权限,即 server administration;

这类权限包括: create user,  process,  reload,  replication client,  replication slave,  show databases,  shutdown, super
这类权限的授权不是针对某个数据库的,因此须使用on *.* 来进行

grant reload on *.* to 'iap'@'%'

4.7、lock tables

必须拥有lock tables权限,才可以使用lock tables

grant lock tables on testdb.* to 'iap'@'localhost';

 lock tables a1 read;

unlock tables;

4.8、references

有了references权限,用户就可以将其它表的一个字段作为某一个表的外键约束。

4.9、replication client

Replication client权限代表允许执行show master status,  show slave status,   show binary logs命令

4.10、replication slave

L'autorisation d'esclave de réplication signifie que l'hôte esclave est autorisé à se connecter au maître via cet utilisateur pour établir une relation de réplication maître-esclave. Vous pouvez afficher le serveur esclave et lire les journaux binaires du serveur maître.

accorder l'esclave de réplication sur *.* à 'iap'@'%';

afficher les hôtes esclaves;

afficher les événements binlog;

4.11, Créer un utilisateur

Créer des autorisations utilisateur permettant la création et la modification, supprimer et renommer les autorisations des utilisateurs.

5. Table des types d'autorisations

5.1. Lors de l'octroi des autorisations de base de données, la table Description

SELECTSelect_priv signifie accorder à l'utilisateur l'autorisation d'accéder à toutes les tables et vues d'une base de données spécifique à l'aide de l'instruction SELECT. INSERTInsert_priv signifie accorder à l'utilisateur l'autorisation d'ajouter des lignes de données à toutes les tables d'une base de données spécifique à l'aide de l'instruction INSERT. DELETEDelete_priv signifie accorder à l'utilisateur l'autorisation de supprimer des lignes de données de toutes les tables d'une base de données spécifique à l'aide de l'instruction DELETE. UPDATEUpdate_priv signifie accorder à l'utilisateur l'autorisation de mettre à jour les valeurs de toutes les tables de données dans une base de données spécifique à l'aide de l'instruction UPDATE. REFERENCESReferences_priv signifie accorder à l'utilisateur l'autorisation de créer des clés étrangères pointant vers des tables dans une base de données spécifique. CREATECreate_priv représente l'autorisation qu'un utilisateur autorisé peut utiliser pour créer une nouvelle table dans une base de données spécifique à l'aide de l'instruction CREATE TABLE. ALTERAlter_priv signifie accorder à l'utilisateur l'autorisation de modifier toutes les tables de données dans une base de données spécifique à l'aide de l'instruction ALTER TABLE. SHOW VIEWShow_view_priv signifie accorder à l'utilisateur l'autorisation d'afficher les définitions de vue des vues existantes dans une base de données spécifique. CREATE ROUTINECreate_routine_priv signifie accorder à l'utilisateur l'autorisation de créer des procédures stockées et des fonctions stockées pour une base de données spécifique. ALTER ROUTINEAlter_routine_priv signifie accorder à l'utilisateur l'autorisation de mettre à jour et de supprimer les procédures stockées et les fonctions stockées existantes dans la base de données. INDEXIndex_priv signifie accorder à l'utilisateur l'autorisation de définir et de supprimer des index sur toutes les tables de données d'une base de données spécifique. DROPDrop_priv signifie accorder à l'utilisateur l'autorisation de supprimer toutes les tables et vues d'une base de données spécifique. CREATE TEMPORARY TABLESCreate_tmp_table_priv signifie accorder à l'utilisateur l'autorisation de créer des tables temporaires dans une base de données spécifique. CREATE VIEWCreate_view_priv signifie accorder à l'utilisateur l'autorisation de créer de nouvelles vues dans une base de données spécifique. EXECUTE ROUTINEExecute_priv signifie accorder à l'utilisateur l'autorisation d'appeler des procédures stockées et des fonctions stockées d'une base de données spécifique. LOCK TABLESLock_tables_priv signifie accorder à l'utilisateur l'autorisation de verrouiller les tables de données existantes d'une base de données spécifique. ALL ou ALL PRIVILEGES ou SUPERSuper_priv signifie toutes les autorisations/super autorisations ci-dessus5.2 Lors de l'octroi d'autorisations de table, le Nom de l'autorisation
correspond au champ de la table utilisateur

Description

SELECT INSÉRERDELETE DROPUPDATEALTERREFERENCESCREATE INDEXALL ou ALL PRIVILEGES ou SUPER

5.3. Accorder des autorisations de colonne

Lors de l'octroi d'autorisations de colonne, la valeur de ne peut être spécifiée que comme SELECT, INSERT et UPDATE, et la liste de colonnes de la liste des noms de colonne doit être ajoutée après les autorisations.

5.4. L'autorisation la plus efficace est l'autorisation de l'utilisateur.

Lors de l'octroi des autorisations utilisateur, le , en plus de toutes les valeurs qui peuvent être spécifiées lors de l'octroi des autorisations de base de données, peut également être les valeurs suivantes :

  • CREATE USER : indique que l'utilisateur accordé peut créer et supprimer de nouvelles autorisations d'utilisateurs.
  • SHOW DATABASES : indique que l'utilisateur est autorisé à utiliser l'instruction SHOW DATABASES pour afficher les définitions de toutes les bases de données existantes.

【Recommandations associées : tutoriel vidéo mysql

Select_priv Accorde à l'utilisateur l'autorisation d'accéder à une table spécifique à l'aide de l'instruction SELECT
Insert_priv Accordé à l'utilisateur Autorisation d'ajouter des lignes de données à une table spécifique à l'aide de l'instruction INSERT
Delete_priv Accorde à l'utilisateur l'autorisation de supprimer des lignes de données d'une table spécifique à l'aide de l'instruction DELETE
Drop_priv Accordez à l'utilisateur l'autorisation de supprimer la table de données
Update_priv Accordez à l'utilisateur l'autorisation de mettre à jour la table de données spécifique à l'aide de l'instruction UPDATE
Alter_priv Accordez à l'utilisateur l'autorisation d'utiliser l'instruction ALTER TABLE pour modifier la table de données. L'autorisation
References_priv Accorde à l'utilisateur l'autorisation de créer une clé étrangère pour référencer une table de données spécifique
Create_priv Accorde à l'utilisateur l'autorisation de créer une table de données en utilisant un nom spécifique
Index_priv Accorde à l'utilisateur l'autorisation de définir des index sur la table
Super_priv Tous les noms d'autorisations

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