Maison >base de données >tutoriel mysql >De quelles autorisations MySQL dispose-t-il ?
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.
L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.
Autorisations diverses Mysql :
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é.
Rgrant 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
执行存在的Functions、Procedures。
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
Select_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. | |
---|---|---|
Insert_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. | |
Delete_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. | |
Update_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. | |
References_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. | |
Create_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. | |
Alter_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_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_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_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. | |
Index_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. | |
Drop_priv | signifie accorder à l'utilisateur l'autorisation de supprimer toutes les tables et vues d'une base de données spécifique. | |
Create_tmp_table_priv | signifie accorder à l'utilisateur l'autorisation de créer des tables temporaires dans une base de données spécifique. | |
Create_view_priv | signifie accorder à l'utilisateur l'autorisation de créer de nouvelles vues dans une base de données spécifique. | |
Execute_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_tables_priv | signifie accorder à l'utilisateur l'autorisation de verrouiller les tables de données existantes d'une base de données spécifique. | |
Super_priv | signifie toutes les autorisations/super autorisations ci-dessus | |
5.2 Lors de l'octroi d'autorisations de table, le |
Description
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!