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

1 用户管理

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

CREATE USER 'martin'@'localhost' IDENTIFIED BY 'password';

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

CREATE USER 'martin'@'localhost' WITH MAX_QUERIES_PER_HOUR 500 MAX_UPDATES_PER_HOUR 100;

删除用户,可执行:

DROP USER 'martin'@'localhost';

2 权限管理

MySQL 常用的权限有这些:

权限解释

insert

允许写入数据

delete

允许删除数据

select

允许查询数据

update

允许更新数据

create

允许创建库和表

drop

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

alter

允许修改表结构

all

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

更多 MySQL 权限可参考官方文档:。

用户授权

GRANT insert,delete,select,update ON db1.* TO 'martin'@'localhost';

表示给 'martin'@'localhost' 赋予 db1 库的增删查改权限。

权限回收

REVOKE INSERT ON db1..* FROM 'martin'@'localhost';

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

3 角色管理

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

CREATE ROLE 'app_developer';

然后给角色赋权:

GRANT select,update,delete,insert ON app_db.* TO 'app_developer';

使用角色

首先创建一个用户:

create user 'martin_role'@'localhost' identified by 'IHB87Edsa';

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

grant 'app_developer' to 'martin_role'@'localhost';

4 密码管理

使用 ALTER USER 语句修改密码

ALTER USER user IDENTIFIED BY 'auth_string';

通过 SET 方式设置密码

SET PASSWORD FOR 'martin'@'localhost' = 'auth_string';

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

SET PASSWORD = 'auth_string';

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: wxii2p22