MySQL数据库的用户权限配置,对远程或本地MySQL数据库用户授予权限或撤销权限。

MySQL授权库和表信息:

授权记录用户和密码授权等相关信息的数据库为:mysql

其相关四个数据表存储的信息如下:

user表,储存授权用户的访问权限。

db表,储存授权用户对数据库的访问权限。

tables_priv表,储存授权用户对表的访问权限。

columns_priv表,存储授权用户对字段的访问权限。


查询权限:

show grants for [email protected]'localhost';



授予权限:

基本用法:

grant 授予权限范围 on 数据库名.数据表名 to 用户@"授权IP" identified by "设定密码" with grant option;

以上命令各项参数含义如下:

数据库表全部授权可输入‘*.*’

用户可直接使用此命令添加。

授权IP若需要所有主机则可写'%',也可写主机名,也可以写本地用户‘localhost’

with grant option,此命令表示远程登陆的主机也有授权权限

权限授予范围可写:

all 下列四个全部权限,需要指定使用逗号‘,’隔开。

select 查看权限

update 修改、更新权限,可指定字段,update(字段1,字段2)

insert 添加、插入权限

delete 删除权限


密码报错则修改密码策略:

set global validate_password_policy=0;
set global validate_password_length=6;


授权完成,授权IP远程登陆:

mysql -h远程数据库IP -u用户 -p密码

查看远程主机名:

select @@hostname;

查看当前登陆用户: 

select user();

显示访问权限:

show grants;



撤销权限:

关键命令:revoke

注意,此命令仅能够撤销权限,但不能删除用户,删除用户需要直接删除数据表中的记录值。

删除用户使用以下命令:

mysql> drop user 用户@'授权IP';

查询存在已被授权用户的权限列表:

mysql> select user,host from mysql.user;

从上一条命令中查询到的列表中查询用户和访问IP的数据库具体权限信息:

mysql> show grants for 用户@'授权IP';

撤销其他用户授权的权限:

mysql> revoke grant option on 数据库.数据表 from 用户@'授权IP';

撤销其他相关增删改查的权限:

mysql> revoke 撤销授权范围 on *.* from 用户@'授权IP';

撤销范围参考值:

all                 下列四个全部权限,需要指定使用逗号‘,’隔开。

select           查看权限

update         修改、更新权限,可指定字段,update(字段1,字段2)

insert           添加、插入权限

delete          删除权限


修改登陆密码:

远程登陆用户修改命令:

set password=password('新密码');

数据库本地管理员修改用户密码:

set password for 用户@'授权IP'=password('新密码');


发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。