MySQL数据库的用户权限配置,对远程或本地MySQL数据库用户授予权限或撤销权限。
MySQL授权库和表信息:
授权记录用户和密码授权等相关信息的数据库为:mysql
其相关四个数据表存储的信息如下:
user表,储存授权用户的访问权限。
db表,储存授权用户对数据库的访问权限。
tables_priv表,储存授权用户对表的访问权限。
columns_priv表,存储授权用户对字段的访问权限。
查询权限:
show grants for root@'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('新密码');
发表评论