Учетные данные для доступа к клиентской библиотеке эластичной базы данных

Применимо к:База данных SQL Azure

Клиентская библиотека Эластичной базы данных использует три различных типа учетных данных для доступа к менеджеру карты сегментов. В зависимости от выполняемых задач используйте учетные данные с максимально низким уровнем доступа.

  • Учетные данные управления предназначены для создания диспетчера карты сегментов или операций с ним. (См. глоссарий.)
  • Учетные данные для доступа: обеспечивают доступ к существующему диспетчеру карт сегментов для получения сведений о сегментах.
  • Учетные данные подключения: предназначены для подключения к сегментам.

См. также статью Проверка подлинности и авторизация в Базе данных SQL Azure: предоставление доступа.

Об учетных данных управления

Учетные данные управления используются для создания объекта ShardMapManager (Java, .NET) в приложениях, работающих с картами сегментов. (Например, ознакомьтесь с разделами Добавление сегмента с использованием средств эластичных баз данных и Маршрутизация, зависящая от данных.) Пользователь клиентской библиотеки эластичного масштабирования создает пользователей и имена для входа SQL и проверяет, имеют ли они разрешения на чтение и запись для базы данных глобального сопоставления сегментов, а также для всех баз данных сегментов. Эти учетные данные используются для обновления глобальной карты сегментов и локальных карт сегментов при внесении изменений в карты. Например, используйте учетные данные управления для создания объекта диспетчера карты сегментов с помощью GetSqlShardMapManager (Java, .NET):

// Obtain a shard map manager.
ShardMapManager shardMapManager = ShardMapManagerFactory.GetSqlShardMapManager(smmAdminConnectionString,ShardMapManagerLoadPolicy.Lazy);

Переменная smmAdminConnectionString — это строка подключения с учетными данными управления. Идентификатор пользователя и пароль предоставляют доступ на чтение и запись как к базе данных сопоставления сегментов, так и к отдельным сегментам. Строка подключения для управления также содержит имя сервера и имя базы данных для идентификации базы данных глобальной карты сегментов. Вот типичная строка подключения, используемая в таком случае:

"Server=<yourserver>.database.windows.net;Database=<yourdatabase>;User ID=<yourmgmtusername>;Password=<yourmgmtpassword>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"

Не используйте значения в формате "имя_пользователя@сервер". Вместо этого используйте значение "имя_пользователя". Это обусловлено тем, что учетные данные должны действовать для базы данных диспетчера карт сегментов и отдельных сегментов, которые могут находиться на разных серверах.

Учетные данные для доступа

При создании диспетчера карт сегментов в приложении, которое не администрирует эти карты сегментов, используйте учетные данные, дающие разрешения только на чтение глобальной карты сегментов. Данные, полученные из глобального сопоставления сегментов под этими учетными данными, используются для зависящей от данных маршрутизации и для заполнения кэша сопоставлений сегментов на клиенте. Учетные данные передаются через тот же шаблон вызова GetSqlShardMapManager.

// Obtain shard map manager.
ShardMapManager shardMapManager = ShardMapManagerFactory.GetSqlShardMapManager(smmReadOnlyConnectionString, ShardMapManagerLoadPolicy.Lazy);  

Обратите внимание на использование smmReadOnlyConnectionString. Для такого доступа применяются другие учетные данные от имени пользователей, не являющихся администраторами. Эти учетные данные не должны давать разрешения на запись в глобальную карту сегментов.

Учетные данные подключения

При использовании метода OpenConnectionForKey (Java, .NET) для доступа к сегменту, связанному с ключом сегментирования, необходимы дополнительные учетные данные. Эти учетные данные должны предоставлять разрешения на доступ только для чтения к таблицам локальных карт сегментов, размещенным в сегменте. Это необходимо для выполнения проверки подключения для маршрутизации на основе данных в сегменте. Этот фрагмент кода разрешает доступ к данным в контексте зависящей от данных маршрутизации.

using (SqlConnection conn = rangeMap.OpenConnectionForKey<int>(targetWarehouse, smmUserConnectionString, ConnectionOptions.Validate))

В этом примере smmUserConnectionString содержит строку подключения для учетных данных пользователя. В базах данных SQL Azure обычно используется такая строка подключения для учетных данных пользователя:

"User ID=<yourusername>; Password=<youruserpassword>; Trusted_Connection=False; Encrypt=True; Connection Timeout=30;"  

Как и для учетных данных администратора, не используйте значения в формате "имя_пользователя@сервер". Вместо этого используйте просто «имя_пользователя@сервер». Кроме того, обратите внимание, что строка подключения не содержит имя сервера и имя базы данных. Их нет, потому что вызов OpenConnectionForKey автоматически перенаправляет подключение в нужный сегмент на основе ключа. Таким образом, имя сервера и имя базы данных не указываются.

См. также

Управление базами данных и именами для входа в Базе данных SQL Azure

Защита Базы данных SQL

Задания обработки эластичных баз данных

Дополнительные ресурсы

Еще не используете средства эластичных баз данных? Ознакомьтесь с нашим руководством по началу работы. Возникшие вопросы вы можете задать нам на странице вопросов Microsoft Q&A по Базе данных SQL. Что касается запросов новых функций, вы можете поделиться новыми идеями или проголосовать за существующие на форуме отзывов по Базе данных SQL.