【mysql】—— 用户管理
2024-01-09 16:33:52
目录
(一)为什么要有用户管理?
如果我们只能使用root用户,这样存在安全隐患:
- 配置不当或者使用默认设置的MySQL服务器可能会受到各种攻击,包括SQL注入和拒绝服务攻击等;
- 如果攻击者成功地访问了root账户,他们就能够完全控制数据库,并且可以对数据进行修改、删除或窃取等操作;
- 此外,将root账户用于所有操作也可能导致权限混乱和错误。
因此,这时,就需要使用MySQL的用户管理。建议创建一个专门的用户账户来管理MySQL数据库,该账户仅具有必要的最低权限来执行所需的任务,并且需要在必要时使用密码和SSL等安全措施来保护数据库。使用这种方法可以最大程度地减小安全风险,并且能够更好地管理数据库。?
?
(二)用户
MySQL提供了一套全面的用户管理系统,允许您创建、修改和删除用户账户,并分配权限以控制对数据库和表的访问。
2.1 查看用户信息
- MySQL中的用户,都存储在系统数据库mysql的user表中(即我们最初进入时可以发现数据库中有张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 ... -- 表示赋予该用户在该对象上的所有权限
- *.* : 代表本系统中的所有数据库的所有对象(表,视图,存储过程等)
- 库.* : 表示某个数据库中的所有数据对象(表,视图,存储过程等)
- 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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!