用户授权及撤销

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;                           //刷新授权