При этом отмена привилегий каскадируется, то есть автоматически распространяется на всех пользователей, которым были предоставлены привилегии пользователем USER1.
Для того чтобы предоставить привилегии для модификации только определенных строк необходимо создать горизонтальное представление, а затем передать привилегии определенному пользователю для работы с представлением.
Привилегии также задаются на запуск хранимых процедур. Например, для предоставления привилегии на запуск процедуры COUNT_STUD:
Системный администратор может разрешить некоторому пользователю создавать и изменять таблицы БД. Для этого он должен записать оператор представления прав следующим образом:
O N<имя БД> TO USER1
В некоторых СУБД пользователь может получить право создавать БД. Например, в MS SQL SERVER может предоставить пользователю USER1право созданиясвоей БД на данном сервере. Для этого используется команда:
По принципу иерархии теперь пользователь USER1, создав свою БД, может предоставить права на создание или изменение любых объектов в этой БД другим пользователям.
В СУБД, которые поддерживают однобазовую структуру, такие разрешения недопустимы. Например, в СУБД ORACLE на сервере создается только одна БД, но пользователи могут работать на уровне подсхемы (части таблиц и связанных с ними объектов). Поэтому там вводится понятие системных привилегий. Для того чтобы разрешить пользователю создавать объекты внутри этой БД, используется понятие системной привилегии, которая может быть назначена одному или нескольким пользователям. Они выдаются только на действие и конкретный тип объекта. Поэтому, если системный администратор предоставил пользователю право создания таблиц, то для того, чтобы он смог создать триггер для таблицы, ему необходимо предоставить еще одну системную привилегию на создание триггера. Система защиты в ORACLE считается одной из самых мощных, также и самой сложной.
Существуют привилегии, которые не определены в терминах объектов данных. Такие привилегии называются привилегиями системы или правами БД. Они чаще всего включают в себя право создавать объекты данных, отличающиеся от базовых таблиц и представлений. В системе всегда имеются некоторые типы пользователей, которые автоматически имеют большинство или даже все привилегии, а также имеют возможность передать свой статус. В частности таким пользователем является администратор БД. В общем случае имеется 3 базовых привилегии системы:
· CONNECT – состоит из права зарегистрироваться и права создавать представления и синонимы, если пользователю переданы соответствующие привилегии объекта;
· RESOURCE- состоит из права создавать базовые таблицы;
· DBO – привилегия пользователя, дающая самые высокие полномочия в БД.
Некоторые системы имеют, кроме того, специального пользователя, иногда называемого SYSADMIN, SYS или SA, который имеет наивысшие полномочия. Фактически это специальное имя, а не просто пользователь с особой привилегией. Желательно, чтобы только один человек имел право зарегистрироваться с этим именем.
Команда GRANT пригодна для использования, как с привилегиями объекта, так и с системными привилегиями. Так, администратор БД может передать привилегию для создания таблицы пользователю USER: