dbo sql server что это

Встроенные пользователи баз данных SQL Server 2005, dbo, guest, INFORMATION_SCHEMA, sys

При создании любой базы данных в ней автоматически создаются четыре специальных пользователя:

q dbo (от database owner ) — пользователь-владелец базы данных. Он автоматически создается для того логина, от имени которого была создана эта база данных. Конечно же, как владелец, он получает полные права на свою базу данных (при помощи встроенной роли базы данных db_owner ). В SQL Server 2005 (в отличие от предыдущих версий) dbo может удалить свою базу данных;

q guest (гость) — этот специальный пользователь предназначен для предоставления разрешений всем логинам, которым не соответствует ни один пользователь в базе данных. По умолчанию у этого пользователя нет права login для базы данных, и, следовательно, работать он не будет. Этот пользователь используется чаще всего для предоставления разрешений логинам на какие-то учебные/тестовые базы данных или на базы данных-справочники, доступные только на чтение;

q INFORMATION_SCHEMA — этому пользователю не может соответствовать ни один логин. Его единственное значение — быть владельцем схемы INFORMATION_SCHEMA , в которой хранятся представления системной информации для базы данных;

q sys — этому специальному пользователю, как и INFORMATION_SCHEMA , не могут соответствовать логины. Он является владельцем схемы SYS , к которой принадлежат системные объекты базы данных.

Всем доброго дня. С MS SQL Server раньше не работал, недавно пришлось столкнуться по работе, необходимо выполнить одну служебную задачу, но наткнулся на некую странность, был бы очень признателен знатокам за ответ почему так происходит или совет, где про это почитать. Уверен что я просто чего-то не понимаю.

Описание:

Установлен MS SQL Server 2012. Имеется база данных предположим называется Сompany. В базе данных имеется одна схема dbo, все таблицы базы данных принадлежат этой схеме, например:

dbo.People

dbo.Products

dbo.Сars

Открываю SQL Management Studio и подключаюсь к серверу СУБД используя доменную авторизацию, например CORPIvanov.

Далее если выполнить создание таблицы с помощью команды CREATE TABLE:

то все хорошо, создается таблица привязанная к схеме dbo:

dbo.departaments

Но если выполнить создание таблицы с помощью SELECT INTO:

то таблица создается и появляется новая схема, имя которой совпадает с доменным именем CORPIvanov, т.е. таблица представлена в дереве объектов как:

CORPIvanov.departaments

Вопрос:

С чем связано такое поведение?

Примечание:

Я в курсе, что если указать схему dbo при создании таблицы, то таблица создается в этой схеме:

Но интересует именно вариант без ее указания.

Основным принципом безопасности SQL Server является то, что владельцы объектов имеют неотзываемые разрешения на их администрирование. A core concept of SQL Server security is that owners of objects have irrevocable permissions to administer them. Нельзя удалять права доступа у владельцев объектов. Также нельзя удалять пользователей из базы данных, если они владеют в ней объектами. You cannot remove privileges from an object owner, and you cannot drop users from a database if they own objects in it.

Отделение пользователей от схем User-Schema Separation

Отделение пользователей от схем обеспечивает дополнительную гибкость в управлении разрешениями объектов базы данных. User-schema separation allows for more flexibility in managing database object permissions. Схема — это именованный контейнер для объектов базы данных, который позволяет группировать объекты в отдельные пространства имен. A schema is a named container for database objects, which allows you to group objects into separate namespaces. Например, образец базы данных AdventureWorks содержит схемы для Production, Sales и HumanResources. For example, the AdventureWorks sample database contains schemas for Production, Sales, and HumanResources.

Четырехкомпонентный синтаксис ссылок на объекты указывает имя схемы. The four-part naming syntax for referring to objects specifies the schema name.

Владельцы схемы и разрешения Schema Owners and Permissions

