重置数据库管理员本地密码(知道原先密码)
# mysqladmin -hlocalhost -uroot -p password
#ENTER 旧密码
恢复数据库登录密码
/etc/my.cnf
[mysqld]
skip_grant_tables #跳过授权表运行
#validate_password_length=6
#validate_password_policy=0
重启服务
#mysql #正常方式连接数据库
>update mysql.user set authentication_string=
password(“密码”) where name=’root’ and
host=’localhost’;
>flush privileges; #刷新权限
/etc/mycnf 注释掉skip_grant_tables
重启服务
数据库授权相关操作
查看当前登录用户
>select user();
查看主机名(默认localhost)
>select @@hostname; #sql命令中调用变量用@@
当前登录用户已有的权限
>show grants;
查看授权用户
> select user,host from mysql.user;
删除授权用户
>drop user 用户名@"客户端地址";
查看授权用户的权限
>show grants for 用户名@"客户端地址";
权限撤销
>revoke 权限列表 on 数据库名.表名 from 用户名@"客户端地址";
通过对mysql下的表进行update操作撤销权限,最后要flush privileges;刷新权限
管理员修改授权用户登录密码
>set password for 用户名@""=password("密码");
授权用户修改自己的密码
>set password=password('密码');
授权数据库
>grant 权限列表 on 数据库名.表名 to 用户@客户端地址
identified by ‘密码’ with grant option(是否有授权权限)
权限列表
all 所有
select 查看
insert 插入
update 修改
delete 删除
select,update(字段1..字段N)
#可百度查询更多的权限介绍
客户端地址
% 所有主机
192.168.4.% 一个网段
192.168.4.1 一个ip
总结
1.授权用户信息在mysql的不同表下,以下是必须了解的表:
user表:授权用户的访问权限
db表:授权用户对已有数据库的访问权限
tables_priv:授权用户对表的访问权限
columns_priv:授权用户对字段的访问权限
2.授权用户授权除了有with grant option,还要对mysql.user表有insert权限
3.数据库管理员拥有所有权
4.授权用户授权时权限要小于等于自身的权限
5.权限撤销前提是之前有对目标进行定义,不然会报错no such defined
原文地址:http://blog.51cto.com/13476315/2073165