【mysql】—— 用户管理

目录

(一)为什么要有用户管理?

(二)用户

2.1 查看用户信息

 2.2 创建用户

2.3 删除用户

 2.4 修改用户密码

(三)数据库的权限

3.1 给用户授权 

3.2 回收权限


(一)为什么要有用户管理?

如果我们只能使用root用户,这样存在安全隐患:

  1. 配置不当或者使用默认设置的MySQL服务器可能会受到各种攻击,包括SQL注入和拒绝服务攻击等;
  2. 如果攻击者成功地访问了root账户,他们就能够完全控制数据库,并且可以对数据进行修改、删除或窃取等操作;
  3. 此外,将root账户用于所有操作也可能导致权限混乱和错误。

因此,这时,就需要使用MySQL的用户管理。建议创建一个专门的用户账户来管理MySQL数据库,该账户仅具有必要的最低权限来执行所需的任务,并且需要在必要时使用密码和SSL等安全措施来保护数据库。使用这种方法可以最大程度地减小安全风险,并且能够更好地管理数据库。 

【mysql】—— 用户管理_第1张图片

 


(二)用户

MySQL提供了一套全面的用户管理系统,允许您创建、修改和删除用户账户,并分配权限以控制对数据库和表的访问。

2.1 查看用户信息

  • MySQL中的用户,都存储在系统数据库mysqluser表中(即我们最初进入时可以发现数据库中有张mysql):

【mysql】—— 用户管理_第2张图片

  • 此时我们再去对user表进行简单查看(还可以通过desc user初步查看一下表结构):

【mysql】—— 用户管理_第3张图片

  •  紧接着就去查看当前表中的用户信息:

【mysql】—— 用户管理_第4张图片

字段解释:
  • host表示这个用户可以从哪个主机登陆,如果是localhost,表示只能从本机登陆
  • user用户名
  • authentication_string用户密码通过password函数加密后的
  • *_priv用户拥有的权限

 2.2 创建用户

当需要创建新用户时,可以使用 create user 语句

  • 语法:
create user '用户名'@'登陆主机/ip' identified by '密码';

【mysql】—— 用户管理_第5张图片

  • 此时,我们就可以用用户名 “zp” 登录MySQL了。具体如下:

【mysql】—— 用户管理_第6张图片

  •  再去验证是否可以在远端登录,此时我在windows下进行登录操作:

【mysql】—— 用户管理_第7张图片

 


2.3 删除用户

要删除用户,可以使用drop user 语句:

  • 语法:
drop user '用户名'@'主机名'
  • 此时删除上述创建的账户: 

【mysql】—— 用户管理_第8张图片

[注意]:直接给个用户名,不能删除,它默认是%,表示所有地方可以登陆的用户

 

  •  紧接着此时当我们想远程登录有没有办法呢?当然是有的,接下来便创建一个可以远程登录的用户:

【mysql】—— 用户管理_第9张图片


 2.4 修改用户密码

 ① 自己改自己密码

  • 语法:
set password=password('新的密码');
root用户修改指定用户的密码
  • 语法:
set password for '用户名'@'主机名'=password('新的密码');

【mysql】—— 用户管理_第10张图片


除了上诉两种方法之外,大家还可以通过 update指令来进行修改密码操作 

 

【mysql】—— 用户管理_第11张图片


(三)数据库的权限

MySQL数据库提供的权限列表:

【mysql】—— 用户管理_第12张图片

3.1 给用户授权 

数据库权限是指给予用户在数据库中执行特定操作的权限。在MySQL中,可以通过grant revoke语句来控制用户访问和管理数据库的权限。

【mysql】—— 用户管理_第13张图片

  • 语法:
grant 权限列表 on 库.对象名 to '用户名'@'登陆位置' [identified by '密码'] 
说明:
权限列表,多个权限用逗号分开
  • grant select on ...
  • grant select, delete, create on ....
  • grant all [privileges] on ... -- 表示赋予该用户在该对象上的所有权限
  1. *.* : 代表本系统中的所有数据库的所有对象(表,视图,存储过程等)
  2. 库.* : 表示某个数据库中的所有数据对象(表,视图,存储过程等)
  3. identified by可选。 如果用户存在,赋予权限的同时修改密码,如果该用户不存在,就是创建用户

【mysql】—— 用户管理_第14张图片

  •  此时我们想要做的就是给 “lisi” 用户提权,使其可以看到我们创建的数据库:

【mysql】—— 用户管理_第15张图片

  • 接下来,我们还可以查看给用户赋予的权限有哪些:

 


3.2 回收权限

在MySQL中,可以通过REVOKE语句收回用户已经被授权的权限.

  • 语法:
revoke 权限列表 on 库.对象名 from '用户名'@'登陆位置';
  • 回收 lisi 用户rootDB数据库的插入权限: 

【mysql】—— 用户管理_第16张图片

  • 回收 lisi 用户rootDB数据库的删除权限:  

【mysql】—— 用户管理_第17张图片

  • 回收lisi 用户rootDB数据库的所有权限  :

【mysql】—— 用户管理_第18张图片


 以上便是本文关于MySQL用户管理的全部内容了!!感谢大家的观看和支持!!!

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