权限表
MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库中,由mysql_install_db脚本初始化。存储账号全新信息表的主要有:user、db、host、tables_priv、columns_priv和procs_priv。
user表
user表示MySQL中最重要的一个权限表,记录允许连接到服务器的账号信息,里面的权限是全局级的。
- 用户列:user表的用户列包括Host、User、Password,分别表示主机名、用户名和密码。
- 权限列:权限列的字段决定了用户的权限,描述了在全局范围内允许对数据和数据库进行的操作。
- 安全列:安全列只有6个字段,其中两个是ssl相关的,2个是x509相关的,另外两个是授权插件相关的。
- 资源控制列:资源控制列的字段用来限制用户使用的资源,包含4个字段,分别为max_questions(用户每小时允许执行的查询操作次数)、max_updates(用户每小时允许执行的更新操作次数)、max_connections(用户每小时允许执行的连接操作次数)、max_user_connections(用户允许同时建立的连接次数)。一个小时内用户查询或者连接数量超过资源控制限制,用户将被锁定,直到下一个小时,才可以执行在此执行对应的操作。可以使用GRANT语句更新这些字段的值。
db表和host表
db表和host表示MySQL数据中非常重要的权限表。db表中存储了用户对某个数据库的操作权限,决定用户能从哪个主机存取哪个数据库。host表中存储了某个主机对数据库的操作权限,配合db权限表对戈丁主机上数据库级操作权限做更细致的控制。这个权限表不受GRANT和REVOKE语句的影响。
- 用户列:db表用户列有3个字段,分别是Host、User、Db,标识从某个主机连接某个用户对某个数据库的操作权限,这3个字段的组合构成了db表的主键。
- 权限列:db表和host表的权限列大致相同,表中create_routine_priv和alter_routine_priv这两个字段表明用户是否有创建和修改存储过程的权限。
tables_priv表和columns_priv表
tables_priv表用来对表设置操作权限,columns_priv表用来对表的某一列设置权限。
procs_priv表
procs_priv表可以对存储过程和存储函数设置操作权限。
账户管理
登录和退出MySQL服务器
mysql命令的常用参数如下:
- -h 主机