Я пытаюсь запросить несколько разных серверов SQL и запустить команду на каждом из них. Я не могу правильно понять строку подключения. Код ниже.

Я получаю следующую ошибку: Ошибка входа. Логин входит в ненадежный домен и не может использоваться с аутентификацией Windows.

Я подумал, что если я передам это полномочия, это не будет заботиться о домене. Как мне обойти это?

Заранее спасибо.

$serverList = @(Get-Content "c:\AllServers.txt")
$query = "SELECT COUNT(thing) AS [RowCount] FROM My_table"
$Database = "My_DB"

# Read a file
foreach ( $svr in $serverList )
{
$conn=new-object System.Data.SqlClient.SQLConnection
$ConnectionString = "Server={0};Database={1};User ID=sa;Password=Password;Integrated Security=True" -f $svr, $Database
$conn.ConnectionString=$ConnectionString
$conn.Open()
$cmd=new-object system.Data.SqlClient.SqlCommand($Query,$conn)
$conn.Close()
}

1 ответ1

1

Вам необходимо удалить Integrated Security=True из строки подключения. Если для этого параметра установлено значение true, он будет пытаться выполнить аутентификацию AD/kerberos с использованием учетных данных Windows, а не указанных идентификатора пользователя и пароля.

Также, пожалуйста, просмотрите страницу SQL 2008 на connectionstrings.com.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .