Sql схема по умолчанию


Sql схема по умолчанию
Sql схема по умолчанию
Sql схема по умолчанию
Sql схема по умолчанию

В своей модели безопасности Database Engine использует схемы для упрощения отношений между пользователями и объектами, поэтому съемы имеют очень большое влияние на то, как пользователь взаимодействует с Database Engine. В этой статье мы рассмотрим роль схем в безопасности Database Engine.

Разделение пользователей и схем

Схема является коллекцией объектов базы данных, которыми владеет один человек, и множество форм одного пространства имен (две таблицы в одной схеме не могут иметь одинаковых имен). Начиная с SQL Server 2005, жесткая связь между пользователями и схемами была отменена. Теперь Database Engine поддерживает именованные схемы, используя понятие принципала (администратора доступа), который имеет право доступа к объектам.

Принципал может быть:

  • индивидуальным
  • групповым.

Индивидуальный принципал представляет одного пользователя, например, в виде учетной записи (логин) или учетной записи пользователя Windows. Принципалы являются владельцами схем, однако владение схемой может быть передано другому принципалу без изменения имени схемы.

Отделение пользователей базы данных от схем дает большие преимущества, например, такие:

  • один принципал может владеть несколькими схемами;
  • несколько индивидуальных принципалов могут владеть одной схемой через их членство в роли или группе Windows.
  • удаление пользователя базы данных не требует переименования объектов, содержащихся в схеме этого пользователя.

Каждая база данных содержит схему по умолчанию, используемую для разрешения имен объектов, на которые осуществляются ссылки без указания их полностью квалифицированных имен. Схема по умолчанию указывает первую схему, которая будет отыскиваться сервером базы данных, когда он разрешает имена объектов. Схема по умолчанию может быть установлена и изменена с использованием опции DEFAULT_SCHEMA оператора CREATE USER или ALTER USER. Если схема по умолчанию DEFAULT_SCHEMA оставлена необъявленной, пользователю базы данных будет предоставлена схема dbo в качестве его схемы по умолчанию.

Операторы DDL, связанные со схемой

Существуют три оператора Transact-SQL, связанные со схемой:

  • CREATE SCHEMA
  • ALTER SCEMA
  • DROP SCHEMA
Оператор CREATE SCHEMA

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

Управления безопасности являются ресурсами, для которых система авторизации SQL Server регулирует доступ. Существуют три основные области управления безопасностью: сервер, база данных и схема, которые содержат другие средства управления безопасностью, такие как логины, пользователи базы данных, таблицы и хранимые процедуры.

Оператор CREATE SCHEMA может создавать схему, создавать таблицы и представления, которые содержит эта схема, а также предоставлять или отменять полномочия по управлению безопасностью в одном операторе. Управления безопасностью являются ресурсами, для которых система автоматизации SQL Server регулирует доступ. Существуют три основные области управления безопасностью: сервер, база данных и схема, которые содержат другие средства управления безопасностью, такие как логины, пользователи базы данных, таблицы и хранимые процедуры.

Оператор CREATE SCHEMA является атомарным. Иными словами, если в процессе выполнения оператора CREATE SCHEMA возникает любая ошибка, то ни один из операторов Transact-SQL, заданных в этой схеме, не будет выполнен.

Объекты базы данных, которые создаются в операторе CREATE TABLE, могут быть заданы в любом порядке за одним исключением: представление, которое ссылается на другое представление, должно быть создано после того представления, на которое оно ссылается.

Принципал на уровне базы данных может быть пользователем базы данных, ролью или ролью приложения. Принципал, который задается в предложении AUTHORIZATION оператора CREATE SCHEMA, является владельцем всех объектов, созданных в схеме. Владение объектами, содержащимися в схеме, может быть перенаправлено  любому другому принципалу уровня базы данных при использовании оператора ALTER AUTHORIZATION.

Пользователь должен иметь полномочие базы данных CREATE SCHEMA для выполнения оператора CREATE SCHEMA. Для создания объектов, указанных в операторе CREATE SCHEMA, пользователь также должен иметь соответствующие полномочия CREATE.

Оператор ALTER SCHEMA

Данный оператор перенаправляет объект между различными схемами в одной и той же базе данных. Синтаксис оператора ALTER SCHEMA имеет следующий вид:

ALTER SCHEMA schema_name TRANSFER object_name

Оператор ALTER SCHEMA может быть использован только для перемещения объектов между разными схемами в одной и той же базе данных. При этом одиночные объекты в схеме могут быть изменены при помощи операторов ALTER TABLE или ALTER VIEW.

Оператор DROP SCHEMA

Оператор DROP SCHEMA удаляет схему из базы данных. Вы можете успешно выполнить оператор DROP SCHEMA для схемы только лишь в том случае, если эта схема не содержит никаких объектов. Если же схема содержит какие-либо объекты, то оператор DROP SCHEMA будет отменен системой.

