В Oracle команды назначения прав не так актуальны за счет готовых ролей и как указывалось ранее, каждый пользователь имеет полный доступ к одноименной схеме. В Oracle имя привилегии определяет и действие, и тип объектов.
Ключевое слово ANY указывает, что привилегия распространяется на все схемы, иначе только на текущую (из которой вызывается команда GRANT).
-- право на создание таблицы GRANT create table TO username; -- право на создание любых таблицGRANT create any table TO username; -- право на создание триггера GRANT create trigger TO username; -- право на уничтожение любой последовательностиGRANT drop any sequence TO username; -- право на изменение любой таблицыGRANT alter any table TO username; -- право на соединение к БДGRANT create session TO username;
Удаление прав доступа
Удаление прав делается командой REVOKE.
-- удаление права выборки из таблицы-- tblname пользователю usernameREVOKE select ON tblname FROM username; -- PostgreSQLREVOKE GRANT OPTION FOR ALL PRIVILEGES ON DATABASE dbname1, dbname2 FROM username; -- MySQLREVOKE ALL PRIVILEGES, GRANT OPTION FROM username;
Роли
Для удобства управления привилегиями используются роли. Им можно назначать права так же, как и пользователям или использовать вместо имени привилегии в командах GRANT и REVOKE.