UDL适用的SQL连接问题

时间:2019-07-07 10:50:16

标签: sql windows vb.net

首先,我要感谢您阅读此问题以及您能提供的任何支持或帮助。

我遇到的问题是,在网络上的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上,我进行了以下设置:

  • Windows用户登录可以访问服务器
  • Windows用户登录已映射到数据库用户
  • 已为服务器创建了SQL登录
  • SQL登录名已映射到(另一个)数据库用户

我可以使用上述两种登录方式通过慈善机构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身份验证优于混合模式吗?

1 个答案:

答案 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)

您现在可以使用连接实例