Безопасность базы данных

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

Добавление пользователей при помощи операторов Transact-SQL

Оператор CREATE USER добавляет пользователя в текущую базу данных. Синтаксис этого оператора:

CREATE USER user_name [FOR {LOGIN login | CERTIFICATE cert_name | ASSYMETRIC KEY key_name}] [WITH DEFAULT_SCHEMA = schema_name]

Здесь user_name – имя, которое будет применяться для идентификации пользователя внутри базы данных; login задает логин, под которым создается пользователь; cert_name и key_name задают сертификат и ассиметричный ключ соответственно. Наконец, опция WITH DEFAULT_SCHEMA задает первую схему, которая будет отыскиваться на сервере при разрешении имен объектов для этого пользователя базы данных.

Каждая база данных имеет собственных заданных пользователей. Поэтому оператор CREATE USER должен быть однократно выполнен для каждой базы данных, где должна существовать эта учетная запись пользователя. При этом логин SQL Server должен иметь только одного соответствующего пользователя базы данных для этой базы данных.

Оператор ALTER USER модифицирует имя пользователя базы данных, изменяет его схему по умолчанию или перемещает отображение пользователя в другой логин. Аналогичным образом и в случае оператора CREATE USER допустимо назначать пользователю схему по умолчанию до создания этой схемы.

Оператор DROP USER удаляет пользователя из текущей базы данных. Пользователи, владеющие объектами безопасности (то есть объектами базы данных), не могут быть удалены из базы данных.

Схемы баз данных по умолчанию

Каждая база данных в системе имеет следующие схемы базы данных по умолчанию:

  • guest (гость)
  • dbo
  • INFORMATION_SCHEMA
  • sys

Database Engine дает возможность пользователям, не имеющим учетной записи пользователя получить доступ к базе данных с использованием схемы guest (после создания каждая база данных имеет такую схему). Можно назначать привилегии схеме guest теми же способами, что и любым другим схемам. Можно также удалять и добавлять схему guest в любой базе данных за исключением системных баз данных master и tempdb.

Каждый объект базы данных может принадлежать одной и только одной схеме, которая является схемой по умолчанию для этого объекта. Схема по умолчанию может быть объявлена явно или неявно. Если схема по умолчанию не была объявлена явно в процессе создания объекта, то этот объект будет принадлежать схеме dbo. Логин, который является владельцем базы данных, всегда имеет специальное имя dbo при использовании базы данных, которой он владеет.

Схема INFORMATION_SCHEMA содержит всю информацию о представлениях схемы. Схема sys содержит системные объекты, такие как представления просмотра каталогов.

Роли

Когда нескольким пользователям нужно выполнить похожие действия с отдельной базой данных (и для них нет соответствующей группы Windows), можно добавить роль базы данных, которая задает группу пользователей базы данных, имеющих доступ к одним и тем же объектам базы данных.

Участниками роли базы данных могут быть любые следующие представители:

  • группы Windows и учетные записи пользователей Windows
  • учетные записи SQL Server
  • другие роли

Архитектура безопасности в Database Engine включает несколько систем ролей, которые имеют специальные неявные полномочия. Существуют два типа предварительно определенных ролей (в дополнение к ролям, определенным пользователям):

  • фиксированные серверные роли
  • фиксированные роли базы данных

Помимо этих двух в следующих разделах также описываются такие типы ролей:

  • роли приложений
  • роли, определенные пользователем
Фиксированные серверные роли

Фиксированные серверные роли определены на уровне сервера и поэтому существуют вне баз данных, принадлежащих базам данных  сервера. Ниже перечислены следующие серверные роли:

  • sysadmin – выполняет любые действия в системе баз данных
  • serveradmin – конфигурирует серверные установки
  • setupadmin – инсталлирует репликацию и управляет расширенными процедурами
  • securityadmin – управляет учетными записями и полномочиями CREATE DATABASE, проверяет отчетность
  • processadmin – управляет системными процессами
  • dbcreator – создает и изменяет базы данных
  • diskadmin – управляет дисковыми файлами

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

Каждая фиксированная серверная роль имеет собственные неявные полномочия к системной базе данных. Можно просмотреть полномочия у каждой фиксированной серверной роли, используя системную процедуру sp_srvrolepermission. Для получения более полной информации о фиксированных серверных ролях, лучше всего обратиться к BOL.


Sql схема по умолчанию Sql схема по умолчанию Sql схема по умолчанию Sql схема по умолчанию Sql схема по умолчанию Sql схема по умолчанию Sql схема по умолчанию Sql схема по умолчанию Sql схема по умолчанию Sql схема по умолчанию Sql схема по умолчанию Sql схема по умолчанию Sql схема по умолчанию

Тоже читают:



Поздравление на день рождение деды

Физика схемы таблицы pdf

Подарки для детей на выпускной а 4 классе

Как сделать калибровку батареи леново р780

Как сделать красивый и большой снежинку