MySQL implementiert ein ausgefeiltes Zugriffskontroll- und Berechtigungssystem, mit dem Sie umfassende Zugriffsregeln für die Abwicklung von Client-Vorgängen erstellen und den Zugriff nicht autorisierter Clients auf das Datenbanksystem wirksam verhindern können.
1. Wenn ein Client eine Verbindung zum Server herstellt, besteht die MySQL-Zugriffskontrolle aus zwei Phasen:
Verbindungsüberprüfung
: Der Client, der eine Verbindung zum MySQL-Datenbankserver herstellt, muss über einen gültigen Benutzernamen verfügen und Passwort. Darüber hinaus muss der Host, zu dem der Client eine Verbindung herstellt, mit dem Host in der MySQL-Autorisierungstabelle übereinstimmen. 连接验证
:连接到MySQL数据库服务器的客户端需要有一个有效的用户名和密码。此外,客户端连接的主机必须与MySQL授权表中的主机相匹配。
请求验证
:当连接成功建立后,对于客户端发出的每个语句,MySQL会检查客户端是否具有足够的权限来执行该特定语句。 MySQL能够检查数据库,表和字段级别的权限
2.MySQL安装程序
自动创建一个名为mysql的数据库。
mysql数据库
包含五个主要的授权表。 您可通过GRANT
和REVOKE
等语句间接操作这些表
user
表:包含用户帐户和全局权限列。MySQL使用user
表来接受或拒绝来自主机的连接。 在user
表中授予的权限对MySQL服务器上的所有数据库都有效。
db
表:包含数据库级权限。MySQL使用数据库表来确定用户可以访问哪个数据库以及哪个主机。在db
表中的数据库级授予的特权适用于数据库,所有对象属于该数据库,例如表
,触发器
,视图
,存储过程
等。
table_priv
和columns_priv
表:包含表级和列级权限。 在table_priv
表中授予的权限适用于表及其列,而在columns_priv
表中授予的权限仅适用于表的特定列。
procs_priv
Request Verification
: Wenn die Verbindung erfolgreich hergestellt wurde, prüft MySQL für jede vom Client ausgegebene Anweisung, ob der Client über ausreichende Berechtigungen zum Ausführen dieser spezifischen Anweisung verfügt. MySQL kann Berechtigungen auf Datenbank-, Tabellen- und Feldebene überprüfen. 2.MySQL-Installationsprogramm
erstellt automatisch eine Datenbank mit dem Namen mysql.
MySQL-Datenbank
enthält fünf Hauptautorisierungstabellen. Sie können diese Tabellen indirekt über Anweisungen wie GRANT
und REVOKE
bedienen. 🎜🎜🎜🎜user
-Tabelle: enthält Benutzerkonto- und globale Berechtigungsspalten. MySQL verwendet die Tabelle user
, um Verbindungen vom Host zu akzeptieren oder abzulehnen. In der Tabelle user
erteilte Berechtigungen gelten für alle Datenbanken auf dem MySQL-Server. 🎜🎜🎜🎜db
-Tabelle: Enthält Berechtigungen auf Datenbankebene. MySQL verwendet Datenbanktabellen, um zu bestimmen, auf welche Datenbank und auf welchen Host ein Benutzer zugreifen kann. Auf Datenbankebene in einer db
-Tabelle gewährte Berechtigungen gelten für die Datenbank, zu der alle Objekte gehören, wie z. B. tables
, triggers
, Ansichten
, gespeicherte Prozeduren
usw. 🎜🎜🎜🎜table_priv
- und columns_priv
-Tabellen: Enthält Berechtigungen auf Tabellen- und Spaltenebene. In einer table_priv
-Tabelle gewährte Berechtigungen gelten für die Tabelle und ihre Spalten, während in einer columns_priv
-Tabelle gewährte Berechtigungen nur für bestimmte Spalten der Tabelle gelten. 🎜🎜🎜🎜procs_priv
-Tabelle: Enthält Berechtigungen für gespeicherte Funktionen und gespeicherte Prozeduren. 🎜🎜🎜🎜🎜MySQL verwendet diese Tabellen, um die Berechtigungen des MySQL-Datenbankservers zu steuern. Es ist wichtig, diese Tabellen zu verstehen, bevor Sie Ihr eigenes flexibles Zugangskontrollsystem implementieren. 🎜🎜Empfohlen: 🎜MySQL-Tutorial🎜🎜Das obige ist der detaillierte Inhalt vonErste Schritte mit dem MySQL-Zugriffskontrollsystem. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!