站在安全的角度看,不同的业务如果连的是同一个 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
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。