Владельцем схемы может быть любой участник базы данных, при этом одному участнику может принадлежать несколько схем. Schemas can be owned by any database principal, and a single principal can own multiple schemas. К схеме можно применить правила безопасности, которые наследуются всеми объектами схемы. You can apply security rules to a schema, which are inherited by all objects in the schema. После установки разрешений доступа для схемы они автоматически применяются по мере добавления к схеме новых объектов. Once you set up access permissions for a schema, those permissions are automatically applied as new objects are added to the schema. Пользователь может назначить новую схему, а несколько пользователей базы данных могут совместно использовать одну одну схему. Users can be assigned a default schema, and multiple database users can share the same schema.

По умолчанию, если разработчик создает объект в схеме, он принадлежит участнику безопасности, являющемуся владельцем схемы, а не разработчику. By default, when developers create objects in a schema, the objects are owned by the security principal that owns the schema, not the developer. Владение объектом можно передать с помощью инструкции Transact-SQL ALTER AUTHORIZATION. Object ownership can be transferred with ALTER AUTHORIZATION Transact-SQL statement. Схема может также содержать объекты, принадлежащие другим пользователям и иметь более детализированные разрешения, чем назначенные схеме, хотя это не рекомендуется из-за увеличения сложности управления разрешениями. A schema can also contain objects that are owned by different users and have more granular permissions than those assigned to the schema, although this is not recommended because it adds complexity to managing permissions. Объекты можно перемещать из одной схемы в другую, а принадлежность схемы передавать от одного участника другому. Objects can be moved between schemas, and schema ownership can be transferred between principals. Пользователей базы данных можно удалять, не влияя этим на схемы. Database users can be dropped without affecting schemas.

Встроенные схемы Built-In Schemas

SQL Server поставляется с десятью предварительно определенными схемами, имеющими одинаковое имя со встроенными пользователями и ролями базы данных. SQL Server ships with ten pre-defined schemas that have the same names as the built-in database users and roles. Они существуют главным образом ради обратной совместимости. These exist mainly for backward compatibility. Схемы, имеющие одинаковые имена с предопределенными ролями базы данных, можно удалить, если они не нужны. You can drop the schemas that have the same names as the fixed database roles if you do not need them. Нельзя удалить следующие схемы. You cannot drop the following schemas:

Если их удалить из шаблона базы данных, эти схемы не появятся в новых базах данных. If you drop them from the model database, they will not appear in new databases.

Схемы sys и INFORMATION_SCHEMA зарезервированы для системных объектов. The sys and INFORMATION_SCHEMA schemas are reserved for system objects. В этих схемах нельзя создавать и удалять объекты. You cannot create objects in these schemas and you cannot drop them.

Схема dbo The dbo Schema

Схема dbo представляет собой схему по умолчанию для вновь созданной базы данных. The dbo schema is the default schema for a newly created database. Владельцем схемы dbo является учетная запись пользователя dbo . The dbo schema is owned by the dbo user account. Схемой по умолчанию для пользователей, созданных с помощью команды Transact-SQL CREATE USER, является dbo . By default, users created with the CREATE USER Transact-SQL command have dbo as their default schema.

Пользователи, которым назначена схема dbo , не наследуют разрешения пользовательской учетной записи dbo . Users who are assigned the dbo schema do not inherit the permissions of the dbo user account. Пользователи не наследуют разрешения схемы, их наследуют объекты базы данных, содержащиеся в схеме. No permissions are inherited from a schema by users; schema permissions are inherited by the database objects contained in the schema.

Если на объект базы данных ссылаются с помощью однокомпонентного имени, SQL Server вначале ищет этот объект в схеме пользователя по умолчанию. When database objects are referenced by using a one-part name, SQL Server first looks in the user’s default schema. Если объект не найден, SQL Server ищет его в схеме dbo . If the object is not found there, SQL Server looks next in the dbo schema. Если этот объект не найден в схеме dbo , возвращается ошибка. If the object is not in the dbo schema, an error is returned.

Внешние ресурсы External Resources

Дополнительные сведения о принадлежности объектов и схемах см. в следующих документах. For more information on object ownership and schemas, see the following resources.

Оцените статью