首先,我要感谢您阅读此问题以及您能提供的任何支持或帮助。
我遇到的问题是,在网络上的Windows 10 PC上,我可以使用Microsoft数据链接(.udl)连接到SQL Server,但是我的VB代码中的相同连接字符串不会连接。我觉得我想念一些东西,但我不知道那是什么。
我正在为慈善机构做一些无偿服务,以帮助他们从纸质记录过渡到IT解决方案。
我已经在VB .Net中创建了软件,该软件基于SQL Server的客户端-服务器方法。整个程序在装有软件和SQL Server的PC上都可以很好地工作。
该慈善机构的IT支持已外包,而我与之合作的经验令人失望。对于Windows来说,它们是相当不错的,但据称对SQL Server不了解。我自己设置SQL Server的经验是有限的,但足以使其正常工作。
慈善机构的网络已经相当安全。例如,我无法运行“作为管理员”软件。这只能由IT管理员完成。
当前,在SQL Server上,我进行了以下设置:
我可以使用上述两种登录方式通过慈善机构PC上的SSMS访问SQL Server。
使用Microsoft的数据链接(.udl),我可以使用以下任一连接字符串成功连接到数据库(ergo:服务器)。
下面是在数据链接中工作的连接字符串
Provider=SQLOLEDB.1;Password=xxxxx;Persist Security Info=True;User ID=aaaa;Initial Catalog=dbName;Data Source=SQLServerInstance
代码:
Public Shared initConnString As String = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source="
Public Shared connString As String = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=dbName;Data Source="
数据链接将与以上任一连接。我只在代码中使用了Integrated Security = SSPI字符串。使用之前,SQL Server实例将附加到连接字符串。在我的PC上运行的软件中,连接失败。
由于我不得不重新编写一些代码来考虑网络安全设置(即不使用注册表来存储设置和配置),所以我想知道在尝试建立连接时是否缺少任何内容在慈善PC上的软件中运行的SQL Server?在我编写的设置配置软件中,我正在考虑让该软件以优先顺序遍历连接选项(首先是Windows身份验证,然后是SQL登录),然后在第一个起作用的位置停止并将其设置为连接字符串?这是您推荐的吗?
我认为SQL Server上的Windows身份验证优于混合模式吗?
答案 0 :(得分:0)
这是混合模式身份验证服务器吗?如果是这样,则以下任何一项都可以工作
Windows身份验证
Server=<Name or ip address of server>;Integrated Security=SSPI;Database=<name of your database>
SQL Server身份验证
Server=<Name or ip address of server>;User Id=<user id>;Password=<password>;Database=<name of your database>
您还可以添加其他连接字符串属性,例如“连接超时”等。
还要确保在SQL Server配置管理器中启用了命名管道和/或TCP / IP。您可以启用一个或两个。
因此,在您的代码中,您可以这样执行操作(无论使用哪种连接字符串):
Dim connectionString As String = "Server=<Name or ip address of server>;Integrated Security=SSPI;Database=<name of your database>"
Dim connection As New SqlConnection(connectionString)
您现在可以使用连接实例