Язык запросов SQL

         

Экономия времени и сил благодаря



Экономия времени и сил благодаря совместному использованию операторов GRANT и REVOKE

Предоставление множеству пользователей множества полномочий на выбранные столбцы таблицы сопряжено с вводом большого количества кодов. Проанализируйте следующий пример. Вице-президент по продажам хочет, чтобы все те, кто занимается продажами, могли просматривать все содержимое таблицы CUSTOMER (клиент). Но обновлять, удалять или вставлять строки должны только менеджеры по продажам. И никто не должен обновлять поле CustID (идентификатор клиента). Соответствующие полномочия можно предоставить с помощью следующих операторов GRANT:

GRANT SELECT, INSERT, DELETE

    ON CUSTOMER

    TO Tyson, Keith, David ;

GRANT UPDATE

    ON CUSTOMER (Company, CustAddress, CustCity,

    CustState, CustZip, CustPhone, ModelLevel)

    TO Tyson, Keith, David ;

GRANT SELECT

    ON CUSTOMER

    TO Jenny, Valerie, Melody, Neil, Robert, Sam,

        Brandon, MichelleT, Allison, Andrew,

        Scott, MishelleB, Jaime, Linleigh, Matt, Amanda;

А теперь попробуем упростить этот код. Все пользователи обладают полномочиями просмотра таблицы CUSTOMER. Менеджеры по продажам имеют на эту таблицу полномочия вставки и удаления, а также могут обновлять любой ее столбец, кроме CustlD. Поэтому тот же результат, что и в предыдущих операторах, можно получить более легким способом:

GRANT SELECT



    ON CUSTOMER

    TO SalesReps

GRANT INSERT, DELETE, UPDATE

    ON CUSTOMER

    TO Tyson, Keith, David ;

REVOKE UPDATE

    ON CUSTOMER (CustlD)

    FROM Tyson, Keith, David ;

Это та же защита, что и в предпоследнем примере, и для нее также надо использовать три оператора. Никто не может изменить данные в столбце CustlD. Полномочия INSERT, DELETE и UPDATE имеют только Тайсон, Кейт и Дэвид. Как видно, три последних оператора значительно короче, так как в них не приходится вводить имя каждого сотрудника отдела продаж и перечислять каждый столбец таблицы.

 


Содержание раздела