Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
rolename Имя существующей роли
Пример: следующий оператор удаляет роль:
DROP ROLE administrator;
GRANT
Дает пользователю права на указанные объекты БД.
Синтаксис:
GRANT < privileges> ON [TABLE] { tablename | viewname} TO { <object> | <userlist> | GROUP UNIX_group}
| EXECUTE ON PROCEDURE procname TO { <object> | <userlist>}
| < role_granted> TO {PUBLIC | < role_grantee_list>};
< privileges> = {ALL [PRIVILEGES] | < privilege_list>}
<privilege_list> = SELECT
| DELETE
| INSERT
| UPDATE [(col [, col …])]
| REFERENCES [(col [, col …])]
[, < privilege_list> …]
<object> = PROCEDURE procname
| TRIGGER trigname
| VIEW viewname
| PUBLIC
[, <object> …]
<userlist> = [USER] username
| rolename
| Unix_user}
[, <userlist> …]
[WITH GRANT OPTION]
< role_granted> = rolename [, rolename …]
<role_grantee_list> = [USER] username [, [USER] username …]
[WITH ADMIN OPTION]
Описание аргументов
privilege_list | Имена назначаемых привилегий; допустимые значения - SELECT, DELETE, INSERT, UPDATE, and REFERENCES |
col | Столбец, к которому применяются привилегии |
tablename | Имя существующей таблицы, к которой применяются привилегии |
viewname | Имя существующего представления (view), к которому применяются привилегии |
GROUP unix_group | На ОС UNIX, имя группы, определенное в /etc/group |
object | Имя существующей процедуры, триггера, или представления; PUBLIC является допустимым значением |
userlist | Пользователь из isc4.gdbили имя роли, созданной оператором CREATE ROLE |
WITH GRANT OPTION | Дает право назначать привилегии, перечисленные в операторе GRANT к userlist |
rolename | Существующая роль, созданная оператором CREATE ROLE. |
role_grantee_list | Список пользователей, которым дается право на rolename; учетные записи пользователей должны существовать в isc4.gdb |
WITH ADMIN OPTION | Дает GRANT право на роли, перечисленные в role_grantee_list |
Описание: GRANT назначает привилегии и роли на объекты БД пользователям, ролям, или другим объектам БД. После создания объекта БД право на него имеет только его создатель, и только создатель объекта может дать право на объект другим пользователям.
Таблица содержит все возможные привилегии:
Привилегия | Разрешаемые действия |
ALL | Выполнять SELECT, DELETE, INSERT, UPDATE, and REFERENCES |
SELECT | Получать строки из таблицы или представления |
DELETE | Удалять строки из таблицы или представления |
INSERT | Добавлять новые строки в таблицы или представления |
UPDATE | Изменять текущие значения в определенных столбцах таблиц или представлений; можно указать подмножество столбцов, в которых позволяются изменения. |
EXECUTE | Выполнять хранимую процедуру |
REFERENCES | Ссылаться на указанные столбцы с помощью внешнего ключа. Если данное право назначается, то разрешение должно выдаваться, как минимум, на столбцы первичного ключа. |
Чтобы осуществлять доступ к таблице или представлению, необходимо иметь право на операции SELECT, INSERT, UPDATE, DELETE, или REFERENCES для данной таблицы. Права SELECT, INSERT, UPDATE, DELETE, и REFERENCES могут быть назначены с помощью единственного описателя ALL.
Пользователь или объект БД должен иметь право EXECUTE для вызова хранимой процедуры из приложения.
Для того, чтобы назначить права группе пользователей, создайте роль с помощью оператора CREATE ROLE. Затем используйте оператор GRANT privilege TO rolename для назначения желаемых прав роли. Используйте GRANT rolename TO user для назначения роли пользователю. Право на роль может назначаться пользователю с помощью оператора GRANT, лишить пользователя права на роль можно с помощью оператора REVOKE. Для того, чтобы воспользоваться привилегиями роли, пользователь должен указать роль во время подключения к БД.
Для того, чтобы разрешить другому пользователю ссылаться на поля таблицы с помощью механизма внешних ключей, необходимо дать владельцу ссылающейся таблицы право REFERENCES на всю таблицу, или только на столбцы составляющие первичный ключ. Также необходимо давать право REFERENCES или SELECT на первичный ключ таблицы любому пользователю, осуществляющему запись в таблицу, содержащую внешний ключ.
Замечание: если доступ по чтению не является существенным, можно дать право REFERENCES на первичный ключ таблицы всем (PUBLIC), и тем облегчить администрирование.
Если назначается право REFERENCES, оно должно распространятся на все столбцы первичного ключа. Если право REFERENCES назначается на таблицу целиком, столбцы не являющиеся частью ключа не затрагиваются в любом случае.
Когда пользователь объявляет внешний ключ на таблицу, которой владеет другой пользователь, InterBase проверяет, имеет ли пользователь право REFERENCES на данную таблицу. Право REFERENCES можно назначить роли.
Чтобы дать пользователям возможность назначать привилегии другим пользователям укажите userlist с описателем WITH GRANT OPTION. Пользователи могут назначать другим пользователям только те привилегии, которыми они владеют сами.
Чтобы дать право всем пользователям, укажите описатель PUBLIC вместо списка пользователей. Описанное таким образом право дает привилегии только пользователям, но не объектам БД.
Привилегии могут быть аннулированы с помощью оператора REVOKE. Если право было дано с использованием ALL, то с тем же описателем оно и должно удаляться. Если право было дано PUBLIC, то и отнять его можно только у PUBLIC.
Примеры: Следующий оператор дает право SELECT и DELETE пользователю CHLOE на таблицу COUNTRY. Описатель WITH GRANT OPTION дает пользователю право давать привилегии другим пользователям.
GRANT SELECT, DELETE ON COUNTRY TO CHLOE WITH GRANT OPTION;
Следующий оператор встроенного SQL дает право SELECT и UPDATE процедуре с именем GET_EMP_PROJ на таблицу JOB:
EXEC SQL
GRANT SELECT, UPDATE ON JOB TO PROCEDURE GET_EMP_PROJ;
Следующий оператор встроенного SQL дает право EXECUTE процедуре ADD_EMP_PROJ и пользователю LUIS
EXEC SQL
GRANT EXECUTE ON PROCEDURE GET_EMP_PROJ
TO PROCEDURE ADD_EMP_PROJ, LUIS;
Следующий пример создает роль с именем “administrator”, дает ей право UPDATE на таблицу table1, затем назначает роль пользователям user1, user2, и user3.
CREATE ROLE administrator;
GRANT UPDATE ON table1 TO administrator;
GRANT administrator TO user1, user2, user3;
REVOKE
Аннулирует привилегии пользователя на указанные объекты БД
REVOKE [GRANT OPTION FOR] < privileges> ON [TABLE]
{ tablename | viewname}
FROM { <object> | <userlist> | < rolelist> | GROUP UNIX_group}
| EXECUTE ON PROCEDURE procname FROM { <object> | <userlist>}
| < role_granted> FROM {PUBLIC | < role_grantee_list>}};
< privileges> = {ALL [PRIVILEGES] | < privilege_list>}
<privilege_list> = {
SELECT
| DELETE
| INSERT
| UPDATE [(col [, col …])]
| REFERENCES [(col [, col …])]
[, < privilege_list> …]}}
<object> ={
PROCEDURE procname
| TRIGGER trigname
| VIEW viewname
| PUBLIC
[, <object>]}
<userlist> = [USER] username [, [USER] username …]
< rolelist> = rolename [, rolename]
< role_granted> = rolename [, rolename …]
<role_grantee_list> = [USER] username [, [USER] username …]
Описание аргументов
privilege_list | Имена отменяемых привилегий; допустимые значения - SELECT, DELETE, INSERT, UPDATE, and REFERENCES |
GRANT OPTION FOR | Отменяет право назначать привилегии, указанные в REVOKE, не может быть применен к объекту |
Col | Столбец, право на который отменяется |
tablename | Имя существующей таблицы, право на которую отменяется |
viewname | Имя существующего представления (view), право на которое отменяется |
GROUP unix_group | На ОС UNIX, имя группы, определенное в /etc/group |
Object | Имя существующего объекта БД |
Userlist | Пользователь из isc4.gdbили имя роли, созданной оператором CREATE ROLE |
rolename | Существующая роль, созданная оператором CREATE ROLE. |
role_grantee_list | Список пользователей, которым дается право на rolename; учетные записи пользователей должны существовать в isc4.gdb |
Описание: REVOKE отменяет право пользователя или объекта БД.
Привилегия | Отменяемые действия |
ALL | Выполнять SELECT, DELETE, INSERT, UPDATE, and REFERENCES |
SELECT | Получать строки из таблицы или представления |
DELETE | Удалять строки из таблицы или представления |
INSERT | Добавлять новые строки в таблицы или представления |
UPDATE | Изменять текущие значения в определенных столбцах таблиц или представлений; можно указать подмножество столбцов, в которых позволяются изменения. |
EXECUTE | Выполнять хранимую процедуру |
REFERENCES | Ссылаться на указанные столбцы с помощью внешнего ключа. Если данное право назначается, то разрешение должно выдаваться, как минимум, на столбцы первичного ключа. |
GRANT OPTION FOR отменяет право пользователя давать права другим пользователям.
Для REVOKE существуют следующие ограничения:
Право может отобрать тот пользователь, который его дал.
Один пользователь может назначить права многим другим пользователям. Отмена права первого пользователя повлияет только на него, т.е. пользователи, получившие право от данного пользователя не изменят своих прав.
Право, данное PUBLIC, может быть отнято только у PUBLIC.
Если у пользователя А отбирают роль, все привилегии, розданные пользователем А другим пользователям благодаря праву назначать привилегии роли также отменяются.
Примеры: оператор отбирает право SELECT пользователя MIREILLE на таблицу COUNTRY:
REVOKE SELECT ON COUNTRY FROM MIREILLE;
Оператор отбирает право EXECUTE на процедуру GET_EMP_PROJ у процедуры ADD_EMP_PROJ и пользователя LUIS:
REVOKE EXECUTE ON PROCEDURE GET_EMP_PROJ
FROM PROCEDURE ADD_EMP_PROJ, LUIS;
Дата публикования: 2015-01-13; Прочитано: 189 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!