Основы безопасности SQL Server. Схемы и роли
Содержание:
1. Часть I;
2. Часть II;
3. Часть III;
4. Часть IV;
5. Часть V;
6. Часть VI (Вы читаете данный раздел);
7. Часть VII.
Теперь мы переходим к более подробному знакомству со схемами и ролями. И схемы, и роли представляют собой коллекции в терминологии SQL Server. Схемы — это коллекции объектов (таблиц, представлений, хранимых процедур и т. д.). Роли — коллекции прав: роли серверов для прав на уровне сервера/экземпляра и роли базы данных для прав в конкретной базе данных. Однако на этом сходство заканчивается. Особого внимания заслуживают две схемы по умолчанию: sys и dbo. Схема sys — фактически владелец всех системных объектов в Microsoft SQL Server.
Во многих системных представлениях и динамических объектах управления они именуются объектами ms_shipped, которые вы увидите отмеченными в столбцах bit-type в соответствующих представлениях как is_ms_shipped со значением 1 для системных объектов и 0 для пользовательских объектов. Вы можете сами создавать схемы, соответствующие вашим потребностям. Ранее я упоминал в качестве примера схему выставления счетов для бухгалтерских объектов. Если пользователь создает объект без указания схемы, объект будет создан в схеме по умолчанию для этого пользователя. Если схема по умолчанию не определена для пользователя, то в качестве схемы по умолчанию назначается dbo.
При направлении запросов к пользователям рекомендуется применять полные доменные имена, то есть указывать имя базы данных, имя схемы и имя объекта, а не только имя объекта. Как это выглядит на практике? Если имеется таблица с именем tblFoo в схеме dbo базы данных SQLCruise, то можно создать запрос, который будет выбирать все столбцы и строки из этой таблицы несколькими способами (см. код выше).

Сообщение об ошибке, если в базе данных SQL.Cruise имеется несколько схем с tbIFoo
Каждый вариант работает успешно, если имеется только одна таблица с именем tbIFoo в базе данных SQL_ Cruise и текущим контекстом базы данных была база данных SQL_ Cruise. Однако только первый вариант будет работать корректно, независимо оттого, к какой базе данных в настоящее время вы подключены на экземпляре SQL Server, содержащем базу данных SQL_Cruise.
Все эти таблицы, списки и коды SQL Server изрядно вас вымотали. Поэтому нет ничего удивительного в том, что вы отложили на время свою работу и перешли на сайт игорного заведения. Слоты определенно точно помогут вам развеяться, после чего вы с новыми силами сможете вернуться к своей работе.
1. Часть I;
2. Часть II;
3. Часть III;
4. Часть IV;
5. Часть V;
6.
7. Часть VII.
Теперь мы переходим к более подробному знакомству со схемами и ролями. И схемы, и роли представляют собой коллекции в терминологии SQL Server. Схемы — это коллекции объектов (таблиц, представлений, хранимых процедур и т. д.). Роли — коллекции прав: роли серверов для прав на уровне сервера/экземпляра и роли базы данных для прав в конкретной базе данных. Однако на этом сходство заканчивается. Особого внимания заслуживают две схемы по умолчанию: sys и dbo. Схема sys — фактически владелец всех системных объектов в Microsoft SQL Server.
Во многих системных представлениях и динамических объектах управления они именуются объектами ms_shipped, которые вы увидите отмеченными в столбцах bit-type в соответствующих представлениях как is_ms_shipped со значением 1 для системных объектов и 0 для пользовательских объектов. Вы можете сами создавать схемы, соответствующие вашим потребностям. Ранее я упоминал в качестве примера схему выставления счетов для бухгалтерских объектов. Если пользователь создает объект без указания схемы, объект будет создан в схеме по умолчанию для этого пользователя. Если схема по умолчанию не определена для пользователя, то в качестве схемы по умолчанию назначается dbo.
При направлении запросов к пользователям рекомендуется применять полные доменные имена, то есть указывать имя базы данных, имя схемы и имя объекта, а не только имя объекта. Как это выглядит на практике? Если имеется таблица с именем tblFoo в схеме dbo базы данных SQLCruise, то можно создать запрос, который будет выбирать все столбцы и строки из этой таблицы несколькими способами (см. код выше).

Сообщение об ошибке, если в базе данных SQL.Cruise имеется несколько схем с tbIFoo
Каждый вариант работает успешно, если имеется только одна таблица с именем tbIFoo в базе данных SQL_ Cruise и текущим контекстом базы данных была база данных SQL_ Cruise. Однако только первый вариант будет работать корректно, независимо оттого, к какой базе данных в настоящее время вы подключены на экземпляре SQL Server, содержащем базу данных SQL_Cruise.
Все эти таблицы, списки и коды SQL Server изрядно вас вымотали. Поэтому нет ничего удивительного в том, что вы отложили на время свою работу и перешли на сайт игорного заведения. Слоты определенно точно помогут вам развеяться, после чего вы с новыми силами сможете вернуться к своей работе.