mysql服务器通过权限表来控制用户对数据库的访问, 权限表存放在mysql数据库里, 有mysql_install_db脚本初始化. 这些权限表分别有user, db, table_priv, columns_priv和host. 下面分别介绍一下这些表的结构和内容.
MySQL在安装时会自动创建一个名为mysql的数据库,mysql 数据库中存储的都是用户权限表。用户登录以后,MySQL会根据这些权限表的内容为每个用户赋予相应的权限。
user表是 MySQL中最重要的一个权限表,用来记录允许连接到服务器的账号信息。需要注意的是,在user表里启用的所有权限都是全局级的,适用于所有数据库。
- user权限表:记录允许连接到服务器的用户帐号信息,里面的权限是全局级的。
- db权限表:记录各个帐号在各个数据库上的操作权限。
- table_priv权限表:记录数据表级的操作权限。
- columns_priv权限表:记录数据列级的操作权限。
- host权限表:配合db权限表对给定主机上数据库级操作权限作更细致的控制。这个权限表不受GRANT和REVOKE语句的影响。