Группа CONNECT позволяет пользователю подключиться к базе данных и осуществлять операции с теми объектами, право доступа к которым имеет этот пользователь.
Группа RESOURCE позволяет пользователю создавать объекты, удалять созданные этим пользователем объекты, предоставлять другим право доступа к своим объектам и т. п.
Группа DBA позволяет пользователю осуществлять в рамках базы данных лю|ь/е действия. Такой пользователь имеет право доступа к любым объектам базы данйых и может осуществлять с ними любые действия.
Вот пример предоставления пользователю такой группы привилегий.
GRANT DBA TO USER1;
Право предоставлено.
Использование групп привилегий в разных реализациях языка может иметь свою специфику При наличии групп их использование облегчает процесс организа-. ции управления безопасностью базы данных
Если пользователю в рамках определенного приложения требуются, например, привилегии SELECT и UPDATE по отношению к некоторой таблице, ему можно временно, до завершения выполнения транзакции, приписать роль с соответствующими привилегиями.
При создании роли она не имеет никакого иного значения, кроме того, что она является ролью базы данных Она может быть назначена какому-нибудь пользователю или другой роли. Например, пусть схема с именем АРР01 предоставляет привилегию SELECT роли RECORDS_CLERK в отношении таблицы EMPLOYEE_PAY. После этого любой пользователь, получающий роль RECORDS_CLERK, будет обладать привилегией SELECT в отношении таблицы EMPLOYEE_PAY.
Аналогично, если АРР01 отменит привилегию SELECT для роли RECORDS_CLERK в отношении таблицы EMPLOYEE_PAY, то с этого момента и все пользователи и роли, которым была назначена роль RECORDS_CLERK, потеряют привилегию SELECT в отношении ТабЛИЦЫ EMPLOYEE_PAY.
Создать роль можно с помощью оператора CREATE ROLE.
CREATE ROLE Имя_роли;
Предоставление привилегий ролям аналогично предоставлению привилегий пользователям Рассмотрите следующий пример
CREATE ROLE RECORDS_CLERK;
Роль создана.
GRANT SELECT, INSERT, UPDATE, DELETE ON EMPLOYEE_PAY TO
RECORDS_CLERK;
Право предоставлено.
GRANT RECORDS_CLERK TO USER1;
Право предоставлено.
Роль удаляется с помощью оператора DROP ROLE.
DROP ROLE Имя_роли;
Вот пример:
DROP ROLE RECORDS_CLERK;
Роль удалена.
Роль может быть назначена пользователю в рамках его сеанса доступа к базе данных с помощью оператора SET ROLE.
SET ROLE Имя_роли;
Вот пример:
SET ROLE RECORDS_CLERK;
Роль назначена.
С помощью одного оператора можно назначить и несколько ролей.
SET ROLE RECORDS_CLERK, ROLE2, ROLE3;
Роль назначена.
В некоторых реализациях языка (например, Oracle) все назначаемые пользователю роли автоматически становятся ролями по умолчанию, т. е. ролями, по умолчанию назначаемыми пользователю при входе в систему.
Вы ознакомились с основами обеспечения надежного хранения данных в реляционных базах данных средствами SQL, а также с основами управления пользователями баз данных. Первым шагом процесса обеспечения безопасности является создание учетной записи пользователя базы данных. После этого пользователю необходимо сразу же предоставить определенные привилегии доступа к соответствующим частям базы данных, после чего стандарт ANSI позволяет использовать роли так. как это обсуждалось выше. Привилегии можно назначать пользователям или ролям. Различают два типа привилегий - привилегии доступа к системе и привилегии доступа к объектам.
Привилегии доступа к системе дают пользователю возможность выполнять такие действия в базе данных, как подключение к ней, создание таблиц, создание учетных записей пользователей, изменение состояния базы данных и т. п. Привилегии доступа к объектам позволяют пользователям предоставлять доступ к объектам базы данных, отбирать данные этих объектов и манипулировать полученными данными.
Для предоставления и отмены привилегий в SQL имеются две команды - GRANT и REVOKE. Эти две команды используются для того, чтобы осуществлять общее управление процессом назначения и отмены привилегий базы данных. В ходе этого часа мы с вами обсудили относящиеся к SQL принципы обеспечения безопасности базы данных, хотя в рамках реляционных баз данных имеется и целый ряд других связанных с безопасностью вопросов.