mysql权限配置与mysql用户授权实例

发布时间:2020-09-06编辑:脚本学堂
本文介绍了mysql中权限设置与用户授权的方法,通过修改user表授权,使用grant 命令授权,以及开启mysql安全模式的方法,需要的朋友参考下。

mysqlyonghushouquan/ target=_blank class=infotextkey>mysql用户授权权限设置教程

一,通过修改user表授权
MySQL 权限控制信息存储在表mysql.user中.
mysql.user 表字段如下:
 

复制代码 代码示例:
host:用户通过哪台主机访问;
user: 用户名称
password: 加密密码
*_priv等字段就是对应的权限.

如下记录:
(host, user, select_priv) = (192.168.1.1, zhangsan, Y) 即在客户机192.168.1.1上通过zhangsan账号访问数据库, 具有查询权限.
(host, user, select_priv) = (192.168.1.2, zhangsan, N) 即在客户机192.168.1.2上通过zhangsan账号访问数据库, 没有有查询权限.
host 的值可以是127.0.0.1, localhost 代表本机的IP, 即在mysql服务器上登录mysql. %代表除本机外的其他客户机的IP.
(host, user, select_priv) = (%, zhangsan, Y) 即在任何客户机上通过zhangsan账号登录具有查询权限.

向user表中插入数据时, password需要用PASSWORD函数加密, 如:
 

复制代码 代码示例:
INSERT INTO user (Host,User,Password) VALUES ('%','root', PASSWORD('123456'));

插入完成后执行FLUSH PRIVILEGES 刷新权限。(www.jb200.com 脚本学堂)

二,使用grant 命令授权
语法格式为 grant 权限 on 数据库对象名.表明 to 用户;
 

如grant select on testdb.* to zhangsan@'%'  张三通过任何客户机登录数据库可以对testdb下的任何表执行select操作.
grant all on *.* to zhangsan@localhost; zhangsan在本机登录可以管理 MySQL 中的所有数据库

三,解决远程客户端无权限登录mysql服务器的问题
刚安装完成mysql后, 通过客户端连接mysql可能会出现这样的问题:
Access denied for user 'root'@'localhost'
这就是没有授权给客户机登录, 解决办法可以参考上面的授权.
 

grant all on *.* to zhangsan@localhost;
或INSERT INTO user (Host,User,Password) VALUES ('%','root', PASSWORD('123456'));

使用insert into user比较繁琐, 每个权限字段都要赋值, 建议使用grant命令.

四,如果root也没有权限远程连接而又不能直接操作服务器,可以进入mysql的安全模式进行授权。
开启mysql安全模式步骤如下:
1,停止mysql服务:
 

复制代码 代码示例:
service mysqld stop

2,执行:
 

复制代码 代码示例:
mysqld_safe --user=mysql --skip-grant-tables --skip-networking

3,执行mysql命令, 看是不是进入mysql啦!
进入后参考以下配置权限即可,配置完成后退出mysql,然后重启mysql服务:
 

复制代码 代码示例:
service mysqld restart

以上介绍了mysql中权限配置的方法,希望对大家有所帮助。