Мой клиент базы данных и сервер базы данных находятся на разных машинах и не подключены к одному домену (это не поддерживается моим веб-хостом). Я не хочу отправлять данные об имени пользователя и пароле через строку подключения и хочу использовать проверку подлинности Windows для подключения к базе данных.
В эта статья В обзоре упоминается это (выделено мной):
Когда вы используете аутентификацию Windows для подключения к SQL Server, вы используете аутентификацию Kerberos или NTLM в зависимости от конфигурации ваших серверов и домена. Возможно, вы не сможете использовать аутентификацию Kerberos, если:
Ваш клиент базы данных и сервер базы данных разделены брандмауэром, предотвращающим аутентификацию Kerberos.
Ваш сервер приложений и сервер базы данных находятся в разных доменах без доверия.
В этих ситуациях вы можете использовать либо зеркальные локальные учетные записи, либо аутентификацию SQL. С помощью зеркальных локальных учетных записей вы настраиваете две учетные записи на каждом сервере с одинаковыми именами пользователей и паролями. Вы должны убедиться, что пароли остаются прежними..
Я предполагаю, что это просто означает создание пользователя Windows с одним и тем же именем пользователя и паролем на обеих машинах, однако я скептически отношусь к этому. Когда я добавляю разрешения для этого пользователя в клиенте базы данных, он ставит перед именем пользователя имя сервера, и то же самое происходит при создании входа в базу данных на сервере базы данных.
Это то, что означает создание зеркальной локальной учетной записи? Если да, то как это работает, учитывая, что пользователи находятся в разных доменах?
Вы правильно поняли процесс. Вам необходимо создать две учетные записи пользователей. Один будет создан на хосте SQL Server, другой будет создан на клиенте, с которого вы хотите подключиться. Их имена пользователей и пароли должны быть идентичными.
SQL Server добавляет к имени пользователя префикс имени хоста или имени домена, однако это не проблема, механизм аутентификации Windows правильно разрешает часть имени пользователя и аутентифицирует другого пользователя, если пароль другого пользователя идентичен.