MySQL用户管理中的权限系统介绍

2024年 2月 2日 51.4k 0

作为一款成熟的数据库商业软件,用户的权限管理,应该是重要的功能之一,MySQL数据库提供了较高安全等级的权限控制,通过徐老师的这篇文章《MySQL用户管理——权限系统》,了解学习下。

用户管理是DBA的一项重要工作,DBA能够控制用户的活动,哪些事情可以做,哪些事情不能做。DBA需要为不同的用户和角色创建不同的权限,以适配各种用户的需求和使用范围,并尽可能避免使用"root"用户,以防止应用程序受损或者在日常运维中出现错误。此外,DBA需要通过正确分配个人用户权限来确保数据完整性,允许授权用户执行工作,防止未经授权的用户访问超越权限的数据。

MySQL的这些权限管理功能设计,我们开发应用时,都可以借鉴参考。

认证和授权

Authentication和Authorization这两个单词令人经常混淆,认证和授权。当用户连接MySQL服务器,执行查询时,需要验证用户身份,并验证用户权限,换句话来说,需要验证正确的用户身份,并验证用户的权限,决定是否允许用户连接服务器,执行相关查询。

认证:验证用户的身份,这是访问控制的第一步,用户在每次连接时,需要成功认证,如果认证失败,则连接失败,客户端断开连接。

授权:验证用户的权限,这是访问控制的第二步,适用于所有经过用户身份验证的连接,MySQL将决定用户可以执行什么操作,用户是否有充足的权限去执行该操作。

DBA可以通过mysql数据库的user表查看认证信息,每一行表示一个独立的用户账户。"User"字段表示用户的名称,"Host"字段表示连接用户的DNS主机名或IP地址,"Authentication_string"字段是用户经过加密的密码。

    MySQL localhost:3309 ssl SQL > SELECT user,host, authentication_string from mysql.userG
    *************************** 1. row ***************************
    user: root
    host: %
    authentication_string: $A$005$JYU"hj1t+19gmd8BBOPNP45qwC5TQ5APJLGzTa991eiab0f1Qwu0
    *************************** 2. row ***************************
    user: mysql.infoschema
    host: localhost
    authentication_string: $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED

    认证插件

    MySQL从8.0开始使用"caching-sha2_password"作为默认的认证插件,连接时需要使用用户名、密码,及客户端的主机名验证用户。注意,连接服务器时,需要在客户端指定服务器的主机名。在服务器添加用户时,需要指定客户端的主机名。

    关于caching-sha2_password这个插件的内容,可以参考历史的文章,《MySQL的caching_sha2_password报错的解决》
    《MySQL新身份验证插件caching_sha2_password》本地连接

    使用mysql客户端连接本地服务器时指定用户名和密码,

      mysql -u username -ppassword

      注意,-p后面直接输入密码,无空格。

      默认的主机名为"localhost",用于标识类Unix系统的socket连接,如果指定连接选项"--protocol=TCP"或者使用"-h 127.0.0.1"则通过TCP/IP进行连接。

      远程连接

      如果用户需要从一个远程客户端连接mysql服务器,需要在连接时指定客户端所在的主机名(不是MySQL服务器主机名,mysql.user表中的客户端名称)。

        mysql -u username -ppassword -h servername

        如果您认为这篇文章有些帮助,还请不吝点下文章末尾的"点赞"和"在看",或者直接转发pyq,

        近期更新的文章:《全面提升思考、表达和解决问题能力的一个神奇原理介绍》《MySQL中Performance Schema和锁》《Oracle备份与恢复常见但难解决的15个问题》
        《MySQL常用监控指标学习了解》
        《一招解决MySQL中DDL语句被阻塞的问题场景》
        近期的热文:《推荐一篇Oracle RAC Cache Fusion的经典论文》
        《"红警"游戏开源代码带给我们的震撼》
        文章分类和索引:《公众号1300篇文章分类和索引》

        相关文章

        Oracle如何使用授予和撤销权限的语法和示例
        Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
        下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
        社区版oceanbase安装
        Oracle 导出CSV工具-sqluldr2
        ETL数据集成丨快速将MySQL数据迁移至Doris数据库

        发布评论