Heim >Datenbank >MySQL-Tutorial >Welche Berechtigungen hat MySQL?
MySQL-Berechtigungen umfassen: 1. USAGE, das nur für die Datenbankanmeldung verwendet werden kann und keine Operationen ausführen kann; 2. SELECT, das die Verwendung von SELECT-Anweisungen zum Anzeigen von Tabelleninhalten ermöglicht; 3. super, was die Ausführung von a ermöglicht; Reihe von Datenbankverwaltungsbefehlen; 4. Prozess, ermöglicht die Anzeige von Prozessinformationen; 5. Herunterfahren usw.
Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.
Verschiedene MySQL-Berechtigungen:
1. VERWENDUNG: Wenn Sie einen Benutzer erstellen, wird dessen Nutzungsberechtigung automatisch erteilt (standardmäßig gewährt).
Diese Berechtigung kann nur für die Datenbankanmeldung verwendet werden und keine Vorgänge ausführen, und diese Berechtigung kann nicht wiederverwendet werden. Benutzerberechtigungen können nicht gelöscht werden, selbst wenn REVOKE verwendet wird.
grant usage on *.* to 'iap'@'%' identified by 'iap123';
2. Berechtigungen unter der Datenkategorie
2.1. Verwenden Sie SELECT, um Tabelleninhalte anzuzeigen. Nur mit dieser Berechtigung können Sie eine SELECT-Abfrage ausführen. 2.2, Einfügen .
grant select on testdb.* to 'iap'@'%';
2.4, löschen
Sie müssen über die Löschberechtigung verfügen, bevor Sielöschen von ….wo….(Datensätze in der Tabelle löschen) verwenden können
2.5, Datei (nicht für eine bestimmte Datenbank, daher ein Muss Verwenden Sie *.* zum Ausführen)
Die Dateiberechtigung bezieht sich auf den Zugriff auf Dateien auf dem Serverhost. Nur Datenbankbenutzer mit Dateiberechtigungen können Vorgänge zum Auswählen von ..into outfile, Load data infile... ausführen.Aber nicht. Die Gewährung von Datei-, Prozess- und Superberechtigungen an andere Konten als Administratoren birgt ernsthafte Sicherheitsrisiken.
update shop set price=3.5 where article=0001 and dealer='A';
Datei exportieren:
wählen... in die Ausgabedatei 'Dateipfad'
Einstellungen für Import- und Exportpfad anzeigen:
Variablen wie '%sec%' anzeigen ;Der Parameter
secure-file-privwird verwendet, um das Laden von Daten zu
zu begrenzen
, ... outfile auszuwählen und Load_file() in das
angegebene Verzeichniszu laden. Spezifische Änderungsmethode: https://blog.csdn.net/weixin_39631030/article/details/79873936Datei importieren: Daten in Datei laden 'Absoluter Dateipfad' in TabelleTabellenname;
Spezifische Verwendung: https://www.cnblogs.com/darange/p/10508714.html
3. Strukturelle Berechtigungen
3.1. Sie müssen über die Berechtigung „Erstellen“ verfügen, um „Tabelle erstellen“ verwenden zu können.grant file on *.* to 'iap'@'%';
3.2, alter muss über eine Alter-Berechtigung verfügen, um alter table
verwenden zu können.grant create on testdb.* to 'iap'@'%'Beispiel:
3.3, Index
muss über die Indexberechtigung verfügen, um einen Index auszuführen. ix_shop auf shop;
3.4, dropalter table shop modify dealer char(15);
Sie müssen über eine Drop-Berechtigung verfügen, umgrant alter on testdb.* to 'iap'@'%'
drop Database
db_name;drop table table_name;
drop view view_name;
Drop-Index index_name;
3.5, temporäre Tabellen erstellen (beachten Sie, dass es sich hierbei um Tabellen und nicht um Tabellen handelt)Sie müssen über die Berechtigung zum Erstellen temporärer Tabellen verfügen, bevor Sie „Temporäre Tabellen erstellen“ verwenden können.
grant index on testdb.* to 'iap'@'%';3.6, Ansicht anzeigen
必须拥有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
Replikations-Slave-Berechtigung bedeutet, dass der Slave-Host über diesen Benutzer eine Verbindung zum Master herstellen darf, um eine Master-Slave-Replikationsbeziehung herzustellen. Sie können den Slave-Server anzeigen und Binärprotokolle vom Master-Server lesen.
Replikations-Slave auf *.* an 'iap'@'%' gewähren;
Slave-Hosts anzeigen;
Binlog-Ereignisse anzeigen;
4.11, Benutzer erstellen
Benutzerberechtigungen erstellen, die das Erstellen und Ändern ermöglichen, Benutzerberechtigungen löschen und umbenennen.
5. Berechtigungstyptabelle
5.1. Bei der Erteilung von Datenbankberechtigungen entspricht die Tabelle „Berechtigungstyp“ dem Feld in der Benutzertabelle Skript
SELECT
entspricht dem Feld in der BenutzertabelleINSERT Select_priv bedeutet, dem Benutzer mithilfe der SELECT-Anweisung die Berechtigung zu erteilen, auf alle Tabellen und Ansichten in einer bestimmten Datenbank zuzugreifen. DELETE Insert_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, mithilfe der INSERT-Anweisung Datenzeilen zu allen Tabellen in einer bestimmten Datenbank hinzuzufügen. UPDATE Delete_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, Datenzeilen aus allen Tabellen in einer bestimmten Datenbank mithilfe der DELETE-Anweisung zu löschen. REFERENCES Update_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, die Werte aller Datentabellen in einer bestimmten Datenbank mithilfe der UPDATE-Anweisung zu aktualisieren. CREATE References_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, Fremdschlüssel zu erstellen, die auf Tabellen in einer bestimmten Datenbank verweisen. ALTER Create_priv stellt die Berechtigung dar, die ein autorisierter Benutzer verwenden kann, um mithilfe der CREATE TABLE-Anweisung eine neue Tabelle in einer bestimmten Datenbank zu erstellen. VIEW VIEW Alter_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, alle Datentabellen in einer bestimmten Datenbank mithilfe der ALTER TABLE-Anweisung zu ändern. ROUTINE ERSTELLEN Show_view_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, die Ansichtsdefinitionen vorhandener Ansichten in einer bestimmten Datenbank anzuzeigen. ALTER ROUTINE Create_routine_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, gespeicherte Prozeduren und gespeicherte Funktionen für eine bestimmte Datenbank zu erstellen. INDEX Alter_routine_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, vorhandene gespeicherte Prozeduren und gespeicherte Funktionen in der Datenbank zu aktualisieren und zu löschen. DROP Index_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, Indizes für alle Datentabellen in einer bestimmten Datenbank zu definieren und zu löschen. Temporäre Tabellen erstellen Drop_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, alle Tabellen und Ansichten in einer bestimmten Datenbank zu löschen. ANSICHT ERSTELLEN Create_tmp_table_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, temporäre Tabellen in einer bestimmten Datenbank zu erstellen. EXECUTE ROUTINE Create_view_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, neue Ansichten in einer bestimmten Datenbank zu erstellen. LOCK TABLES Execute_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, gespeicherte Prozeduren und gespeicherte Funktionen einer bestimmten Datenbank aufzurufen. ALLE oder ALLE PRIVILEGES oder SUPER Lock_tables_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, vorhandene Datentabellen einer bestimmten Datenbank zu sperren. Super_priv bedeutet alle oben genannten Berechtigungen/Superberechtigungen Berechtigungsname 5.2 Bei der Erteilung von Tabellenberechtigungen kann als folgender Wert angegeben werden: Beschreibung
SELECT
EINFÜGEN Select_priv Gewährt dem Benutzer die Berechtigung, mit der SELECT.-Anweisung auf eine bestimmte Tabelle zuzugreifen DELETE Insert_priv Dem Benutzer wird die Berechtigung erteilt, Datenzeilen mit der INSERT-Anweisung zu einer bestimmten Tabelle hinzuzufügen DROP Delete_priv Gewährt dem Benutzer die Berechtigung, Datenzeilen mit der DELETE-Anweisung aus einer bestimmten Tabelle zu löschen UPDATE Drop_priv Gewähren Sie dem Benutzer die Berechtigung zum Löschen der Datentabelle. Update_priv Gewähren Sie dem Benutzer die Berechtigung, die ALTER TABLE-Anweisung zum Ändern der Datentabelle zu verwenden. Die BerechtigungREFERENCES References_priv Gewährt dem Benutzer die Berechtigung, einen Fremdschlüssel zum Referenzieren einer bestimmten Datentabelle zu erstellen CREATE Create_priv Gewährt dem Benutzer die Berechtigung, eine Datentabelle unter einem bestimmten Namen zu erstellen INDEX Index_priv Gewährt dem Benutzer die Berechtigung, Indizes für die Tabelle zu definieren ALL oder ALL PRIVILEGES oder SUPER Super_priv Alle Berechtigungsnamen 5.3. Spaltenberechtigungen erteilen
Beim Erteilen von Spaltenberechtigungen kann der Wert von
nur als SELECT, INSERT und UPDATE angegeben werden, und die Spaltennamenliste (Spaltenliste) muss nach den Berechtigungen hinzugefügt werden. 5.4. Die effizienteste Berechtigung ist die Benutzererlaubnis.
Bei der Erteilung von Benutzerberechtigungen kann der
zusätzlich zu allen Werten, die bei der Erteilung von Datenbankberechtigungen angegeben werden können, auch die folgenden Werte sein:
- BENUTZER ERSTELLEN: Gibt an, dass der gewährte Benutzer dies tun kann Berechtigungen zum Erstellen und Löschen neuer Benutzer.
- SHOW DATABASES: Zeigt an, dass dem Benutzer die Berechtigung erteilt wurde, die SHOW DATABASES-Anweisung zum Anzeigen der Definitionen aller vorhandenen Datenbanken zu verwenden.
【Verwandte Empfehlungen: MySQL-Video-Tutorial】
Das obige ist der detaillierte Inhalt vonWelche Berechtigungen hat MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!