基本语法:
drop user 用户名@host;
示例:
mysql> drop user 'user1'@'%'; Query OK, 0 rows affected (0.01 sec) mysql> select user, host from mysql.user where user = 'user1'; Empty set (0.00 sec)
1.3、修改用户密码
需要使用函数对密码进行加密password()
方式一:使用专门的修改密码指令
基本语法:
set password for 用户 = password(明文密码); set password for 'user1'@'%' = password(654321); -- mysql5.7后续版本,8.0可用 alter user 'user1'@'%' identified by '654321';
方式二:使用更新语法
基本语法:
update mysql.user set password = password(明文密码) where user = '' and host = ''; update mysql.user set password = password('123456') where user = 'user1' and host = '%'; -- 8.0报错 update mysql.user set authentication_string = password('123456') where user = 'user1' and host = '%';
2、权限管理
分为三类:
- 数据权限:增删改查 select update delete insert
- 结构权限:结构操作(表操作) create drop
- 管理权限:权限管理 create user、grant、revoke, 管理员
2.1、授予权限 grant
将权限分配给指定用户
基本语法:
grant 权限列表 on 数据库/*.表名/* to 用户
- 权限列表 使用逗号间隔,all privileges 代表全部权限
- 所有数据库
*.*
- 某个数据库:
数据库.*
- 单表:
数据库.表名
-- 分配权限 不需要刷新,马上生效 grant select on mydatabase.my_student to 'user1'@'%';
2.2、取消权限 revoke
基本语法:
revoke 权限列表 /all privileges on 数据库/*.表/* from 用户
-- 回收权限,不需要刷新,马上生效 revoke all privileges on mydatabase.my_student from 'user1'@'%';
2.3、刷新权限 flush
将操作的具体内容同步到对应的表中
基本语法:
flush privileges;
3、密码丢失的解决方案
如果忘记root用户的密码
# 停止服务 mysql.server stop; # 停止不了可以直接杀死进程 ps aux|grep mysql kill <pid> # 重新启动服务,跳过权限 mysqld --skip-grant-tables # 直接无用户名登录 mysql
非常危险,任何客户端不需要任何用户信息都可以直接登录,而且是root权限
修改root密码:
alter user 'root'@'localhost' identified by '123456';
修改完后,关闭mysql服务器,重启
到此这篇关于MySQL数据库用户权限管理的文章就介绍到这了,更多相关MySQL 权限管理内容请搜索
更多相关Mysql内容来自木庄网络博客
标签:Mysql
相关阅读 >>
更多相关阅读请进入《mysql》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。