Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Содержащаяся база данных — это база данных, изолированная от других баз данных и от экземпляра SQL Server, на котором размещена база данных. SQL Server 2014 помогает пользователю изолировать базу данных от экземпляра 4 способами.
Большая часть метаданных, описывающих базу данных, сохраняется в базе данных. (Помимо или вместо того, чтобы поддерживать метаданные в главной базе данных.)
Все метаданные определяются с помощью одного и того же параметра сортировки.
Аутентификация пользователей может выполняться базой данных, уменьшая зависимость баз данных от имен входа экземпляра SQL Server.
Отчеты среды SQL Server (DMV, XEvents и т. д.) и могут действовать при использовании сведений о состоянии хранения.
Некоторые функции частично содержащихся баз данных, такие как хранение метаданных в базе данных, применяются ко всем базам данных SQL Server 2014. Некоторые преимущества частично содержащихся баз данных, таких как проверка подлинности на уровне базы данных и параметры сортировки каталога, должны быть включены, прежде чем они будут доступны. Частичное сдерживание обеспечивается использованием операторов CREATE DATABASE и ALTER DATABASE или SQL Server Management Studio. Дополнительные сведения о включении частичного хранения базы данных см. в разделе "Миграция в частично содержащуюся базу данных".
Эта тема описана в следующих разделах.
Изоляция хранения
Основные понятия частично замкнутой базы данных
Полностью автономная база данных включает все параметры и метаданные, необходимые для определения базы данных, и не имеет зависимостей конфигурации от экземпляра ядра СУБД SQL Server, где установлена база данных. В предыдущих версиях SQL Server разделение базы данных из экземпляра SQL Server может занять много времени и требует подробных знаний о связи между базой данных и экземпляром SQL Server. Частично содержащиеся базы данных упрощают разделение базы данных от экземпляра SQL Server и других баз данных.
В автономной базе данных рассматриваются функции, касаемые сдерживания. Любая определяемая пользователем сущность, которая зависит только от функций, находящихся в базе данных, считается полностью автономной. Любая определяемая пользователем сущность, основанная на функциях, находящихся за пределами базы данных, считается несоотражаемой. (Дополнительные сведения см. в разделе "Ограничение" далее в этом разделе.)
Следующие термины применяются к автономной модели базы данных.
Граница базы данных
Граница между базой данных и экземпляром SQL Server. Граница между базой данных и другими базами данных.
Содержится
Элемент, который существует полностью в границе базы данных.
Неконтейнированные
Элемент, пересекающий границу базы данных.
Неконтейнированная база данных
База данных, содержащая значение NONE. Все базы данных в версиях, предшествующих SQL Server 2012, не являются автономными. По умолчанию все базы данных SQL Server 2012 и более поздних версий имеют значение NONE.
Частично содержащаяся база данных
Частично содержащаяся база данных — это содержащаяся база данных, которая может разрешить некоторые функции, пересекающие границу базы данных. SQL Server включает возможность определить, когда граница хранения пересекается.
Ограниченный пользователь
Существует два типа пользователей для содержащихся баз данных.
Пользователь автономной базы данных с паролем
Пользователи автономной базы данных с паролями проходят проверку подлинности в базе данных.
Субъекты Windows
Авторизованные пользователи Windows и члены авторизованных групп Windows могут подключаться непосредственно к базе данных и не нуждаются в входах в базе данных master . База данных доверяет проверке подлинности Windows.
Пользователям на основе имен входа в базе данных master можно предоставить доступ к автономной базе данных, но это создаст зависимость от экземпляра SQL Server. Поэтому при создании пользователей на основе имен входа, обратитесь к комментарию для баз данных с частичным содержанием.
Это важно
Включение частично автономной базы данных делегирует контроль доступа к экземпляру SQL Server владельцам базы данных. Дополнительные сведения см. в разделе Security Best Practices with Contained Databases.
Граница базы данных
Поскольку частично содержащиеся базы данных отделяют функциональные возможности базы данных от функциональных возможностей экземпляра, существует четкая граница между этими двумя элементами, которая называется границей базы данных.
Внутри границы базы данных находится модель базы данных, в которой базы данных разрабатываются и управляются. Примерами сущностей, расположенных внутри базы данных, являются системные таблицы, такие как sys.tables, содержащиеся пользователи базы данных с паролями и пользовательские таблицы в текущей базе данных, на которую ссылается имя двух частей.
Вне границы базы данных — это модель управления, которая относится к функциям уровня экземпляра и управлению. Примеры сущностей, расположенных вне границ базы данных, включают системные таблицы, такие как sys.endpoints, пользователи, сопоставленные с именами для входа в систему, и пользовательские таблицы в другой базе данных, на которую ссылаются с использованием трехуровневого имени.
Сдерживание
Сущности пользователей, которые находятся полностью в базе данных, считаются изолированными. Все сущности, которые находятся вне базы данных или зависят от взаимодействия с функциями за пределами базы данных, считаются неуправляемыми.
Как правило, сущности пользователей делятся на следующие категории сдерживания:
Полностью содержащиеся пользовательские сущности (те, которые никогда не пересекают границу базы данных), например sys.indexes. Любой код, использующий эти функции или любой объект, ссылающийся только на эти сущности, также полностью содержится.
Необъединенные сущности пользователей (те, которые пересекают границу базы данных), например sys.server_principals или учетная запись сервера (логин) сама по себе. Любой код, использующий эти сущности, или любые функции, ссылающиеся на эти сущности, являются независимыми.
Частично содержащаяся база данных
Функция автономной базы данных в настоящее время доступна только в частично автономном состоянии. Частично содержащаяся база данных — это содержащаяся база данных, которая позволяет использовать несодержащиеся функции.
Используйте представление sys.dm_db_uncontained_entities и sys.sql_modules (Transact-SQL) для возврата сведений о незаключенных объектах или функциях. Определив состояние хранения элементов базы данных, можно узнать, какие объекты или компоненты должны быть заменены или изменены для повышения уровня хранения.
Это важно
Поскольку некоторые объекты имеют параметр хранения по умолчанию NONE, это представление может возвращать неверные результаты.
Поведение частично содержащихся баз данных отличается от поведения баз данных без ограничений особенно в отношении параметров сортировки. Дополнительные сведения о проблемах сортировки смотрите в статье Параметры сортировки автономной базы данных.
Преимущества использования частично содержащихся баз данных
Существуют проблемы и осложнения, связанные с не содержащимися базами данных, которые можно устранить с помощью частично автономной базы данных.
Перемещение базы данных
Одна из проблем, возникающих при перемещении баз данных, заключается в том, что некоторые важные сведения могут быть недоступны при перемещении базы данных из одного экземпляра в другой. Например, сведения о входе хранятся в экземпляре, а не в базе данных. При перемещении не автономной базы данных из одного экземпляра в другой экземпляр SQL Server эти сведения остаются позади. Необходимо определить недостающую информацию и переместить ее с базой данных в новый экземпляр SQL Server. Этот процесс может быть сложным и трудоемким.
Частично сохраненная база данных может хранить важные сведения, чтобы они оставались доступными даже после перемещения.
Замечание
Частично содержащаяся база данных может предоставить документацию, описывающую те функции, которые используются базой данных, которая не может быть отделена от экземпляра. Это включает в себя список других взаимосвязанных баз данных, системных параметров, которые необходимы для базы данных, но не могут содержаться, и т. д.
Преимущество пользователей автономной базы данных с AlwaysOn
Частично содержащиеся базы данных могут быть полезны при отказе при использовании групп доступности Always On, благодаря уменьшению связей с экземпляром SQL Server.
Создание содержащихся пользователей позволяет пользователю подключаться непосредственно к автономной базе данных. Это очень важная функция в сценариях высокой доступности и аварийного восстановления, таких как решение AlwaysOn. Если пользователи являются ограниченными, в случае отказа они смогут подключаться к вторичному серверу без создания учетных данных на экземпляре, где размещен вторичный сервер. Это обеспечивает немедленное преимущество. Дополнительные сведения см. в разделе "Общие сведения о группах доступности AlwaysOn" (SQL Server)и предварительных требованиях, ограничениях и рекомендациях для групп доступности AlwaysOn (SQL Server).
Начальная разработка базы данных
Так как разработчик может не знать, где будет развернута новая база данных, ограничение развернутых экологических последствий для базы данных уменьшает работу и озабоченность разработчика. В модели без ограничений разработчику следует учитывать возможное воздействие окружающей среды на новую базу данных и соответствующим образом программировать. Используя частично изолированные базы данных, разработчики могут обнаруживать влияние уровня экземпляра на базу данных и задачи уровня экземпляра для разработчика.
Администрирование базы данных
Хранение параметров базы данных в самой базе данных вместо базы данных master позволяет каждому владельцу базы данных лучше контролировать свою базу данных без предоставления владельцу разрешения sysadmin.
Ограничения
Частично содержащиеся базы данных не допускают следующие функции.
Частично содержащиеся базы данных не могут использовать репликацию, запись измененных данных или отслеживание изменений.
Нумерованные процедуры
Объекты, привязанные к схеме, зависящие от встроенных функций с изменениями сортировки
Изменение привязки в результате изменений сортировки, включая ссылки на объекты, столбцы, символы или типы.
Репликация, запись измененных данных и отслеживание изменений.
Предупреждение
В настоящее время разрешены временные хранимые процедуры. Поскольку временные хранимые процедуры нарушают изоляцию, они, вероятно, не будут поддерживаться в будущих версиях изолированной базы данных.
Определение границ содержимого базы данных
Существует два средства, помогающие определить состояние хранения базы данных. sys.dm_db_uncontained_entities (Transact-SQL) — это представление, показывающее все потенциально неподдерживаемые сущности в базе данных. Событие database_uncontained_usage возникает при обнаружении любой фактической несоотражаемой сущности во время выполнения.
sys.dm_db_uncontained_entities
В этом представлении отображаются все сущности в базе данных, которые могут быть незадернуты, например те, которые пересекают границу базы данных. Сюда входят сущности пользователей, которые могут использовать объекты за пределами модели базы данных. Тем не менее, поскольку невозможно определить наличие некоторых сущностей (например, тех, которые используют динамический SQL) до момента выполнения, представление может показать некоторые сущности, которые на самом деле не являются неудерживаемыми. Дополнительные сведения см. в разделе sys.dm_db_uncontained_entities (Transact-SQL).
событие использования неконтейнированной базы данных
Это XEvent возникает всякий раз, когда во время выполнения определяется неконтейнированная сущность. К ним относятся сущности, созданные в клиентском коде. Это XEvent будет происходить только для реальных неограниченных сущностей. Однако событие происходит только во время выполнения. Таким образом, все неуправляемые пользовательские сущности, которые вы не выполнили, не будут идентифицированы этим XEvent
Связанные материалы
Измененные компоненты (содержащаяся база данных)
Сортировки содержащей базы данных