Существуют три оператора Transact-SQL, связанные со схемой:
♦ create schema;
♦ alter schema;
♦ drop schema.
Оператор CREATE SCHEMA
В примере 12.5 показано, как схемы могут быть созданы и использованы для управления безопасностью базы данных.
В примере 12.5 создается схема my_schema, которая содержит в себе таблицу product и представление product_info. Пользователь базы данных с именем peter является принципалом на уровне базы данных, который владеет схемой. (Вы используете опцию authorization для определения принципала схемы. Принципал может владеть и другими схемами, а может и не использовать текущую схему как его или ее схему по умолчанию.)
Оператор create schema может создавать схему, создавать таблицы и представления, которые содержит эта схема, а также предоставлять или отменять полномочия по управлению безопасностью в одном операторе.
Оператор create schema является атомарным. Иными словами, если в процессе выполнения оператора create schema возникает любая ошибка, то ни один из операторов Transact-SQL, заданных в этой схеме, не будет выполнен.
Объекты базы данных, которые создаются в операторе create schema, могут быть заданы в любом порядке за одним исключением: представление, которое ссылается на другое представление, должно быть создано после того представления, на которое оно ссылается.
Принципал на уровне базы данных может быть пользователем базы данных, ролью или ролью приложения. (Роли и роли приложений обсуждаются в разд. «Роли» далее В этом разделе.) Принципал, который задается в предложении authorization оператора create schema, является владельцем всех объектов, созданных в схеме. Владение объектами, содержащимися в схеме, может быть перенаправлено любому другому принципалу уровня базы данных при использовании оператора alter authorization (см. пример 12.7).
Пользователь должен иметь полномочие базы данных create schema для выполнения оператора create schema. Для создания объектов, указанных в операторе create schema, пользователь также должен иметь соответствующие полномочия create.