Создание схемы базы данных
применяется к:SQL Server
Azure SQL Database
Управляемому экземпляру Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Хранилищу в Microsoft Fabric
В этой статье описывается, как создать схему в SQL Server с помощью SQL Server Management Studio или Transact-SQL.
Разрешения
Чтобы создать схему, необходимо иметь разрешение CREATE SCHEMA в базе данных.
Чтобы указать другого пользователя в качестве владельца создаваемой схемы, вызывающий должен иметь разрешение IMPERSONATE для этого пользователя. Если роль базы данных указана в качестве владельца, вызывающий должен быть членом этой роли или иметь разрешение ALTER на роль.
Создание схемы с помощью SQL Server Management Studio
В обозревателе объектов раскройте папку Базы данных .
Разверните базу данных, в которой создается новая схема базы данных.
Щелкните правой кнопкой мыши папку Безопасность , укажите на пункт Создатьи выберите Схема.
В диалоговом окне Схема — создать на странице Общие введите имя новой схемы в поле Имя схемы .
В поле Владелец схемы введите имя пользователя или роли базы данных, которые будут владельцем схемы. Кроме того, выберите "Поиск", чтобы открыть диалоговое окно "Роли поиска" и "Пользователи".
Нажмите ОК.
Примечание.
Диалоговое окно не будет отображаться, если вы создаете схему с помощью SSMS для Базы данных SQL Azure или Azure Synapse Analytics. Необходимо запустить инструкцию создания шаблона схемы T-SQL, которая сгенерирована.
Диалоговое окно "Схема — новая" также предлагает параметры на двух дополнительных страницах: разрешения и расширенные свойства.
На странице Разрешения перечислены все возможные защищаемые объекты и разрешения на них, которые могут быть предоставлены для учётной записи.
Страница Расширенные свойства позволяет добавлять пользовательские свойства пользователям базы данных.
Создание схемы с помощью Transact-SQL
В обозревателе объектов подключитесь к экземпляру ядра СУБД.
На стандартной панели выберите пункт Создать запрос.
В следующем примере создается схема
Chains
, а затем таблицаSizes
.CREATE SCHEMA Chains; GO CREATE TABLE Chains.Sizes ( ChainID INT, width DECIMAL (10, 2) );
Дополнительные параметры можно выполнить в одной инструкции. В следующем примере создается схема
Sprockets
, принадлежащаяJoe
, которая содержит таблицуNineProngs
. Инструкция предоставляет разрешениеSELECT
дляBob
и запрещаетSELECT
дляJohn
.CREATE SCHEMA Sprockets AUTHORIZATION Joe; GO CREATE TABLE NineProngs ( source INT, cost INT, partnumber INT ); GO GRANT SELECT ON SCHEMA::Sprockets TO Bob; GO DENY SELECT ON SCHEMA::Sprockets TO John; GO
Выполните следующую инструкцию, чтобы просмотреть схемы в текущей базе данных:
SELECT * FROM sys.schemas;
ограничения и запреты
Новая схема принадлежит одному из следующих участников уровня базы данных: пользователю базы данных, роли базы данных или роли приложения. Объекты, созданные в схеме, принадлежат владельцу схемы и имеют
NULL
principal_id
вsys.objects
Владение объектами, содержащимися в схеме, можно передать любому субъекту уровня базы данных, но владелец схемы всегда сохраняет разрешение CONTROL на объекты в схеме.Субъект домена добавляется в базу данных в качестве схемы при создании объекта базы данных, если указать допустимый субъект домена (пользователь или группа) в качестве владельца объекта. Новая схема принадлежит этому субъекту домена.