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下不同的表里(不同的授权信息使用不同表里保存)