前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL的Windows身份验证插件

MySQL的Windows身份验证插件

作者头像
MySQLSE
发布2022-11-21 20:14:10
9200
发布2022-11-21 20:14:10
举报

MySQL在企业版里为用户提供“Windows Pluggable Authentication”,用于在Windows上执行外部身份验证,使MySQL 服务器能够使用本机Windows服务对客户端连接进行身份验证。已经登录到Windows的用户可以根据其环境中的信息从MySQL客户端程序连接到服务器,而无需指定额外的密码。

客户端和服务器在认证握手时交换数据包。数据交换后,服务器创建了一个上下文对象,该对象用于标识Windows操作系统中客户端,包括客户端帐户的名称。Windows身份验证插件使用客户端的身份来检查它是定的帐户还是组的成员。

Windows身份验证插件提供以下功能:

外部身份验证:Windows身份验证使MySQL 服务器能够接受来自MySQL授权表之外的用户的连接。(这些用户已经登录到Windows)

支持代理用户:Windows身份验证可以向MySQL返回一个不同于客户端程序传递的外部用户名的用户名。这意味着插件可以返回MySQL用户,该用户定义了外部windows认证用户应该拥有的权限。例如,一个名为joe的Windows用户可以连接并拥有MySQL用户developer的权限。

外部身份验证

插件的安装使用非常简单,与其他插件的安装方式相同,可以预先写入my.ini配置文件,也可以在MySQL运行时执行

INSTALL PLUGIN authentication_windows SONAME 'authentication_windows.dll';

安装成功后,创建一个MySQL用户,将其与Windows的用户进行关联,例如,

 CREATE USER sql_admin IDENTIFIED WITH authentication_windows AS '"YITAO.XU"';

之后,执行

mysql --user=sql_admin

无需输入密码即可登录MySQL服务器,用户的验证将通过Windows进行。插件除了支持指定用户,还可以支持组,或域。例如,

CREATE USER sql_accounting
  IDENTIFIED WITH authentication_windows
  AS 'SomeDomain\\Accounting';

关于具体的语句使用,读者可以参考官网手册,注意一下相关的语法。

代理用户

MySQL支持代理用户的概念,客户端可以使用一个帐户连接MySQL服务器进行身份验证,但可以在连接时拥有另一个帐户的权限。假设读者希望Windows用户使用单个用户名连接,但根据其Windows用户名和组名将其映射到特定的MySQL帐户时,可以使用代理用户。

假设local_user和MyDomain\domain_user应该映射到MySQL的local_wlad 帐户,MyDomain\Developers域组中的用户应该映射到MySQL的local_dev 帐户,本地管理员应该映射到MySQL的local_admin 帐户。则可以进行如下操作:

1.创建一个代理用户

CREATE USER win_proxy
  IDENTIFIED WITH  authentication_windows
  AS 'local_user = local_wlad,
      MyDomain\\domain_user = local_wlad,
      MyDomain\\Developers = local_dev,
      BUILTIN\\Administrators = local_admin';

2.为了保证代理用户能够正常工作,必须创建相关的代理账户

CREATE USER local_wlad
  IDENTIFIED WITH mysql_no_login;
CREATE USER local_dev
  IDENTIFIED WITH mysql_no_login;
CREATE USER local_admin
  IDENTIFIED WITH mysql_no_login;

3.赋予代理权限

GRANT PROXY ON local_wlad TO win_proxy;
GRANT PROXY ON local_dev TO win_proxy;
GRANT PROXY ON local_admin TO win_proxy;

之后,登录Windows的不同用户可以按照其映射的代理用户使用不同的权限。

以上内容是关于MySQL的外部认证功能的介绍,除了Windows之外还支持PAM和LDAP等方式,感兴趣的读者可以访问MySQL的官网。企业级用户如果有相关需求,可以直接利用企业版所提供的相关功能。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQL解决方案工程师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档