【mysql】—— 用户管理

2024-01-09 16:33:52

目录

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

(二)用户

2.1 查看用户信息

?2.2?创建用户

2.3 删除用户

?2.4?修改用户密码

(三)数据库的权限

3.1?给用户授权?

3.2?回收权限


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

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

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

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

?


(二)用户

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

2.1 查看用户信息

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

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

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

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

?2.2?创建用户

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

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

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

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

?


2.3 删除用户

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

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

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

?

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


?2.4?修改用户密码

?①?自己改自己密码

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


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

?


(三)数据库的权限

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

3.1?给用户授权?

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

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

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

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

?


3.2?回收权限

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

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

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

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


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

文章来源:https://blog.csdn.net/m0_56069910/article/details/135478231
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。