-
При настройке разрешений, независимо от пользователя или роли, они являются объектами установки разрешений. За исключением того, что роли приложения являются особыми и имеют взаимоисключающие отношения с другими ролями и пользователями, роли и члены базы данных имеют очень тесные отношения с точки зрения разрешений. Пользователь может одновременно принадлежать к нескольким ролям базы данных, и каждая роль может иметь разные разрешения. В настоящее время принципом получения пользователями фактических разрешений является «объединение», если не установлен запретный (запрещенный) параметр. Например, роли A запрещено читать таблицу данных B, но роль C может читать таблицу данных.
B, в это время пользователь, принадлежащий ролям A и C, все еще не может прочитать таблицу данных B, поскольку он забанен.
Объекты разрешений можно разделить на серверы и базы данных, то есть разрешения можно устанавливать отдельно для этих двух, см. следующее объяснение.
Укажите разрешения сервера (1) Щелкните правой кнопкой мыши сервер в обозревателе объектов и выберите «Свойства».
(2) Переключитесь на «Разрешения» в диалоговом окне.
(3) Выберите объект, для которого необходимо установить разрешения, в «Имя или роль для входа» и проверьте авторизацию соответственно в «Явные разрешения».
После завершения нажмите кнопку «ОК», как показано на рисунке 15-21.
Как показано на рис. 15-21, это настройка разрешений для сервера. «Авторизирующим» является тот, кто в данный момент вошел в систему SQL Server.
Имя входа на сервер; «Разрешения» — это разрешения, которые могут быть установлены всеми текущими именами входа; «Предоставить» означает предоставление разрешений; если установлен флажок «Разрешить», это означает, что sa предоставляет разрешения выбранному объекту и может. затем предоставить их другим логинам; "Отклонить" Просто запрещено использовать.
Выбор этих трех опций взаимосвязан: если отмечено «Отклонить», «Предоставить» и «Разрешить» будут автоматически сняты; если отмечено «Разрешить», «Отклонить» будет снято и будет выбрано «Предоставить». .
«Имя входа или роль» — это объект, для которого установлены разрешения. Читатели могут нажать кнопку «Добавить», чтобы указать другие имена входа или роли. Однако все встроенные роли сервера не могут изменять разрешения, но разрешения можно указать для. общественная роль.
Чтобы просмотреть разрешения текущего выбранного имени входа или роли, нажмите кнопку «Действующие разрешения», поскольку действующие разрешения могут не только быть установлены на рисунке 15-21, но также зависеть от роли, которой принадлежит имя входа. Таким образом, на рис. 15-21 будут отображаться только разрешения, определенные в этом параметре, а существующие разрешения по умолчанию отображаться не будут.
Рис. 15-21. Установите разрешения сервера и укажите разрешения базы данных (1) Выберите базу данных электронных книг в обозревателе объектов, щелкните правой кнопкой мыши и выберите «Свойства».
(2) Переключитесь на «Разрешения» в диалоговом окне.
(3) Выберите объект, для которого необходимо установить разрешения, в «Пользователь или роль», проверьте разрешения в «Явные разрешения» и после завершения нажмите кнопку «ОК», как показано на рисунке 15-22.
Разрешения объекта (1) Выберите базу данных электронных книг в обозревателе объектов, откройте «Таблицу данных», выберите таблицу данных «Заказы», щелкните правой кнопкой мыши и выберите «Свойства».
(2) Переключитесь на «Разрешения» в диалоговом окне.
(3) Нажмите кнопку «Добавить», а затем укажите пользователя, роль базы данных или роль приложения, чьи разрешения вы хотите изменить в диалоговом окне.
(4) Выберите объект, для которого необходимо установить разрешения, в «Пользователь или роль», проверьте разрешения в «Явные разрешения» и после завершения нажмите кнопку «ОК», как показано на рисунке 15-23.
Методы работы на рис. 15-21 и рис. 15-23 абсолютно одинаковы. Разница в том, что разрешения сервера, базы данных и объектов устанавливаются отдельно, а объекты, которые можно установить, также различаются. На рисунке 15-21 можно указать разрешения для имени входа и роли сервера. На рисунке 15-22.
На рисунке 15-23 разрешения могут быть указаны для пользователей, ролей базы данных и ролей приложения. Еще одно отличие состоит в том, что разрешения, которые можно указать, различаются.
Рисунок 15-22 Установка разрешений базы данных
Рис. 15-23 Установка прав и разрешений объекта
Разрешения, которые можно установить в SQL Server, очень сложны. Существует 94 разрешения от сервера к объекту. Сложнее понять свойства сервера и базы данных. Важные элементы показаны в Таблице 15-4.
Табл. 15-4 Описание важных разрешений
Описание содержимого разрешения
КОНТРОЛЬ наделяет получателя гранта возможностями, подобными владению. Грантополучатель фактически имеет гарантированное право
Все разрешения, определенные для значка
ALTER Предоставляет возможность изменять свойства (кроме владения) определенного защищаемого объекта. в определенном диапазоне
Когда разрешению ALTER предоставляется область, ему также предоставляется право изменять, создавать или удалять область.
Возможности любого объекта безопасности, содержащегося
ALTER ANY <объект, защищаемый сервером> Предоставляет возможность создавать, изменять или удалять отдельные экземпляры объекта, защищаемого сервером.
ALTER ANY <безопасный объект базы данных> Предоставляет CREATE, ALTER или DROP отдельному экземпляру безопасного объекта базы данных.
способность
TAKE OWNERSHIP позволяет получателю стать владельцем предоставленного объекта безопасности.
CREATE <объект безопасности сервера> Предоставляет правообладателю возможность создавать объекты безопасности сервера.
CREATE <объект безопасности базы данных> Предоставляет получателю права создавать объекты безопасности базы данных.
ПРОСМОТР ОПРЕДЕЛЕНИЯ позволяет получателю доступа к метаданным.
«Объект безопасности» в Таблице 15-4 относится к объекту операции установки разрешений, например «Роль» в «Создать роль».
Это безопасный объект.
Используйте T-SQL для установки разрешений. Чтобы установить разрешения в T-SQL, вы можете использовать три оператора GRANT (предоставление), DENY (запретить) и REVOKE (отзыв).
Эти три утверждения имеют множество применений, и их основные формы таковы:
GRANT ALL или имя разрешения НА объекте пользователю или имя роли С опцией
REVOKE ALL или имя разрешения ON объекта TO пользователя или имя роли CASCADE
DENY ALL или имя разрешения ON объект TO имя пользователя или роли CASCADE
Каждый оператор имеет три элемента, а именно имя разрешения, объект и пользователя (роль), как показано ниже (Ch151524Grant.sql):
ИСПОЛЬЗОВАТЬ электронную книгу
ПРЕДОСТАВИТЬ ВЫБОР НА OBJECT::dbo.members Дэвиду
ПРЕДОСТАВЛЕНИЕ ССЫЛОК (MemberID) НА OBJECT::dbo.Orders
ДЭВИДУ С ГРАНТОВЫМ ВАРИАНТОМ
В приведенных выше инструкциях используется инструкция Grant для предоставления разрешений Дэвиду соответственно, но содержимое объекта отличается. Используйте имя объекта как.
Начните с «OBJECT::», за которым следует полное имя, желательно после владельца. Второй оператор Grant действует на специальный объект «(MemberID) ON OBJECT::dbo.Orders», который представляет MemberID, действующий на объект Orders.
поле, предоставьте Дэвиду разрешения на просмотр этого столбца. В то же время добавление «WITH GRANT OPTION» означает, что Дэвид может предоставлять это разрешение другим, что эквивалентно «с разрешением» на рисунке 15-23.
В операторах Revoke и Deny в конце можно добавить Cascade. Функция этого ключевого слова — отозвать разрешения, которые пользователь может предоставить другим после To, то есть отменить «предоставили».
Просмотр доступных разрешений. Поскольку существует множество доступных разрешений, в T-SQL нет вариантов выбора, поэтому используйте GRANT, DENY и.
При использовании REVOKE вы должны сначала узнать имя разрешения, прежде чем сможете его установить. Читатели могут просмотреть sys.fn_builtin_permissions,
Три таблицы системных данных sys.database_permissions и sys.server_permissions показаны на рис. 15-24.
Рис. 15-24. Просмотр доступных разрешений. «Permission_name» на рис. 15-24 — это имя доступного разрешения, которое можно применить к Grant, DENY или.
Отозвать заявление.
Просмотр содержимого разрешений Чтобы просмотреть текущее имя пользователя и содержимое разрешений пользователя, вы можете выполнить хранимую процедуру sp_helprotect, как показано на рис. 15-25.
показано.
Грантополучатель на рисунке 15-25 — это имя пользователя, который предоставляет разрешения, а Грантополучатель — это имя пользователя, который предоставляет разрешения другим.
После хранимой процедуры sp_helprotect можно использовать до четырех параметров, представляющих имя объекта, имя пользователя и имя лица, предоставляющего право. Четвертый параметр может иметь значение o или s, представляющее разрешения объекта запроса или разрешения оператора соответственно.