首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从MSSQL迁移MySQL工作台:基于AzureAD的Windows身份验证

从MSSQL迁移MySQL工作台:基于AzureAD的Windows身份验证
EN

Stack Overflow用户
提问于 2022-10-14 17:09:51
回答 1查看 67关注 0票数 0

TL;DR:难以识别正确的服务器、用户名和密码组合,从而使用将MySQL连接到现有的MSSQL数据库。我是否需要为迁移创建一个单独的用户,或者是否可以使用MSSQL身份验证在迁移向导中连接到MySQL?

背景和调试步骤

我收到了一个BAK文件,我想要导入到我现有的MySQL安装中。我已经成功地将BAK文件导入到18 (MSSQL)。现在,我正在尝试使用MySQL Workbench 8.0.27中的数据库迁移向导将数据库迁移到MySQL。

我相信我遇到的问题与认证有关。在MSSQL中,我使用Windows身份验证连接到服务器。我的用户名是"AzureAD\ZachLonghofer“,MSSQL负责密码。在MySQL迁移向导中,我使用默认连接方法接收以下消息日志:

代码语言:javascript
运行
复制
Starting...
Connect to source DBMS...
- Connecting to source...
Connecting to Mssql@MS Access Database...
Opening ODBC connection to DSN=MS Access Database;DATABASE=;UID=AzureAD\ZachLonghofer;PWD=XXXX...
ERROR: Connection failed: No open connection to Mssql@MS Access Database
Connecting to Mssql@MS Access Database...
Opening ODBC connection to DSN=MS Access Database;DATABASE=;UID=AzureAD\ZachLonghofer;PWD=XXXX...
ERROR: Connection failed: No open connection to Mssql@MS Access Database

Traceback (most recent call last):
  File "C:\Program Files\MySQL\MySQL Workbench 8.0\workbench\wizard_progress_page_widget.py", line 71, in run
    self.func()
  File "C:\Program Files\MySQL\MySQL Workbench 8.0\modules\migration_source_selection.py", line 455, in task_connect
    raise e
  File "C:\Program Files\MySQL\MySQL Workbench 8.0\modules\migration_source_selection.py", line 439, in task_connect
    if not self.main.plan.migrationSource.connect():
  File "C:\Program Files\MySQL\MySQL Workbench 8.0\modules\migration.py", line 199, in connect
    self._rev_eng_module.connect(self.connection, self.password or "")
SystemError: NotConnectedError("No open connection to Mssql@MS Access Database"): error calling Python module function DbMssqlRE.connect
ERROR: Error during Connect to source DBMS: NotConnectedError("No open connection to Mssql@MS Access Database"): error calling Python module function DbMssqlRE.connect
ERROR: Exception in task 'Connect to source DBMS': SystemError('NotConnectedError("No open connection to Mssql@MS Access Database"): error calling Python module function DbMssqlRE.connect')

Failed

我还尝试使用ODBC (本机)并指定Server: ZLONGHOFER\SQLEXPRESS01 01 --这是MSSQL中显示的服务器。使用此配置,我将收到此消息日志,在进行跟踪之前,该日志是相同的:

代码语言:javascript
运行
复制
Starting...
Connect to source DBMS...
- Connecting to source...
Connecting to Mssql@DRIVER=SQL Server;SERVER=ZLONGHOFER\SQLEXPRESS01...
Opening ODBC connection to DRIVER={SQL Server};SERVER=ZLONGHOFER\SQLEXPRESS01;DATABASE={};UID=AzureAD\ZachLonghofer;PWD=XXXX;...
Connecting to Mssql@DRIVER=SQL Server;SERVER=ZLONGHOFER\SQLEXPRESS01...
Opening ODBC connection to DRIVER={SQL Server};SERVER=ZLONGHOFER\SQLEXPRESS01;DATABASE={};UID=AzureAD\ZachLonghofer;PWD=XXXX;...
Connecting to Mssql@DRIVER=SQL Server;SERVER=ZLONGHOFER\SQLEXPRESS01...
Opening ODBC connection to DRIVER={SQL Server};SERVER=ZLONGHOFER\SQLEXPRESS01;DATABASE={};UID=AzureAD\ZachLonghofer;PWD=XXXX;...

Traceback (most recent call last):
  File "C:\Program Files\MySQL\MySQL Workbench 8.0\workbench\wizard_progress_page_widget.py", line 71, in run
    self.func()
  File "C:\Program Files\MySQL\MySQL Workbench 8.0\modules\migration_source_selection.py", line 455, in task_connect
    raise e
  File "C:\Program Files\MySQL\MySQL Workbench 8.0\modules\migration_source_selection.py", line 439, in task_connect
    if not self.main.plan.migrationSource.connect():
  File "C:\Program Files\MySQL\MySQL Workbench 8.0\modules\migration.py", line 199, in connect
    self._rev_eng_module.connect(self.connection, self.password or "")
grt.DBLoginError: [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'AzureAD\ZachLonghofer'. (18456) (SQLDriverConnect); [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'AzureAD\ZachLonghofer'. (18456)
ERROR: Error during Connect to source DBMS: [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'AzureAD\ZachLonghofer'. (18456) (SQLDriverConnect);
 [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'AzureAD\ZachLonghofer'. (18456)
ERROR: Exception in task 'Connect to source DBMS': DBLoginError("[28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'AzureAD\\ZachLonghofer'. (18456) (SQLDriverConnect); [28000] [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'AzureAD\\ZachLonghofer'. (18456)")

Failed

Windows身份验证

我使用的密码是我的windows用户密码。我确信我从未为MSSQL设置过密码:我只使用过Windows身份验证,我认为用户名和密码将与我的Windows Login和密码并行,但似乎并非如此。

我还意识到,如果无法使用MySQL身份验证连接到MSSQL,则可能需要在MSSQL中创建用户。如果是这样的话,我需要弄清楚如何在MSSQL中创建一个单独的用户来完成迁移。

我是否需要为迁移创建一个单独的用户,或者是否可以使用MSSQL身份验证在迁移向导中连接到MySQL?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-15 09:46:26

TL;DR;

登录Windows计算机时使用Windows身份验证。登录的用户是SSMS使用的相同的用户,这个用户不关心您的密码,仅仅是因为它不需要您已经通过Windows身份验证,并且这个“机制”对于您使用的每个程序都是相同的。

您的问题忽略了最重要的“部分”:连接字符串,或者至少是连接到MsSQL服务器的代码/库。

Microsoft SQL Server (就地)可以以两种模式运行:

  1. 只进行综合认证
  2. 混合模式->集成身份验证与Server身份验证

在模式1中,您只能使用Windows身份验证登录到Server,只有在模式1上,您可以使用Windows和直接在Server上创建的用户。

从原木上我看到

打开到Server};SERVER=ZLONGHOFER\SQLEXPRESS01;DATABASE={};UID=AzureAD\ZachLonghofer;PWD=XXXX;{SQL DRIVER=的DRIVER=连接

UID和PWD是使用Server身份验证而不是Windows身份验证的症状。

待办事项

  1. 如果要使用Windows,则必须从连接字符串中删除用户和密码,并添加Integrated Security=true;此指定以使用Win Auth 请参见此处的连接字符串。
  2. 如果要使用Server用户,则必须创建用户并至少分配数据库的读取器,然后使用用户名和密码这里有一个关于如何
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74072585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档