首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从虚拟机访问主机网络上的Server

从虚拟机访问主机网络上的Server
EN

Stack Overflow用户
提问于 2017-10-25 13:31:27
回答 3查看 2.1K关注 0票数 0

我的公司有一个设置,在本地网络上可以访问Microsoft (没有internet访问),我可以从我的正常工作站(运行Windows 10)访问该服务器。在这个工作站上,我安装了一个带有Virtualbox的Ubuntu虚拟机,这个虚拟机是我的主要开发平台。我想

  • 能够使用python从客户端访问Server
  • 理想情况下,我还希望将主机的Windows身份验证用于Server,尽管这是可选的

我该怎么安排这个?我无法控制SQL Server (但我可能会鼓励工程师进行一些小的更改),但我对主机有一些控制,对来宾有完全的控制。虚拟网络是NAT还是桥接?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-11-03 19:34:50

回答我自己的问题,以防其他人有同样的问题。下面是在Windows主机上NAT配置中的Ubuntu客户机上进行的测试。我强烈建议在Linux客户端和Windows主机上使用相同的用户名。

我通过以下优秀指南找到了大多数解决方案:access/odbc-sql-server-driver/kerberos.html

您可以通过查找本地DNS服务器nmcli dev show | grep DNS (为我工作)找到密钥分发中心(KDC),否则请询问您的本地IT部门。

在Windows主机上,您可以通过在setspn -L命令提示符中输入setspn -L,列出服务器主体名称(SPN)。

我使用的不是EasySoft驱动程序,而是微软自己的ODBC驱动程序:https://learn.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server。确保还安装了unixODBC。

请记住,在/etc/krb5.conf中配置kerberos时,域应该是所有大写的(出于我不完全理解的原因)。

关于为Kerberos身份验证配置Server数据源的部分,可以使用安装Microsoft驱动程序时添加的/etc/odbcinst.ini中指定的驱动程序名称。我的odbcinst.ini看起来像这样

代码语言:javascript
复制
[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.1.so.9.1
UsageCount=1

因此/etc/odbc.ini应该类似于(关于windowsmachinespn的含义,请参阅Easysoft的指南)

代码语言:javascript
复制
[mssql-kerberos-dsn]
Driver                  = ODBC Driver 13 for SQL Server
Server                  = windowsmachine
ServerSPN               = spn
Trusted_Connnection     = yes

注意附加行Trusted_Connnection。这使得数据源使用起来稍微方便一些。

在测试设置之前,您必须运行kinit并使用Active Directory凭据登录,如Easysoft指南中所解释的那样。然后,您可以用`

代码语言:javascript
复制
sqlcmd -D -S mssql-kerberos-dsn

如果安装了sqlcmd (请参阅https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools)。

此外,您还可以通过运行

代码语言:javascript
复制
import pyodbc 
print(pyodbc.connect('DSN=mssql-kerberos-dsn'))

从蟒蛇终点站。

票数 0
EN

Stack Overflow用户

发布于 2017-10-25 14:30:31

关于NAT和VMware上的桥接网络之间的差异,请参见VMware。对于Virtualbox,它们应该是相同的。

基本上,桥接网络对网络运行方式的限制较小。因此,如果您可以从主机访问SQL Server,则可以从具有桥接网络的来宾那里获得相同的访问权限。

票数 0
EN

Stack Overflow用户

发布于 2018-12-09 21:02:17

对我来说,更干净的方法是将ubuntu安装为主机,并使用docker托管您的Server。此外,寻找如何将ubuntu连接到windows。它将帮助您配置用户。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46933822

复制
相关文章

相似问题

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