前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >MySQL 用户和权限管理

MySQL 用户和权限管理

作者头像
数据库交流
发布2022-04-25 09:13:08
发布2022-04-25 09:13:08
3.2K00
代码可运行
举报
文章被收录于专栏:悦专栏悦专栏
运行总次数:0
代码可运行

站在安全的角度看,不同的业务如果连的是同一个 MySQL 服务,就需要创建不同的用户,并为这些用户配置他们所需要的最小权限。这一节内容就来聊聊 MySQL 的用户和权限管理。

1 用户管理

创建用户,可以使用下面的命令:

代码语言:javascript
代码运行次数:0
复制
CREATE USER 'martin'@'localhost' IDENTIFIED BY 'password';

如果要增加一些资源限制,可使用:

代码语言:javascript
代码运行次数:0
复制
CREATE USER 'martin'@'localhost' WITH MAX_QUERIES_PER_HOUR 500 MAX_UPDATES_PER_HOUR 100;
  • MAX_QUERIES_PER_HOUR:表示每小时多少次查询;
  • MAX_UPDATES_PER_HOUR:表示每小时多少次更新。

删除用户,可执行:

代码语言:javascript
代码运行次数:0
复制
DROP USER 'martin'@'localhost';

2 权限管理

MySQL 常用的权限有这些:

权限

解释

insert

允许写入数据

delete

允许删除数据

select

允许查询数据

update

允许更新数据

create

允许创建库和表

drop

允许删除库、表、视图等。

alter

允许修改表结构

all

除 grant option 和 proxy 权限外,赋予其他所有权限

更多 MySQL 权限可参考官方文档:https://dev.mysql.com/doc/refman/8.0/en/grant.html。

用户授权

代码语言:javascript
代码运行次数:0
复制
GRANT insert,delete,select,update ON db1.* TO 'martin'@'localhost';
代码语言:javascript
代码运行次数:0
复制
表示给 'martin'@'localhost' 赋予 db1 库的增删查改权限。

权限回收

代码语言:javascript
代码运行次数:0
复制
REVOKE INSERT ON db1..* FROM 'martin'@'localhost';

表示回收用户 'martin'@'localhost' 在 db1 库上的 INSERT 权限。

3 角色管理

有时候,某一类用户会有固定的权限(比如业务用户有增删查改权限),这种情况,可以考虑使用 MySQL 的角色,MySQL 角色是多个权限的集合,可通过下面的方法创建角色:

代码语言:javascript
代码运行次数:0
复制
CREATE ROLE 'app_developer';

然后给角色赋权:

代码语言:javascript
代码运行次数:0
复制
GRANT select,update,delete,insert ON app_db.* TO 'app_developer';

使用角色

首先创建一个用户:

代码语言:javascript
代码运行次数:0
复制
create user 'martin_role'@'localhost' identified by 'IHB87Edsa';

然后给用户赋予角色,用来替换 GRANT select,update,delete,insert:

代码语言:javascript
代码运行次数:0
复制
grant 'app_developer' to 'martin_role'@'localhost';

4 密码管理

使用 ALTER USER 语句修改密码

代码语言:javascript
代码运行次数:0
复制
ALTER USER user IDENTIFIED BY 'auth_string';

通过 SET 方式设置密码

代码语言:javascript
代码运行次数:0
复制
SET PASSWORD FOR 'martin'@'localhost' = 'auth_string';

如果没加用户名,则是给当前用户设置密码:

代码语言:javascript
代码运行次数:0
复制
SET PASSWORD = 'auth_string';

今天的内容就到这里,《MySQL 基础知识笔记》系列文章持续更新中,欢迎关注公众号。关注公众号后,也可回复“合集”,获取数据库(MySQL、Redis、MongoDB、ClickHouse)干货合集。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 悦专栏 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 用户管理
  • 2 权限管理
  • 3 角色管理
  • 4 密码管理
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档