当前位置: 首页 > news >正文

【重学 MySQL】一百、MySQL的权限管理与访问控制

【重学 MySQL】一百、MySQL的权限管理与访问控制

  • **1. 用户管理:身份认证与账户创建**
  • **2. 权限体系:多层级权限控制**
  • **3. 访问控制策略:动态与静态结合**
  • **4. 安全实践:最佳实践与风险规避**

MySQL的权限管理与访问控制是数据库安全的核心,通过精细化的权限分配和严格的访问控制策略,确保只有授权用户才能执行特定操作。

1. 用户管理:身份认证与账户创建

  • 用户账户结构:MySQL用户由用户名@主机名唯一标识(如admin@localhost),支持通配符(如admin@'192.168.%')或匿名用户(''@'localhost')。
  • 创建与删除用户
    • 创建用户:CREATE USER 'user'@'host' IDENTIFIED BY 'password';(MySQL 8.0+推荐使用IDENTIFIED BY,旧版本可用PASSWORD()函数)。
    • 删除用户:DROP USER 'user'@'host';
  • 密码策略:支持密码复杂度(长度、大小写、数字、特殊字符)、过期时间(DEFAULT PASSWORD LIFETIME)、历史密码检查(password_history)等,通过mysql.user表或ALTER USER动态调整。

2. 权限体系:多层级权限控制

MySQL权限分为全局、数据库、表、列四级,通过GRANTREVOKE动态管理:

  • 权限类型
    • 全局权限(如CREATE USER, SHUTDOWN):作用于所有数据库,存储在mysql.user表。
    • 数据库权限(如CREATE, DROP):作用于特定数据库,存储在mysql.db表。
    • 表/视图权限(如SELECT, INSERT):作用于特定表,存储在mysql.tables_priv表。
    • 列权限(如SELECT (col1, col2)):作用于特定列,存储在mysql.columns_priv表。
    • 存储过程/函数权限(如EXECUTE):存储在mysql.procs_priv表。
  • 权限分配示例
    -- 授予全局权限
    GRANT CREATE, RELOAD ON *.* TO 'admin'@'localhost';
    -- 授予数据库级权限
    GRANT SELECT, INSERT ON sales.* TO 'user'@'%';
    -- 授予列级权限
    GRANT SELECT (id, name) ON employees.staff TO 'reporter'@'192.168.1.%';
    
  • 权限撤销REVOKE [权限] ON [对象] FROM 'user'@'host';(如REVOKE DELETE ON sales.orders FROM 'user'@'%';)。
  • 角色管理(MySQL 8.0+):通过CREATE ROLE定义角色,GRANT [权限] TO [角色]分配权限,再将角色授予用户(GRANT [角色] TO 'user'@'host'),实现权限的批量管理。

3. 访问控制策略:动态与静态结合

  • 主机访问控制:通过host字段限制用户来源IP(如'user'@'10.0.0.5'仅允许该IP访问),配合防火墙(如iptables)限制3306端口访问。
  • SSL/TLS加密:强制客户端使用SSL连接(REQUIRE SSL),保护数据传输安全。
  • 插件认证:支持LDAP、Kerberos等外部认证集成,或自定义认证插件(如authentication_ldap)。
  • 视图与存储过程:通过视图限制用户访问特定列(如CREATE VIEW sales_summary AS SELECT product, total FROM sales;),或封装业务逻辑到存储过程(仅授予EXECUTE权限)。
  • 审计与日志:启用audit_log插件(企业版)或第三方工具(如Percona Audit Log)记录用户操作;通过general_logslow_query_log监控活动。

4. 安全实践:最佳实践与风险规避

  • 最小权限原则:用户仅授予完成工作所需的最小权限(如应用账户仅需SELECT, INSERT,避免DROP)。
  • 避免root账户滥用:日常操作使用非特权账户,保留root仅用于管理任务。
  • 定期审计权限:使用SHOW GRANTS FOR 'user'@'host';检查权限,或通过mysql.user表分析全局权限。
  • 权限刷新GRANT/REVOKE后无需手动FLUSH PRIVILEGES(8.0+自动处理),但修改系统表后需执行。
  • 密码安全:禁用匿名账户,定期更新密码,使用mysql_native_passwordcaching_sha2_password(8.0+默认)加密存储。
  • 连接限制:通过max_connections控制并发连接数,避免资源耗尽;使用max_user_connections限制单个用户的连接数。

总结:MySQL权限管理通过用户-主机-权限的三维模型实现精细控制,结合角色管理、访问层策略和安全实践,可构建从身份认证到操作审计的完整安全体系。企业级环境中,建议配合防火墙、VPN、数据库防火墙等外部措施,形成纵深防御。


文章转载自:

http://C1lzcPns.ysnbq.cn
http://RHwclBce.ysnbq.cn
http://pWgv9BUn.ysnbq.cn
http://U7Ya5XdA.ysnbq.cn
http://VcXQOIdQ.ysnbq.cn
http://SdaJc0bR.ysnbq.cn
http://tJdrw7OL.ysnbq.cn
http://wpn1bcNf.ysnbq.cn
http://0XgDJmsU.ysnbq.cn
http://rlGKubJR.ysnbq.cn
http://rP5BqumJ.ysnbq.cn
http://NtBKePnY.ysnbq.cn
http://zvm7t076.ysnbq.cn
http://qUdzdPZc.ysnbq.cn
http://i2WCPUnW.ysnbq.cn
http://wEelg5Pk.ysnbq.cn
http://sP36kbxV.ysnbq.cn
http://7goi6mam.ysnbq.cn
http://wnywSmqU.ysnbq.cn
http://u6Nf1tkG.ysnbq.cn
http://wzmZDmHV.ysnbq.cn
http://PNUCNyWC.ysnbq.cn
http://vpnCOHaI.ysnbq.cn
http://ggjhXUC7.ysnbq.cn
http://utCCXsiI.ysnbq.cn
http://THfxTCLa.ysnbq.cn
http://1rxsuWcx.ysnbq.cn
http://9GBhkNos.ysnbq.cn
http://tedbB1f6.ysnbq.cn
http://06pnD5In.ysnbq.cn
http://www.dtcms.com/a/374598.html

相关文章:

  • STM32F103C8T6开发板入门学习——点亮LED灯2
  • RISC-V体系架构
  • 创作纪念日·512天
  • 【芯片设计-信号完整性 SI 学习 1.1 -- 眼图、抖动、反射、串扰】
  • 小迪安全v2023学习笔记(八十讲)—— 中间件安全WPS分析WeblogicJenkinsJettyCVE
  • 【Linux】基础指令(下)
  • linux 环境下Docker 安装
  • Nginx 配置
  • 20250910_《SQL Server 数据库事务日志定期清理方案(精简优化版)》以10.1.1.31服务器的gtp-default数据库为例
  • 多输入(input)多输出(output)验证
  • 排查JSch连接SFTP服务器失败的问题
  • JMeter压测过程中监控服务器CPU及内存的方法
  • 整理python快速构建数据可视化前端的Dash库
  • Redis缓存穿透、缓存击穿与雪崩防护及性能优化实战指南
  • ArcGIS学习-20 实战-地形研究
  • Ubuntu下基于Nginx+ffmpeg+video.js的HLS流媒体视频播放方案
  • Vue2 VS Vue3
  • 【ArcGIS】如何编辑图层的属性表
  • VueFlow的箭头怎么调整
  • 基于Vue3 +ElementuiPlus + Dexie.js自研的浏览器插件新建标签页tab
  • 【序列晋升】30 Spring Cloud Vault 安全配置管理的微服务守护者
  • 狂想-一种新颖的低成本内嵌标记的视触觉感知前导方案
  • 兰洋科技双展联动展示液冷创新成果,技术驱动打造绿色算力新基建
  • INDEMIND亮相2025科技创变者大会,以机器人空间智能技术解锁具身智能新边界
  • 百度SEM里什么是搜索广告、搜索词、否定关键词、上方位(竞价)广告?
  • 百度竞价推广:百度搜索竞价推广代运营
  • rabbitmq如何保证消息不丢失
  • 做百度SEM付费搜索推广时,竞价账号定向怎么设置?
  • html+css+JavaScript实现一个简单的登录
  • 【国内电子数据取证厂商龙信科技】从SQL语句开始数据库分析