Проблемы SQL-соединения, где работает UDL - PullRequest
0 голосов
/ 07 июля 2019

Сначала я хочу поблагодарить вас за чтение этой проблемы и за любую поддержку или помощь, которую вы можете оказать.

Проблема, с которой я сталкиваюсь, заключается в том, что на ПК с Windows 10, который находится в сети, я могуподключиться к SQL Server с помощью Microsoft Data Link (.udl), но та же строка подключения в моем коде VB не будет подключаться.Я чувствую, что что-то упустил, но я не знаю, что это такое.

Я занимаюсь благотворительной деятельностью, чтобы помочь им перейти от бумажных документов к ИТ-решению.

Я создал программное обеспечение в VB .Net, основанное на клиент-серверном подходе к SQL Server.Все это работает очень хорошо на моем ПК, где находятся и программное обеспечение, и SQL Server.

ИТ-поддержка благотворительной организации передается на аутсорсинг, и мой опыт работы с ними разочаровывает.Они довольно хороши, когда дело доходит до Windows, но заявляют, что не знают SQL Server.Мой собственный опыт установки SQL Server ограничен, но достаточен для его работы.

Сеть Charity довольно хорошо заблокирована.Например, я не могу запустить программу «Как администратор».Это может сделать только ИТ-администратор.

В настоящее время на SQL Server у меня есть следующие настройки:

  • Вход пользователя в систему Windows может получить доступ к серверу
  • Вход пользователя в Windows сопоставлен с пользователем базы данных
  • Создан вход в систему SQL для сервера
  • Вход в систему SQL сопоставлен с пользователем базы данных (nother)

Я могу получить доступ к SQL Server через SSMS на ПК Благотворительной организации, используя любой из указанных выше входов в систему.

Используя канал передачи данных Microsoft (.udl), я могу успешно подключиться к базе данных (например: сервер), используялюбая из строк подключения ниже.

Ниже приведены строки подключения, которые работают в канале данных

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 добавляется к строке подключения перед использованием.В программном обеспечении, которое работает на моем ПК, соединение не устанавливается.

Поскольку мне приходится переписывать код для учета настроек безопасности сети (т. Е. Не использовать реестр для хранения настроек и конфигурации), ямне интересно, есть ли что-то, чего мне не хватает при попытке установить соединение с SQL Server, работающим в программном обеспечении на ПК Благотворительного фонда?В программе настройки конфигурации, которую я написал, я думаю о том, чтобы программа перебирала параметры подключения в предпочтительном порядке (сначала проверка подлинности Windows, а затем вход в систему SQL) и остановилась на первом, который работает, и установила его в качестве строки подключения?Это то, что вы бы порекомендовали?

Я так понимаю, что аутентификация Windows на SQL Server лучше, чем смешанный режим?

1 Ответ

0 голосов
/ 08 июля 2019

Так это сервер аутентификации в смешанном режиме?Если это так, любое из следующих действий должно работать

Проверка подлинности 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)

Теперь вы можете использовать свой экземпляр подключения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...