如何从 Mac 主机连接到 Win7 虚拟机中的 SQL Server?

2021-09-18 00:00:00 virtualbox virtual-machine sql-server

我在 Virtualbox 下的 Windows 7 虚拟机中将 MSSQL 备份恢复到 SQL Server Express.我正在尝试使用导入数据库中具有连接凭据的用户从主机 (Mac OS) 连接到此 SQL Server 实例.虚拟机配置为使用 Host-Only 适配器.SQL Server express 在 WIN7VM/SQLEXPRESS 的 VM 内运行,端口为 1433.

I restored a MSSQL backup to SQL Server Express in a Windows 7 virtual machine under Virtualbox. I am attempting to connect to this SQL Server instance from the host (Mac OS) using a user inside the imported database that has credentials to connect. The virtual machine is configured to use a Host-Only adapter. SQL Server express is running inside the VM at WIN7VM/SQLEXPRESS, port 1433.

我能够从 Mac 主机通过端口 8080 连接到 VM 中的 Apache,没有任何问题.我还可以使用仅限主机的 IP 地址 (192.168.56.101) 从 Mac 主机通过 1433 端口 telnet 到 SQL 服务器.

I am able to connect to Apache in the VM on port 8080 from the Mac host without a problem. I can also telnet into the SQL server at port 1433 from the Mac host, using the host-only IP address (192.168.56.101).

我无法做的是从 MacOS 中的 Navicat 连接到 SQL 服务器,或者使用 PHP 远程连接.这是我尝试过的:

What I am unable to do is connect to SQL server from Navicat in MacOS, or remotely using PHP. Here is what I have tried:

  • 禁用 Windows 防火墙
  • 配置 SQL 服务器端口设置以使用 1433
  • 启用 SQL 服务器身份验证
  • 在 SQL Server 中启用 TCP/IP
  • 启用到 SQL 服务器的远程连接

我正在尝试连接此信息:

I am trying to connect with this info:

  • 主机/IP 地址:192.168.56.101 OR 192.168.56.101\SQLEXPRESS(两者都试过了)
  • 端口:1433
  • 数据库:MyDatabase
  • 身份验证类型:基本
  • 用户名:用户名
  • 密码:密码

我在这里缺少什么才能远程连接而没有任何问题?提前致谢!

What am I missing here to be able to remotely connect without any issues? Thanks in advance!

推荐答案

原来不是 Virtualbox 问题,而是 SQL Server 身份验证问题.

It turned out to not be a Virtualbox issue, but a SQL Server authentication issue.

我尝试连接的用户可以访问数据库,但没有相应的 SQL Server 登录名.

The user I was trying to connect with had access to a database, but did not have a corresponding SQL Server Login.

MSDN - 管理登录名、用户和架构操作方法主题

相关文章