Строка подключения драйвера Microsoft OLE DB для высокой доступности RDS.

Вопрос или проблема

Мне нужно настроить RDS Farm High Availability на основе Windows Server 2016 с MS SQL Server 2016. Один из шагов — подключение к базе данных. Все доступные руководства говорят мне использовать SQL Server Native client (SQLNCLI). Но этот клиент устарел, и не рекомендуется использовать его в рабочей среде.

https://docs.microsoft.com/en-us/sql/relational-databases/native-client/sql-server-native-client?vie...

Они говорят начать использовать Microsoft OLE DB Driver для SQL Server (MSOLEDBSQL).

Но нет руководств по написанию строки подключения, используя Microsoft OLE DB Driver для SQL Server. Кажется даже, что Microsoft перестала писать руководства об локальных средах. Теперь они касаются только Azure.

Это была строка подключения для SQL Native Client:

DRIVER=SQL Server Native Client 10.0;SERVER=<SQL Server Name>;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=<DB Name>

Как правильно написать строку подключения для Microsoft OLE DB Driver для SQL Server 2016?

Что-то еще, что я должен знать о использовании и настройке Microsoft OLE DB Driver для SQL Server с RDS High Availability farm?

Я также потерял 1 день в поисках этого.
Проблема у меня была в том, что я использовал именованный экземпляр в моей строке подключения.
Брокер его не принимал. С нативным клиентом это не было проблемой.

Мы заполнили порт SQL вместо server\instance, и это сработало.

Версию драйвера можно найти через: odbcad32 -> File DSN -> Add -> выберите драйвер -> advanced.

Используемая строка подключения:

DRIVER={ODBC Driver 17 for SQL Server};Server=tcp:<sql server>,<server port>;Database=<Database>;APP=<APP Name>;Trusted_Connection=yes;

Я закончил с этой строкой, которая работает для меня:

DRIVER={ODBC Driver 13 for SQL Server};SERVER=tcp:RDSDBServer.best-company.local,1433;DATABASE=RDDB;APP=Remote Desktop Services Connection Broker;Trusted_Connection=Yes;

После создания базы данных необходимо назначить разрешение dbowner в SQL Management Studio для группы серверов RDS. Это не делается автоматически.

Версию ODBC-драйвера, как сказал RuLe, можно узнать из C:\Windows\System32\odbcad32. Для SQL Server 2016 это версия 13.

Нужно отметить, что

Trusted_Connection=Yes;

должно быть написано только так. Если вы пишете YES вместо Yes — конфигурация базы данных завершится ошибкой с неочень описательной ошибкой в журнале событий TerminalServices-SessionBroker

The object is already in the list.

Также я заметил, что после нескольких (думаю около 5) неудачных попыток настроить базу данных — вы полностью заблокированы с ошибкой в журнале событий TerminalServices-SessionBroker

Account locked due to RDDB bad passwords

Я не смог найти, где находится эта учетная запись, которая блокируется, и как ее разблокировать. Примерно через день она автоматически разблокируется, и вы можете попробовать снова.

Путь к папке базы данных действительно является необязательным, и вы можете оставить его пустым.

Ответ или решение

Конфигурирование подключения к базе данных для Высокодоступной фермы RDS с использованием Microsoft OLE DB Driver for SQL Server может быть задачей, вызывающей недоумение, особенно учитывая отсутствие конкретных руководств от Microsoft. Рассмотрим, как можно составить строку подключения, используя Microsoft OLE DB Driver, и какие основные моменты стоит учесть в процессе настройки.

Теоретические аспекты (Theory)

Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL) — это современная альтернатива устаревшему SQL Server Native Client. Он предлагает множество улучшений в производительности и безопасности, что делает его более предпочтительным для использования в производственных средах. Основное назначение OLE DB Driver заключается в предоставлении интерфейса высокого уровня для доступа к реляционным данным SQL Server.

Строка подключения к базе данных — это набор параметров, который необходим для установления соединения между клиентским приложением и сервером базы данных. Поскольку SQL Server Native Client считается устаревшим, рекомендуется использовать OLE DB Driver для новых проектов.

Практический пример (Example)

Давайте рассмотрим пример строки подключения для Microsoft OLE DB Driver for SQL Server:

Provider=MSOLEDBSQL;Server=<ИмяСервера>;Database=<ИмяБД>;Trusted_Connection=Yes;APP=<ИмяПриложения>;

Давайте разберём параметры:

  • Provider: указывает, какой драйвер будет использоваться. В данном случае это MSOLEDBSQL.
  • Server: адрес или имя сервера, на котором расположена база данных. Если используется именованный экземпляр, указывайте его в формате "ServerName\InstanceName".
  • Database: название базы данных, к которой вы подключаетесь.
  • Trusted_Connection: устанавливает, что следует использовать текущие учетные данные Windows для аутентификации.
  • APP: название приложения, что полезно для отслеживания соединений с сервером.

Применение в рамках RDS High Availability (Application)

При реализации Высокой доступности в RDS (Remote Desktop Services) особенно важно корректно настроить соединение с базой данных, так как она играет ключевую роль в управлении конфигурацией брокера подключения. Некорректная настройка может привести к многочисленным проблемам, включая блокировки учетных записей и сбои в аутентификации.

Учетные записи и права доступа
После создания базы данных обязательно назначьте группе серверов RDS права владельца базы данных (db_owner) в SQL Server Management Studio. Это необходимо для того, чтобы RDS сервера могли корректно взаимодействовать с базой данных.

Частые проблемы и их решение

  • Именованные экземпляры: как упомянуто в вопросе, иногда использование именованных экземпляров может вызвать проблемы. Если так происходит, попробуйте указать порт сервера вместо имени экземпляра (например, Server=ServerName,PortNumber).
  • Формат параметров: убедитесь, что вы используете точный регистр, особенно для ключевых параметров, таких как Trusted_Connection=Yes. Ошибка в регистре может привести к труднодиагностируемым ошибкам.
  • Блокировка учетной записи: если возникают ошибки блокировок, попробуйте подождать некоторое время, так как обычно блокировки снимаются автоматически спустя определенный период.

Учет этих аспектов поможет обеспечить стабильность и надежность при конфигурировании высокодоступной фермы RDS с использованием Microsoft OLE DB Driver for SQL Server. Интеграция сдерживания и автоматизации посредством современных инструментов управления также может значительно улучшить управление вашей инфраструктурой.

Заключение

Попытка правильно настроить строку подключения для OLE DB Driver может занять время, но знание основных принципов, нюансов и обходных путей поможет избежать распространенных ошибок и обеспечить надежное соединение с вашим SQL Server в конфигурации RDS. Оптимизация таких соединений не только повысит производительность, но и улучшит общую безопасность вашей среды.

Как специалист в области ИТ, важно не только следовать передовым практикам, но и постоянно обновлять свои знания в области современных технологий и решений.

Оцените материал
Добавить комментарий

Капча загружается...