Права доступа обеспечивают уровень безопасности как для сокрытия данных от посторонних лиц, так и безопасность всей структуры БД от не преднамеренного уничтожения объектов. Команда добавления привилегий GRANT имеет три составляющие: имя привилегии, объект, на который даются права, и кому даются права - пользователь или роль.
Чтобы задать все доступные права на указанный объект, в стандарте предусмотрена конструкция ALL PRIVILEGES. Конструкция WITH GRANT OPTION дает разрешение пользователю самому назначать права. Чтобы сделать некоторые права на указанные объекты общедоступными в Oracle и PostgreSQL в качестве имени пользователя нужно указать public.
-- разрешаем пользователю username-- вставлять, обновлять, вставлять и удалять записи-- из таблицы tblname в текущей схемеGRANT select, update, insert, delete ON tblname TO username; -- разрешаем пользователю username -- выполнять процедуру proc и функцию func -- OracleGRANT execute ON proc TO username;GRANT execute ON func TO username; -- MySQLGRANT execute ON PROCEDURE proc TO username;GRANT execute ON FUNCTION func TO username; -- PostgreSQL, если у процедуры или у функции-- есть аргументы, то их надо указать GRANT EXECUTE ON FUNCTION proc() TO username; -- ---------------------GRANT ALL PRIVILEGES ON tblname TO username WITH GRANT OPTION; -- Oracle, PostgreSQLGRANT select ON tblname TO public;