MySQL用户管理——权限系统

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

认证和授权

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: localhostauthentication_string: $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED

认证插件

MySQL从8.0开始使用“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

以上内容是关于MySQL用户管理权限系统的一个简介,感谢您关注“MySQL解决方案工程师”

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/218277.html

联系我们
联系我们
分享本页
返回顶部