添加数据库用户
1.MySQL的权限表
MySQL通过权限表来控制用户对数据库的访问,MySQL数据库在安装时会自动安装多个数据库。MySQL权限表存放在名称为MySQL的数据库中。常用的权限表有user、db、host、table_priv、columns_priv和procs_priv.
(1)user权限表。user是MySQL中最重要的一个权限表,user列主要分为4个部分:用户列、权限列、安全列和资源控制列。
①用户列:用户登录时通过表中的Host、User和Password列判断连接的IP、用户名称和密码是否存在于表中来通过身份验证或拒绝连接。
②权限列:user表中包含多个以“_priv”结尾的字段,这些字段决定了该用户的权限,既包括查询权限、插入权限、更新权限、删除权限等普通权限,也包括关闭服务器和加载用户等高级管理权限。
③安全列:ssl(加密)、x509(标识用户)开头的字段,以及 plugin和 authentication_string 字段(验证用户身份、授权的插件)。
④资源控制列:max(最大允许次数,0表示无限制)开头的字段。
max_questions:表示每小时允许执行查询数据库的次数。
max_updates:表示每小时允许执行更新数据库的次数。
max_connections:表示每小时允许执行连接数据库的次数。
max_user_conntions:表示单个用户同时连接数据库的次数。
(2)db、host权限表。db权限表存储用户在各个数据库上的操作权限,决定哪些用户可以从哪些主机访问哪些数据库。
host权限表是db权限表的扩展,配合db权限表对给定主机上数据库级操作权限做更细致的控制。host权限表很少使用,只有在db表的范围内扩展一个条目时才会用到。
(3)table_priv权限表。记录数据表级别的操作权限。table_priv权限表与db权限表相似,不同之处是它用于数据表而不是数据库。
(4)columns_priv权限表。记录数据字段级别的操作权限。columns_priv 权限表的作用与table_priv权限表类似,不同之处是它针对某些表的特定字段的权限。
(5)procs_priv权限表。该权限表存储用户在存储过程和函数上的操作权限。
2.添加用户
新安装的MySQL中只有一个名称为root的用户。这个用户是安装服务器时由系统创建并赋予了MySQL的所有权限。在对MySQL的实际操作中,通常需要创建不同层次要求的用户来确保数据的安全访问。添加用户可以通过 CREATE USER、INSERT和GRANT语句来实现。
(1)CREATE USER 语句的语法格式为:
CREATE USER<'用户名'>@<'主机'>[IDENTIFIED BY[PASSWORD][<密码'>]];
(2)INSERT语句的语法格式为:
INSERT INTO mysql.user (User, Host, Password)Values(<'用户名'>,<'主机'>,PASSWORD(<'密码'>));
授予、回收数据库用户权限
1、授予用户权限
GRANT语句不仅是授权语句,还可以达到添加新用户或修改用户密码的作用。GRANT语句的语法格式为:
GRANT<权限名称>[(字段列表)]ON<对象名>TO<'用户名'>@<'主机>[IDENTIFIED BY[PASSWORD]<'新密码'>][WITH GRANT OPTION];
2、查看用户权限
(1)使用SHOW GRANTS语句查看授权信息,其语法格式为:
SHOW GRANTS FOR<用户名'>@<'主机>
(2)使用SELECT 语句查看 mysql.user表中用户的全局权限,其语法格式为:
SELECT<权限字段>FROM mysql.user
[WHERE User=<'用户名'>AND Host=<'主机'>];
3、回收用户权限
使用REVOKE语句回收用户权限,其语法格式为:
REVOKE<权限名称>[(字段列表)]ON<对象名>FROM<'用户名'>@<主机>;
本文详细介绍了MySQL中的权限管理系统,包括user、db、host、table_priv、columns_priv和procs_priv等权限表的功能。还讲述了如何使用CREATE USER、INSERT和GRANT语句添加用户,并通过GRANT和REVOKE语句管理用户权限。
2811

被折叠的 条评论
为什么被折叠?



