Aккаунт или учетная запись характеризуется пользователем и правами доступа (привилегиями) назначенных пользователю. Обычно аккаунты защищены паролем.
-- создание пользователя: CREATE USER username IDENTIFIED BY psw
Права доступа обеспечивают уровень безопасности как для сокрытия данных от посторонних лиц, так и безопасность всей структуры БД от не преднамеренного уничтожения объектов. Команда добавления привилегий GRANT имеет три составляющие: имя привилегии, объект, на который даются права, и кому даются права - пользователь или роль.
Чтобы задать все доступные права на указанный объект, в стандарте предусмотрена конструкция ALL PRIVILEGES. Конструкция WITH GRANT OPTION дает разрешение пользователю самому назначать права. Чтобы сделать некоторые права на указанные объекты общедоступными в Oracle в качестве имени пользователя нужно указать public.
-- разрешаем пользователю username выполнять процедуру proc и функцию func : GRANT execute ON proc TO username; GRANT execute ON func TO username; GRANT select ON tblname TO public;
Ключевое слово 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 пользователю username
REVOKE select ON tblname FROM username;
REVOKE GRANT OPTION FOR ALL PRIVILEGES ON DATABASE dbname1, dbname2 FROM username;