我的公司有一个设置,在本地网络上可以访问Microsoft (没有internet访问),我可以从我的正常工作站(运行Windows 10)访问该服务器。在这个工作站上,我安装了一个带有Virtualbox的Ubuntu虚拟机,这个虚拟机是我的主要开发平台。我想
我该怎么安排这个?我无法控制SQL Server (但我可能会鼓励工程师进行一些小的更改),但我对主机有一些控制,对来宾有完全的控制。虚拟网络是NAT还是桥接?
发布于 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看起来像这样
[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应该类似于(关于windowsmachine和spn的含义,请参阅Easysoft的指南)
[mssql-kerberos-dsn]
Driver = ODBC Driver 13 for SQL Server
Server = windowsmachine
ServerSPN = spn
Trusted_Connnection = yes注意附加行Trusted_Connnection。这使得数据源使用起来稍微方便一些。
在测试设置之前,您必须运行kinit并使用Active Directory凭据登录,如Easysoft指南中所解释的那样。然后,您可以用`
sqlcmd -D -S mssql-kerberos-dsn如果安装了sqlcmd (请参阅https://learn.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools)。
此外,您还可以通过运行
import pyodbc
print(pyodbc.connect('DSN=mssql-kerberos-dsn'))从蟒蛇终点站。
发布于 2017-10-25 14:30:31
关于NAT和VMware上的桥接网络之间的差异,请参见VMware。对于Virtualbox,它们应该是相同的。
基本上,桥接网络对网络运行方式的限制较小。因此,如果您可以从主机访问SQL Server,则可以从具有桥接网络的来宾那里获得相同的访问权限。
发布于 2018-12-09 21:02:17
对我来说,更干净的方法是将ubuntu安装为主机,并使用docker托管您的Server。此外,寻找如何将ubuntu连接到windows。它将帮助您配置用户。
https://stackoverflow.com/questions/46933822
复制相似问题