# 访问控制系统入门

在本教程中，我们将向您介绍MySQL访问控制系统和MySQL中各种与权限相关的表。

MySQL实现了复杂的访问控制和权限系统，允许您创建用于处理客户端操作的全面的访问规则，并有效防止未经授权的客户端访问数据库系统。

当客户端连接到服务器时，MySQL访问控制有两个阶段：

* *连接验证*：连接到MySQL数据库服务器的客户端需要有一个有效的用户名和密码。此外，客户端连接的主机必须与MySQL授权表中的主机相匹配。
* *请求验证*：当连接成功建立后，对于客户端发出的每个语句，MySQL会检查客户端是否具有足够的权限来执行该特定语句。 MySQL能够检查数据库，表和字段级别的权限。

MySQL安装程序自动创建一个名为`mysql`的数据库。 `mysql`数据库包含五个主要的授权表。 您可通过[GRANT](http://www.yiibai.com/mysql/grant.html)和[REVOKE](http://www.yiibai.com/mysql/revoke.html)等语句间接操作这些表 -

* `user`表：包含用户帐户和全局权限列。MySQL使用`user`表来接受或拒绝来自主机的连接。 在`user`表中授予的权限对MySQL服务器上的所有数据库都有效。
* `db`表：包含数据库级权限。MySQL使用数据库表来确定用户可以访问哪个数据库以及哪个主机。在`db`表中的数据库级授予的特权适用于数据库，所有对象属于该数据库，例如表，[触发器](http://www.yiibai.com/mysql/triggers.html)，[视图](http://www.yiibai.com/mysql/views.html)，[存储过程](http://www.yiibai.com/mysql/stored-procedure.html)等。
* `table_priv`和`columns_priv`表：包含表级和列级权限。 在`table_priv`表中授予的权限适用于表及其列，而在`columns_priv`表中授予的权限仅适用于表的特定列。
* `procs_priv`表：包含[存储函数](http://www.yiibai.com/mysql/stored-function.html)和[存储过程](http://www.yiibai.com/mysql/stored-procedure.html)的权限。

MySQL利用这些表来控制MySQL数据库服务器的权限。 在实现自己的灵活访问控制系统之前，了解这些表非常重要。

在本教程中，您已经了解了MySQL访问控制系统的工作原理，并探索了MySQL中的授权表。
