MySQL数据库(七)—— 用户管理和权限管理

时间:2022-04-24 04:26:01

一、管理用户

1.查询用户

第一步:切换到MySQL数据库

use mysql;

第二步:查询user表 

select * from user;

MySQL数据库(七)—— 用户管理和权限管理

两条记录都是root用户 ,其中第一条记录表示本机访问,第二条记录是远程访问。

注意:通配符%表示可以在任意主机登录查询数据库

2.新增用户

语法:create user ‘用户名‘@‘主机名‘ identified by ‘密码‘;

3.删除用户

语法:drop user ‘用户名‘@‘主机名‘

4.修改用户密码

语法:update user set password = password(‘新密码‘) where user = ‘用户名‘

语法:set password for ‘用户名‘@‘主机名‘ = password(‘主机名‘)

MySQL中忘记root用户密码

(1) cmd 右键以管理员身份运行

(2) net stop mysql              -- 停止MySQL服务

(3) 使用无验证方式启动MySQL服务:mysqld --skip-grant-tables

(4) 再打开一个新的窗口,输入MySQL即可进入

MySQL数据库(七)—— 用户管理和权限管理

 

 (5) 修改密码的SQL语句

use mysql;

update user set password = password(‘新密码‘) where user = ‘root‘;

(6) 关掉所有cmd窗口,在窗口下面,打开任务管理器。

MySQL数据库(七)—— 用户管理和权限管理

 

 (7) 在进程栏,手动结束mysqld.exe进程

MySQL数据库(七)—— 用户管理和权限管理

 

 MySQL数据库(七)—— 用户管理和权限管理

 

 (8)启动MySQL服务

cmd右键以管理员身份运行

net start mysql

(9)使用MySQL用户名和密码登录 mysql -uroot -proot登录

二、权限管理

1. 查询权限

语法:show grants for ‘用户名‘@‘主机名‘;

MySQL数据库(七)—— 用户管理和权限管理

usage 表示只有登录权限。

MySQL数据库(七)—— 用户管理和权限管理

 

 root用户有所有权限。

2. 授予权限

语法:grant 权限列表 on 数据库名.表名 to ‘用户名‘@‘主机名‘;

以上赋予权限是细粒度的。

如果给所有用户赋予权限,在所有数据库所有表上,使用通配符:grant all on *.* to ‘用户名‘@‘主机名‘;

3. 撤销权限

语法::grant 权限列表 on 数据库名.表名 from ‘用户名‘@‘主机名‘;