用户授权及撤销
1、 用户授权
默认情况下,只允许数据库管理员root用户从服务器登录。
若从其他客户端登录,必须做用户授权。
授权库 mysql,主要表:
User:记录用户信息(登录名,密码,客户端地址,权限信息)
db:记录授权库的信息
tables_priv:记录授权的表信息
columns_priv:记录授权的字段信息
2、 GRANT配置授权
grant 权限列表 on 库名.表名 to 用户名@“客户端地址”
identified by “登录密码” //是否设置密码
with grant option; //是否有授权权限
权限列表:all 所有权限
Usage 无权限
用revoke撤销权限后用户在,能登陆有show权限,对test库有完全权限
要彻底删除授权用户,要在user表中把该用户删除
Delete from mysql.user where host=”192.168.10.200”
Flush privileges; //刷新授权
权限之间用,间隔
Select,update(name,age,sex),insert,delete
数据库名:*.*所有库所有表
数据库名.* 服务器上的某个库下的所有表
数据库名.表名 某个库里的某个表
用户名:授权时自定义 要有标识性
客户端地址:% 匹配网络中的所有主机
192.168.1.1 某个ip地址
192.168.1.% 某个网段地址
Pc1.tarena.com 主机名
%.tarena.com 区域内的所有主机
(用户主机名来表示客户端地址时,数据库服务器要能够解析主机名)
Identified by “登录密码”
可选项,作用是设置授权用户的密码,若授权时不加此项,使用授权用户登录数据库服务器时没有密码。
With grant option;
可选项作用是授权用户是否有授权的权限,若授权时不加此项,授权用户没有授权权限
3、 查看用户授权
mysql -h192.168.10.253 -u root -p123; //在客户端登录mysql
Select user(); //查看登录用户
Show grants; //登录用户查看自己的权限
管理员可查看其他用户的权限:
Show grants for 用户名@“客户端地址”
在服务器上查看授权信息:
select user,host,passwordfrom mysql.user;
4、 权限撤销
Revoke 权限列表 on 库名.表名 from 用户名@“客户端地址”;
权限列表:all 撤销用户的所有权限
delete,update 撤销用户某些权限
*撤销用户权限时,要对目标对象做过授权才可以撤销权限。
Show grants for root@“192.168.10.200”; //查看授权用户权限
Revoke delete on *.* from root@“192.168.10.200”;
5、 重设用户密码
授权用户修改自己的密码:
Set password=password(“新密码”);
管理员root可重设其他用户的密码:
set password for 用户名@“客户端地址”=password(“新密码”);
数据库管理员 root
[root@localhost ~]# mysqladmin -uroot –p password "新密码"
Enter password: //验证旧密码
忘记密码时:
[root@localhost ~]# service mysql stop //停止服务
[root@localhost ~]# service mysql start --skip-grant-table
//跳过授权表
[root@localhost ~]# mysql //免验证登录
mysql> select user,host,password from mysql.user; //查看用户信息
mysql> update mysql.user set password=password("123")
where host="localhost" //修改密码
mysql> flush privileges; //刷新授权
原文:http://changnan.blog.51cto.com/8825738/1409444