用大白话讲清 -> MySQL权限管理

1、权限管理的概念

SQL中DCL语句的增删改查与授权就是权限管理。一般的情况下,开发与测试都不会涉及到这方面的操作。通常是由DBA(数据库管理员)操作的,但是咱们必须要了解。MySQL中有mysql库,其中有张user表,这就是存放用户信息的。

2、管理用户

查询用户
-- 1. 切换到mysql数据库
USE myql;
-- 2. 查询user表
SELECT * FROM USER;
-- 3.Host列表示可以访问的主机,%号就表示可以在任意主机访问
查询用户结果

在这里插入图片描述

添加用户
-- 语法:
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
--其中用户名是登录名,主机名是IP地址,并且@左右千万不能有空格,不然会报错
添加用户结果

用大白话讲清 -> MySQL权限管理_第1张图片

删除用户
-- 语法:
DROP USER '用户名'@'主机名';
删除用户结果

用大白话讲清 -> MySQL权限管理_第2张图片

修改用户密码
-- 修改密码的方法一:
UPDATE USER SET PASSWORD = PASSWORD('新密码') WHERE USER = '用户名';
-- 修改密码的方法二:
SET PASSWORD FOR '用户名'@'主机名' = PASSWORD('新密码');
-- 这两个修改的效果是一样的,只是第一种更符合SQL语法规则,第二种是简化方式,看到这里应该都会了,不演示了
小技巧:我忘了root密码怎么办?
  1. cmd – > net stop mysql 停止mysql服务(需要管理员运行该cmd)
  2. 使用无验证方式启动mysql服务: mysqld --skip-grant-tables
  3. 打开新的cmd窗口,直接输入mysql命令,敲回车。就可以登录成功
  4. use mysql;
  5. update user set password = password(‘你的新密码’) where user = ‘root’;
  6. 关闭两个窗口
  7. 打开任务管理器,手动结束mysqld.exe 的进程
  8. 启动mysql服务
  9. 使用新密码登录

3、管理授权

查询权限
-- 查询权限
SHOW GRANTS FOR '用户名'@'主机名';
查询结果

用大白话讲清 -> MySQL权限管理_第3张图片

授予权限
-- 授予权限
GRANT 权限 ON 数据库名.表名 TO '用户名'@'主机名';
-- 给用户添加所有权限在所有库,所有表上
GRANT ALL ON *.* TO '用户名'@'主机名';

用大白话讲清 -> MySQL权限管理_第4张图片

撤销权限
-- 撤销权限:
REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';
-- 会上面两个,这个撤销权限也是同理,不演示了

你可能感兴趣的:(SQL,mysql,数据库,sql)