11_MySQL数据库_用户管理

此专栏所有章节快速导航

01_MySQL数据库_CentOS7安装MySQL
02_MySQL数据库_数据库基础知识
03_MySQL数据库_库的操作
04_MySQL数据库_表的操作
05_MySQL数据库_数据类型
06_MySQL数据库_表的约束
07_MySQL数据库_增删查改
08_MySQL数据库_复合查询
09_MySQL数据库_索引
10_MySQL数据库_事务管理
11_MySQL数据库_用户管理
12_MySQL数据库_CentOS7下C-C++链接MySQL

文章目录

  • 此专栏所有章节快速导航
  • 一. 什么是用户管理
  • 二. 用户信息表
  • 三. 用户管理的操作
    • 3.1 创建用户
    • 3.2 授予权限
    • 3.3 回收权限
    • 3.4 修改用户密码
      • 3.4.1 修改自己的
      • 3.4.2 root修改别人的
      • 3.4.3 删除用户

一. 什么是用户管理

MySQL一开始只有一个用户就是root这个超级用户,一般使用数据库很少直接用root用户的,因为root权限太大了,误操作会发生严重的后果。我们可以给使用数据库的程序员创建用户,然后授予这个用户某个数据库,或者表的操作权限,这些就是用户管理。用户的管理包括,创建用户,授予权限,回收权限,删除用户等操作。

二. 用户信息表

如下图所示,我们的数据库默认会有一张叫mysql的数据库,进去里面有一张user表,这张表就是保存所有用户的信息的。

11_MySQL数据库_用户管理_第1张图片

# 下面是这个user表的部分常用的字段属性
# 具体的有什么字段大家可以自己查一下,命令为select * from user\G
                  Host: localhost  # 表示这个用户可以从哪个主机登录,localhost表示只能从本机登录,%表示所有主机都行
                  User: root  # 用户名
           Select_priv: Y  # select权限,Y表示有这个权限,N表示没有
 authentication_string: *D9ACA1F141E7AC9D4A72AB51C9977912E8567BAA  # 加密后的密码

user也是一张表,可以像操作其他表一样操作它,前提是用户得有对应的权限

11_MySQL数据库_用户管理_第2张图片

三. 用户管理的操作

3.1 创建用户

# 语法:create user '用户名'@'登陆主机/ip' identified by '密码';
create user 'lihua'@'%' identified by 'Ji3#.10086';  # 这里的%表示所有主机都可以登录,前提是遵循计算机网络知识

11_MySQL数据库_用户管理_第3张图片

3.2 授予权限

刚创建的用户没有任何权限。需要给用户授权,修改完权限后可能需要执行flush privileges;命令刷新数据,如果还不行就退出用户重新登录。

# 语法:grant 权限列表 on 库.表名 to '用户名'@'登陆位置';
grant select, insert on db1.student to 'lihua'@'%';  # 授予lihua对db1数据库中student表的查询、插入权限
grant select, insert on db1.% to 'lihua'@'%';  # 授予lihua对db1数据库中student表的查询、插入权限、
grant all on *.* to 'lihua'@'%';  # 授予lihua当前系统下所有数据库和表的所有权限(这里仅仅是演示,实际操作中慎用)

3.3 回收权限

# 语法:revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';
# 其实用法跟grant差不多,就是把grant换成revoke,to换成from
revoke insert on db1.student from 'lihua'@'%';  # 回收lihua对db1数据库student表的插入功能

3.4 修改用户密码

3.4.1 修改自己的

# 语法:set password=password('新的密码');
set password=password('Ji3#.100866');  # password()是一个内置函数,可以将我们的密码加密成一长串固定长度的字符串

3.4.2 root修改别人的

# 方法一
# 语法:set password for '用户名'@'主机名'=password('新的密码');
set password for 'lihua'@'%'=password('Ji3#.1008666');

# 方法二:直接修改表中的信息
update user set authentication_string=password('Ji3#.1008777') where User='lihua';

3.4.3 删除用户

# 语法:drop user '用户名'@'主机名
drop user 'lihua'@'%';

3.4.3 删除用户

# 语法:drop user '用户名'@'主机名
drop user 'lihua'@'%';

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