MySQL用户管理
MySQL授权系统主要通过五个表(user、db、host、tables_priv和columns_priv)来实现,其中用于访问数据库的各种用户信息都保存在mysql库的user表中。账户权限信息被存储在mysql数据库的user、db、host、tables_priv、columns_priv和procs_priv表中。 user表——该表决定是否允许用户连接到服务器。如果允许连接,权限字段则为该用户的全局权限。 db表——用于决定哪些用户可以从哪些主机访问哪些数据库。包含在db表中的权限适用于这个表标识的数据库。 host表——当您想在db表的范围之内扩展一个条目时,就会用到这个表。举例来说,如果某个db允许通过多个主机访问的话,那么超级用户就可以让db表内将host列为空,然后用必要的主机名填充host表。 tables_priv表——该表与db表相似,不同之处是它用于表而不是数据库。这个表还包含一个其他字段类型,包括timestamp和grantor两个字段,用于存储时间戳和授权方。在本文后面我们会对这个表做进一步的讲解。 columns_priv——该表作用几乎与db和tables_priv表一样,不同之处是它提供的是针对某些表的特定列的权限。 权限表的存取过程是: 1) 先从user表中的host、 user、 password这3个字段中判断连接的IP、用户名