DROP USER
ALTER USER
ALTER DATABASE
ALTER SYSTEM
BACKUP ANY TABLE
SELECT ANY TABLE
Стандарт ANSI определяет следующие привилегии доступа к объектам.
USAGE. Разрешает использование заданной области.
SELECT. Разрешает доступ к заданной таблице.
INSERT (имя_столбца). Позволяет разместить данные в указанном столбце заданной таблицы.
INSERT. Позволяет поместить данные во все столбцы заданной таблицы.
UPDATE {имя_столбца). Позволяет изменить данные в указанном столбце заданной таблицы.
UPDATE. Позволяет изменить данные во всех столбцах заданной таблицы.
REFERENCES (имя_столбца). Позволяет сослаться в условиях целостности на указанный столбецзаданной таблицы; требуется для всех условий целостности.
REFERENCES, позволяет сослаться в условиях целостности на любой столбец заданной таблицы.
Владелец объекта автоматически наделяется всеми привилегиями относительно этого объекта. Такие привилегии могут быть разрешены также имеющейся в некоторых реализациях языка очень удобной командой GRANT OPTION, которая будет обсуждаться ниже.
Именно привилегии доступа к объектам используются для разрешения или ограничения доступа к объектам данной схемы. Эти привилегии можно использовать для защиты объектов одной схемы от доступа пользователей базы данных, имеющих право доступа к объектам другой схемы той же базы данных.
Обычно право использовать команды GRANT и REVOKE имеет администратор базы данных, но если есть администратор по безопасности, то он тоже может иметь право использовать эти команды. Конкретные инструкции по поводу того, кому и какие именно привилегии следует назначить или отменить, должны исходить от руководства и желательно в письменном виде.
Привилегии доступа к объекту должен распределять владелец этого объекта. Даже администратор базы данных не имеет права давать разрешение на использование не принадлежащего ему объекта, хотя, конечно, администратор всегда имеет реальную возможность это сделать.
Доступ пользователей к базе данных изначально контролируется посредством предоставления пользователям имен и паролей, но в большинстве систем управления базами данных этим дело не ограничивается. Создание учетной записи пользователя является лишь первым шагом для разрешения доступа к данным, как и первым шагом на пути управления этим доступом.
После того, как учетная запись пользователя создано, администратор базы данных, уполномоченный по безопасности или другой сотрудник с соответствующими полномочиями должен предоставить пользователю набор полномочий соответствующего уровня для того, чтобы пользователь имел возможность выполнять необходимые ему действия, например, создавать таблицы или запрашивать данные других таблиц. Ведь какой смысл подключаться к базе данных, если в ней вам ничего не позволено делать? Кроме того, владелец схемы должен разрешить пользователю использовать объекты схемы, чтобы пользователь имел возможность выполнять свою работу.
Имеется две команды SQL, посредством которых назначаются и отменяются привилегии и тем самым предоставляется возможность управления доступом к данным. С помощью этих команд (они перечислены ниже) в реляционных базах данных распределяются как привилегии доступа к системе, так и привилегии доступа к данным.
GRANT
REVOKE
Команда GRANT используется для предоставления привилегий как на уровне доступа к системе, так и на уровне доступа к объектам тем пользователям, которые уже имеют учетные записи в базе данных.
Синтаксис оператора следующий.
GRANT Привилегия1 [, Привилегия2 ] [ ON Объект ]
ТО Имя_Пользователя [ WITH GRANT OPTION | ADMIN OPTION ]
Одну привилегию пользователю можно предоставить следующим образом.
GRANT SELECT ON EMPLOYEE_TBL TO USERI;
Право предоставлено.
Несколько привилегий пользователю можно предоставить следующим образом.
GRANT SELECT, INSERT ON EMPLOYEE_TBL TO USER1;
Право предоставлено.
Обратите внимание на то, что в случае предоставления пользователю нескольких привилегий в рамках одного оператора привилегии в списке разделяются запятыми.
Нескольким пользователям привилегии предоставляются следующим образом.
GRANT SELECT, INSERT ON EMPLOYEE_TBL TO USER1, USER2;
Grant succeeded.