MS Access DNSless соединение с MS SQL Server ID пользователя / пройти сбой - PullRequest
0 голосов
/ 21 ноября 2018

Я подключаюсь к серверу MS SQL с ноутбука с MS Access 2016. Я собираюсь вставить некоторые локальные данные в сервер SQL.У меня есть учетная запись пользователя на сервере SQL с настройкой типа пользователя «SQL user with login».Я использую строку подключения ниже:

connStr = "ODBC;Driver={ODBC Driver 13 for SQL Server};" & _
        "Server=" & dbServer & ";" & _
        "Database=" & dbName & ";" & _
        "User=" & UID & ";" & _
        "Password=" & PWD & ";"
Dim cdb As DAO.Database, qdf As DAO.QueryDef
Set cdb = CurrentDb
Set qdf = cdb.CreateQueryDef("")
qdf.Connect = connStr
qdf.SQL = "INSERT INTO theTble (field1, field2) VALUES ('data1', 'data2');"
qdf.ReturnsRecords = False
qdf.Execute dbFailOnError  <--- this line opens the dilogue box

Когда запускается строка для выполнения запроса, я получаю диалоговое окно:

SQL Server Login dialogue box.

Если я изменяю содержимое поля «Идентификатор входа» на имя входа, используемое в строке подключения, добавляю пароль в поле пароля и нажимаю «ОК», соединение установлено и запрос на вставку SQL выполняется правильно.

У меня естьпробовал несколько строк подключения;пока это единственный, который приблизит меня к этому.Мне нужно, чтобы это работало без необходимости вручную вводить идентификатор пользователя / пароль.Кроме того, связанная таблица не будет работать в моей ситуации.

Спасибо за просмотр.

1 Ответ

0 голосов
/ 21 ноября 2018

Исходя из моих комментариев, я подумал, что отправлю фактический ответ.

Похоже, диалоговое окно получило данные из строки подключения, за исключением пароля.Это наводит меня на мысль, что параметр Password в строке подключения неверен.Я вполне уверен, что для строк подключения ODBC параметр для пароля должен быть PWD = {пароль}.(В качестве примечания, я вполне уверен, что пользователь также должен иметь UID = {имя пользователя}, но диалог, похоже, подобрал ваше имя пользователя, поэтому предположительно User = {имя пользователя} является подходящей альтернативой.

Вот Ссылка на Документы Microsoft - прокрутите вниз до формата строки подключения ... в строке подключения отображается UID = {имя пользователя}; PWD = {пароль}.

В противном случае,у вашего пользователя SQL есть разрешение INSERT для таблицы?

...