Читаем SQL за 24 часа полностью

Обратите внимание на фразу Grant succeeded (Право предоставлено) в выводе оператора в последнем примере. Такая фраза будет получена при успешном выполнении оператора в той реализации языка (Oracle), которая использовалась для примеров этой книги. Другие реализации SQL могут иметь свои фразы для сообщения пользователю результатов выполнения операторов.

GRANT OPTION

Опция GRANT OPTION команды GRANT является достаточно мощной. Если владелец объекта предоставляет привилегии относительно объекта другому пользователю и использует при этом опцию GRANT OPTION, это значит, что последний получает право предоставлять другим привилегии использования объекта, не являясь при этом владельцем объекта. Вот пример использования опции:

GRANT SELECT ON EMPLOYEE_TBL TO USER1 WITH GRANT OPTION;

Право предоставлено.

ADMIN OPTION

Опция ADMIN OPTION команды GRANT подобна опции GRANT OPTION в том, что получающий привилегии пользователь наследует также и право предоставлять эти привилегии другим пользователям. Но GRANT OPTION используется для привилегий на уровне объектов, a ADMIN OPTION - на уровне системы. Когда пользователь предоставляет другому пользователю привилегии доступа к системе с опцией ADMIN OPTION, этот новый пользователь получает также и возможность предоставления другим пользователям привилегий доступа к системе. Вот пример использования опции:

GRANT SELECT ON EMPLOYEE_TBL TO USER1 WITH ADMIN OPTION;

Право предоставлено.

При удалении из базы данных учетной записи пользователя, наделенного привилегиями с опцией GRANT OPTION или ADMIN OPTION, будут отменены и привилегии тех пользователей, которые получили эти привилегии от пользователя, удаляемого из системы.

Команда REVOKE

Команда REVOKE отменяет привилегии, ранее предоставленные пользователю базы данных. Команда REVOKE имеет две опции - RESTRICT и CASCADE. При использовании опции RESTRICT команда REVOKE будет успешно завершена только в том случае, когда отсутствуют другие пользователи с оставшимися привилегиями, явно указанными оператором REVOKE. С помощью опции CASCADE отменяются и все оставшиеся привилегии других пользователей. Другими словами, если владелец объекта наделил пользователя USERI привилегиями с опцией GRANT OPTION, а пользователь USER1 наделил привилегиями пользователя USER2, то при отмене владельцем привилегий пользователя USER1 с опцией CASCADE будут автоматически отменены и соответствующие привилегии пользователя USER2.

Оставшиеся привилегии (abandoned privileges) - это привилегии, переданные пользователю от другого пользователя с помощью опции GRANT OPTION и оставшиеся "бесхозными" у первого после удаления последнего из базы данных или после отмены привилегий последнего.

Синтаксис оператора для отмены привилегий следующий.

REVOKE Привилегия! [, Привилегия2 ] [ GRANT OPTION FOR ] ON Объект

FROM Имя_Пользователя { RESTRICT | CASCADE }

Вот пример использования подобного оператора.

REVOKE INSERT ON EMPLOYEE_TBL FROM USERI;

Право отменено.

Управление доступом к отдельным столбцам

Кроме предоставления привилегий доступа (INSERT, UPDATE или DELETE) к объектам в целом, имеется возможность ограничить доступ к заданным столбцам таблицы, как это сделано в следующем примере.

GRANT UPDATE (NAME) ON EMPLOYEES TO PUBLIC;

Право предоставлено.

Пользовательское имя PUBLIC

Пользовательское имя PUBLIC в базе данных представляет всех ее пользователей. Любой пользователь считается частью этого имени. Если привилегии предоставляются пользователю PUBLIC, эти привилегии получают все пользователи базы данных. Точно также, отмена привилегий пользователя PUBLIC означает отмену соответствующих привилегий для всех пользователей базы данных, за исключением тех пользователей, которым эти привилегии были явно предоставлены индивидуально. Вот пример использования имени PUBLIC.

GRANT SELECT ON EMPLOYEE_TBL TO PUBLIC;

Право предоставлено.

Поскольку при предоставлении привилегий пользователю PUBLIC их на самом деле получают все пользователи базы данных, такое предоставление привилегий следует использовать крайне осторожно

Группы привилегий

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

В SQLBase имеются группы привилегий, называемые уровнями доступа (authority levels), а в Oracle такие группы называются ролями (roles). И SQLBase, и Oracle предлагают следующие группы привилегий.

CONNECT

RESOURCE

DBA

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных