Heim  >  Artikel  >  Datenbank  >  Welche Berechtigungen hat MySQL?

Welche Berechtigungen hat MySQL?

青灯夜游
青灯夜游Original
2022-04-12 14:04:0818978Durchsuche

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.

Welche Berechtigungen hat MySQL?

Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.

Verschiedene MySQL-Berechtigungen:

Welche Berechtigungen hat MySQL?

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 Sie

lö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-priv

wird verwendet, um das Laden von Daten zu

zu begrenzen

, ... outfile auszuwählen und Load_file() in das

angegebene Verzeichnis

zu 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, um

grant 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

执行存在的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

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

SELECTINSERTDELETEUPDATEREFERENCESCREATEALTERVIEW VIEWROUTINE ERSTELLENALTER ROUTINEINDEXDROPTemporäre Tabellen erstellenANSICHT ERSTELLENEXECUTE ROUTINELOCK TABLESALLE oder ALLE PRIVILEGES oder SUPERBerechtigungsname
Select_priv bedeutet, dem Benutzer mithilfe der SELECT-Anweisung die Berechtigung zu erteilen, auf alle Tabellen und Ansichten in einer bestimmten Datenbank zuzugreifen.
Insert_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, mithilfe der INSERT-Anweisung Datenzeilen zu allen Tabellen in einer bestimmten Datenbank hinzuzufügen.
Delete_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, Datenzeilen aus allen Tabellen in einer bestimmten Datenbank mithilfe der DELETE-Anweisung zu löschen.
Update_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, die Werte aller Datentabellen in einer bestimmten Datenbank mithilfe der UPDATE-Anweisung zu aktualisieren.
References_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, Fremdschlüssel zu erstellen, die auf Tabellen in einer bestimmten Datenbank verweisen.
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.
Alter_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, alle Datentabellen in einer bestimmten Datenbank mithilfe der ALTER TABLE-Anweisung zu ändern.
Show_view_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, die Ansichtsdefinitionen vorhandener Ansichten in einer bestimmten Datenbank anzuzeigen.
Create_routine_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, gespeicherte Prozeduren und gespeicherte Funktionen für eine bestimmte Datenbank zu erstellen.
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.
Index_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, Indizes für alle Datentabellen in einer bestimmten Datenbank zu definieren und zu löschen.
Drop_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, alle Tabellen und Ansichten in einer bestimmten Datenbank zu löschen.
Create_tmp_table_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, temporäre Tabellen in einer bestimmten Datenbank zu erstellen.
Create_view_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, neue Ansichten in einer bestimmten Datenbank zu erstellen.
Execute_priv bedeutet, dem Benutzer die Berechtigung zu erteilen, gespeicherte Prozeduren und gespeicherte Funktionen einer bestimmten Datenbank aufzurufen.
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
5.2 Bei der Erteilung von Tabellenberechtigungen kann als folgender Wert angegeben werden:
entspricht dem Feld in der Benutzertabelle

Beschreibung

SELECT EINFÜGENDELETE DROPUPDATEGewähren Sie dem Benutzer die Berechtigung, die ALTER TABLE-Anweisung zum Ändern der Datentabelle zu verwenden. Die Berechtigung REFERENCESReferences_privGewährt dem Benutzer die Berechtigung, einen Fremdschlüssel zum Referenzieren einer bestimmten Datentabelle zu erstellenCREATE Create_privGewährt dem Benutzer die Berechtigung, eine Datentabelle unter einem bestimmten Namen zu erstellenINDEXIndex_privGewährt dem Benutzer die Berechtigung, Indizes für die Tabelle zu definierenALL oder ALL PRIVILEGES oder SUPER Super_privAlle 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

Select_priv Gewährt dem Benutzer die Berechtigung, mit der SELECT.-Anweisung auf eine bestimmte Tabelle zuzugreifen
Insert_priv Dem Benutzer wird die Berechtigung erteilt, Datenzeilen mit der INSERT-Anweisung zu einer bestimmten Tabelle hinzuzufügen
Delete_priv Gewährt dem Benutzer die Berechtigung, Datenzeilen mit der DELETE-Anweisung aus einer bestimmten Tabelle zu löschen
Drop_priv Gewähren Sie dem Benutzer die Berechtigung zum Löschen der Datentabelle.
Update_priv

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn