0

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

Я хотел бы иметь код, что делает удаленное подключение к рабочему столу без графического интерфейса. Я просто хочу, чтобы мой код удалялся в другой домен, выполнял запрос и отключился. Вот что у меня есть:

Private Sub btnConnect_Click(sender As System.Object, e As System.EventArgs) Handles btnConnect.Click 
    Dim connectionString As String = "Server = 111.111.111.111; Initial Catalog = remote database; Network Library=DBMSSOCN; integrated security = true; User ID = domain2\mylogin; Password = myPass;" 
    Dim connectionString2 As String = "Server = local SQL Server; Initial Catalog = local database; integrated security=true" 

    Try 
     Using sourceConnection As SqlConnection = _ 
     New SqlConnection(connectionString) 

      Dim commandSourceData As SqlCommand = New SqlCommand(_ 
           "SQL Query", sourceConnection) 

      sourceConnection.Open() 
      Dim reader As SqlDataReader = commandSourceData.ExecuteReader() 

      Using destinationConnection As SqlConnection = _ 
       New SqlConnection(connectionString2) 
       destinationConnection.Open() 
       Using bulkCopy As SqlBulkCopy = _ 
        New SqlBulkCopy(destinationConnection) 
        bulkCopy.ColumnMappings.Add("Column1", "Column1") 
        bulkCopy.DestinationTableName = "local database" 
        bulkCopy.WriteToServer(reader) 
       End Using 
       destinationConnection.Close() 
      End Using 
      reader.Close() 
      sourceConnection.Close() 
     End Using 
    Catch ex As Exception 
     MessageBox.Show(ex.Message) 
    End Try 
End Sub 

Я получаю следующее сообщение об ошибке:

enter image description here

Да, мой SQL Server настроен для удаленных подключений.

+1

Вы не можете указать пользователя при использовании встроенной системы безопасности. Вам необходимо использовать аутентификацию безопасности SQL на удаленном сервере. –

+0

Удалено из моего кода. Получена такая же ошибка. –

+0

Как вы используете интегрированную защиту, когда две машины находятся в отдельных доменах и, вероятно, ничего не знают друг о друге? – Kritner

ответ

1

В строке подключения:

Server = 111.111.111.111; Initial Catalog = remote database; Network Library=DBMSSOCN; integrated security = true; User ID = domain2\mylogin; Password = myPass; 

Вы задаете использовать встроенные функции защиты и, обеспечивающие полномочия, которые не будут работать. Интегрированная защита всегда использует текущего пользователя (или пользователя, в котором выполняется процесс).

Чтобы запустить с указанными учетными данными, вам необходимо включить SQL-безопасность на удаленном сервере (111.111.111.111), а затем создать учетную запись пользователя SQL с соответствующими разрешениями на remote database.

Затем измените строку соединения соответственно:

Server = 111.111.111.111; Initial Catalog = remote database; Network Library=DBMSSOCN; User ID = SqlAccountName; Password = SqlAccountPW; 
0

Хотя все остальные ответы правильны в отношении определения комплексной безопасности и имя пользователя, я не думаю, что это ваша единственная проблема. Из полученной вами ошибки сервер не может быть найден. Вы можете проверить следующее ...
- Пингуется 111.111.111.111
- Есть ли брандмауэр на удаленном сервере ?, и он был настроен для SQL Connections
- начал ли служба обозревателя SQL Server?
- это протокол TCP/IP включен в конфигурации сервера сети SQL

Вот ответ на вопрос, с той же ошибкой, как себя с еще несколько вещей, которые вы можете проверить.

Connect to SQL Server through IP address

Надежда, что помогает

Смежные вопросы