Мне нужно подключиться к экземпляру SQL Server 2008 в другом домене Windows, чтобы управлять им. Мы используем только проверку подлинности Windows.
В Windows XP я мог использовать функцию «Управление сетевыми паролями» для хранения на моем локальном компьютере моего имени пользователя и пароля для удаленного компьютера. Это приведет к тому, что SQL Server Management Studio будет использовать эти учетные данные вместо моих локальных учетных данных при подключении к этому серверу. Это отлично сработало и избавило меня от необходимости вводить имя пользователя или пароль каждый раз, когда я подключаюсь к SSMS.
Но, Holy Cow, после обновления до Windows 7 я больше не могу этого делать. Добавление моих учетных данных удаленного домена в Credential Manager не приводит к желаемому поведению. SMSS 2008 R2 игнорирует сохраненные учетные данные и вместо этого всегда отправляет мои локальные учетные данные, вызывая каждый раз сбой входа в систему. В SMSS нет даже способа ввести альтернативные учетные данные, поэтому в результате я просто не могу получить доступ к удаленному серверу!
Как я могу заставить SMSS в Windows 7 работать так же, как в Windows XP?
Вы также можете настроить ярлык SSMS (или второй ярлык SSMS) так, чтобы он просто запускался под учетной записью домена удаленного домена.
Измените ярлык, чтобы вместо этого запускать эту команду (возможно, вам придется немного изменить путь, поскольку у меня установлен SQL Server "Denali" CTP3).
C:\Windows\System32\runas.exe /user:Domain\YourAccount /netonly "C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\Ssms.exe"
Когда вы запускаете ярлык, он запрашивает ваш текущий пароль (удобно, если вам нужно регулярно менять пароль), а затем запускает SSMS в обычном режиме, только если он работает под учетной записью удаленного домена.
Похоже, что в диспетчере учетных данных Windows 7 есть ошибка, которая вызывает такое поведение. После большого количества исследований в Интернете я нашел несколько уродливых обходных путей, но также нашел и отличный:
В Credential Manager добавьте запись для удаленного сервера, но вместо добавления только имени сервера, например database.contoso.com, добавьте имя сервера с портом SQL Server, например:
database.contoso.com:1433
Это приводит к желаемому поведению без боли!
Также помните, конечно, что вам нужно добавить к удаленному имени пользователя в Credential Manager префикс имени удаленного домена, например:
администратор базы данных