day4-用户授权

重置数据库员密码

mysqladmin -hlocalhost -uroot -p password ""

恢复数据库管理员密码

[root@localhost ~]# /etc/init.d/mysqld stop

[root@localhost ~]# /etc/init.d/mysqld start --skip-grant-table

mysql>update mysql.user set password=password("新密码") where host ="localhost"

mysql>flush privileges

若进不去mysql时

在配置文件里加skip-grant-table即可,然后重启服务,进入mysql修改密码

重启服务

mysql数据库在不做授权的情况下,只允许数据库管理员从数据库服务器本机登录。

用户授权——默认只有数据库管理员从数据库服务器本机登录才有授权权限

mysql>grant    权限列表 on     数据库名    to    用户名@"客户端地址"

mysql>grant    权限列表 on     数据库名    to    用户名@"客户端地址" identified by "密码" with grant option

identified by "密码"——设置授权密码,若不设置,则不需要密码

with grant option——代表有授权权限

权限列表——表示

usage    无权限——无意义

all    所有权限

insert,update,delete,selete( 字段1,字段2)

数据库名——表示

*.*——所有库所有表——数据库名.表名

用户名——表示

授权时自定义,要有标识性,用户名存储在mysql库的user表里

客户端地址的表示方式

%    所有地址

192.168.100.%        该网段

192.168.100.100    该IP

www.test.com    主机名

%.test.com    区域

域名和主机很少用

identified by "密码"

    设置授权用户的密码——可选,若不指定授权用户登录时没密码

with grant option;

    可选——让授权用户有授权权限,若不设置授权用户无授权权限

mysql> show grants;登录数据库服务器的用户查看自己的权限

mysql> select user();显示登录用户是谁

服务器端使用    mysql库    存储授权信息

user表    ——查看授权用户

mysql>select user,host from    mysql,user;

db表——记录授权用户对库的权限信息

mysql>select user,host from    mysql,db;

tables_priv——记录授权用户对表的权限信息

columns_priv——记录授权用户对表中某个字段的权限信息

权限撤销——只有对数据库做过授权才能撤销

revoke    权限列表 on    数据库    from    用户名@"客户端地址";

注意:all只包括库和表的权限,不包括授权权限

若撤销授权权限——revoke grant option on 数据库 from 用户名@地址

授权用户登录数据库服务后,修改自己的登录密码

SET PASSWORD=PASSWORD(“新密码”)

数据库管理员重置授权用户的登录密码

SET PASSWORD FOR 用户名@“客户端IP”=PASSWORD(“新密码”)

show grants;

show grants for 用户名@"IP "

select user();

授权信息保存在mysql下不同的表里(不同的授权信息使用不同表里保存)

原文地址:https://www.cnblogs.com/fina/p/5842887.html