Мы заметили множество недопониманий, связанных с использованием ключевого слова Data Source в строках подключения, вызванных тем, что люди обобщают пример, демонстрирующий строку подключения для локального соединения, и создают свою собственную строку подключения для удалённого соединения.
Public con As New System.Data.SqlClient.SqlConnection("Integrated Security=SSPI;Initial Catalog=TestDatabase;Data Source=(local);")
Параметры этой строки подключения можно разобрать так:
- Integrated Security=SSPI; – это означает, что мы хотим подключиться, используя аутентификацию Windows.
- Initial Catalog=TestDatabase; – это означает, что база данных, к которой мы хотим подключиться в первую очередь, называется "TestDatabase".
- Data Source=(local); – это означает, что мы хотим подключиться к экземпляру SQL Server, расположенному на локальной машине.
Путаница возникает с последним параметром, поскольку люди думают, что "local" является ключевым словом, ссылающимся на локальную учётную запись машины, в то время как на самом деле специальным ключевым словом является "(local)", включая круглые скобки. В результате, если они хотят использовать удалённое подключение, и если имя их сервера, например, TestServer с IP-адресом 10.1.1.10, они пытаются использовать параметр строки подключения: "Data Source=(TestServer)" или "Data Source=(10.1.1.10)". Поскольку специальным ключевым словом здесь является целое слово "(local)", правильным параметром строки подключения будет: "Data Source=TestServer" или "Data Source=10.1.1.10". Таким образом, целиком строка кода теперь будет выглядеть так:
Public con As New System.Data.SqlClient.SqlConnection("Integrated Security=SSPI;Initial Catalog=TestDatabase;Data Source=TestServer")
или:
Public con As New System.Data.SqlClient.SqlConnection("Integrated Security=SSPI;Initial Catalog=TestDatabase;Data Source=10.1.1.10")
Отказ от ответственности: Данное сообщение предоставляется "КАК ЕСТЬ" без каких-либо гарантий и не предоставляет никаких прав.

Комментариев нет:
Отправить комментарий