Продажи: 1-800-867-1389

Управление федерациями баз данных (база данных SQL Azure)

Обновлено: Апрель 2014 г.

ImportantВажно!
Текущая реализация федераций будет упразднена вместе с уровнями служб Web и Business. Рекомендуется развернуть решения пользовательского сегментирования для обеспечения максимального уровня масштабируемости, гибкости и производительности. Дополнительные сведения о настраиваемом сегментировании см. в разделе Горизонтальное масштабирование баз данных SQL Azure.

Инструкции Transact-SQL, функции и представления, которые можно использовать для создания, изменения и мониторинга федераций. В этом разделе представлены сведения об администрировании федераций.

Каждая федерация начинается с корня и первоначального номера федерации. Для их создания используется инструкция CREATE FEDERATION. После создания федерации структура таблицы федерации создается путем подключения к корню федерации с помощью инструкции USE FEDERATION и инструкции CREATE TABLE с предложением FEDERATED ON.

Чтобы масштабировать федерацию, воспользуйтесь инструкцией ALTER FEDERATION, чтобы разделить существующий член федерации на новые члены. Операция SPLIT идентифицирует разделяемый член посредством значения ключа федерации, указанного в самой операции. Член федерации разделяется по указанному значению, в результате чего создаются два новых члена федерации, которые содержат весь объем строк, которые ранее содержались в исходном члене.

Также можно использовать инструкцию ALTER FEDERATION для того, чтобы уменьшить число членов федерации посредством операции DROP AT. Диапазон значений ключа федерации, который раньше относился к удаленному члену, передается смежному члену. Однако данные, которые ранее относились к этому диапазону, не сохраняются этой операцией.

noteПримечание
Члены федерации не создаются и не удаляются с помощью команды CREATE DATABASE или DROP DATABASE.

Инструкция DROP FEDERATION может использоваться для удаления федерации, включая все члены федерации и другие связанные метаданные и логические объекты.

Помимо этого, инструкция ALTER DATABASE полностью поддерживается для членов федерации.

Несмотря на то что к физическим базам данных, которые содержат данные федерации, можно подключиться напрямую, это не является оптимальным методом подключения, так как в этом случае нужно знать индивидуальное имя базы данных члена. Инструкция USE FEDERATION обеспечивает более легкий способ подключения путем маршрутизации всех соединений через корень федерации, при этом не требуется знать имена отдельных рядовых баз данных, нужно знать только имя и ключ федерации.

Подключения можно фильтровать с помощью предложения WITH FILTERING=ON, чтобы операции в рамках подключения работали только с той атомарной единицей федерации, которая соответствует значению ключа федерации. Если фильтрация включена, обработчик запросов добавляет предикат, содержащий значение ключа федерации, по столбцу федерации в каждый запрос, адресованный таблице федерации.

WarningПредупреждение
Атомарная единица федерации не является границей безопасности, и обработчик запросов не обеспечивает полную изоляцию сведений между единицами в рамках одного участника федерации. Не полагайтесь на фильтрацию как на механизм изоляции для обеспечения безопасности.

Чтобы определить, фильтруется соединение или нет, представление sys.dm_exec_sessions возвращает столбец is_filtered. Тип данных этого столбца — бит. Значение 1 возвращается, если соединение фильтруется; в противном случае возвращается значение 0. Если соединение фильтруется, значение фильтрации можно определить с помощью инструкции FEDERATION_FILTERING_VALUE.

Проверка подлинности для баз данных, содержащих федерации, не отличается от проверки подлинности для баз данных без федераций. Однако настройка субъектов безопасности, например пользователей и ролей, производится только в пределах корневой базы данных федерации и не реплицируется автоматически на все члены федерации.

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

При создании первого члена федерации учетная запись, выполняющая инструкцию, становится владельцем члена федерации. Чтобы добавить существующий субъект из корня федерации в член федерации, владелец базы данных должен создать пользователя в члене федерации с помощью инструкции CREATE USER и привязать этого пользователя к существующему субъекту в федерации с помощью инструкции ALTER USER. Имя пользователя должно полностью соответствовать имени субъекта в sys.database_principals в корне федерации. Связывание пользователей с ролями или другими типами субъектов, не являющихся пользователями, не поддерживается.

noteПримечание
Если имя пользователя не полностью соответствует существующему имени субъекта в корне федерации, инструкция завершится с ошибкой и появится следующее сообщение:

"имя_пользователя" не является допустимым, или недостаточно прав.

Пользователи и роли в корневой базе данных федерации создаются так же, как в базе данных, не относящейся к федерации.

Связанные пользователи могут использоваться как обычные пользовательские учетные записи в рамках члена федерации. Они могут участвовать в предложениях EXECUTE AS и могут быть добавлены в роли. Для инструкции EXECUTE AS предложение WITH NO REVERT не поддерживается, так как для связанных пользователей не разрешены параметры trust и dbchaining.

В следующих представлениях содержатся сведения об операциях федерации. Сведения доставляются этими представлениями до тех пор, пока выполняется операция, и удаляются сразу после ее завершения.

 

Представление операции федерации Описание

sys.dm_federation_operations

Возвращает сведения об операциях уровня федерации.

sys.dm_federation_operation_members

Возвращает сведения о членах федерации, участвующих в операциях.

sys.dm_federation_operation_errors

Возвращает сведения об ошибках, которые возникли во время операций федерации.

sys.dm_federation_operation_error_members

Возвращает сведения о членах федерации, участвующих в операциях, по которым возникла ошибка.

Дополнительные метаданные, описывающие федерации, члены и схему распределения, которая используется в федерации, можно получить из следующих представлений. Также представление sys.databases возвращает столбец is_federation_member, который содержит значение бита, указывающее, является ли база данных членом федерации.

 

Таблица метаданных федерации Описание

sys.federations

Возвращает федерации внутри базы данных.

sys.federation_members

Возвращает членов федерации внутри федерации.

sys.federation_distributions

Возвращает тип распределения и типы данных, используемые федерацией.

sys.federation_member_distributions

Возвращает имя и диапазон распределения, охватываемого членом федерации.

sys.federated_table_columns

Возвращает специфические сведения федерации о таблицах федерации.

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

 

Таблица истории федерации Описание

sys.federation_history

Возвращает данные предыстории для федераций.

sys.federation_member_history

Возвращает данные предыстории для членов федерации.

sys.federation_distribution_history

Возвращает данные предыстории для типа распределения и типа данных федерации.

sys.federation_member_distribution_history

Возвращает данные предыстории для диапазона, охватываемого членом федерации.

См. также

Была ли вам полезна эта информация?
(1500 символов осталось)
Спасибо за ваш отзыв
Показ:
© 2014 Microsoft