Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AIS 1-2 final.doc
Скачиваний:
1
Добавлен:
04.11.2018
Размер:
1.17 Mб
Скачать

Следующий оператор 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 находится в таблице 7.

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 …]

Таблица 7Описание аргументов REVOKE

privilege_list

Имена отменяемых привилегий; допустимые значения SELECT, DELETE, INSERT, UPDATE, REFERENCES (подробное описание см. в таблице 8).

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

Таблица 8 – Привилегии и отменяемые командой REVOKE действия.

Привилегия

Отменяемые действия

ALL

Выполнять SELECT, DELETE, INSERT, UPDATE и REFERENCES

SELECT

Получать строки из таблицы или представления

DELETE

Удалять строки из таблицы или представления

INSERT

Добавлять новые строки в таблицы или представления

UPDATE

Изменять текущие значения в определенных столбцах таблиц или представлений; можно указать подмножество столбцов, в которых позволяются изменения.

EXECUTE

Выполнять хранимую процедуру

REFERENCES

Ссылаться на указанные столбцы с помощью внешнего ключа. Если данное право назначается, то разрешение должно выдаваться, как минимум, на столбцы первичного ключа.

GRANT OPTION FOR отменяет право пользователя давать права другим пользователям.

Для REVOKE существуют следующие ограничения:

  • право может отобрать тот пользователь, который его дал;

  • один пользователь может назначить права многим другим пользователям; отмена права первого пользователя повлияет только на него, т.е. пользователи, получившие право от данного пользователя, не изменят своих прав;

  • право, данное PUBLIC, может быть отнято только у PUBLIC.

Если у пользователя user1 отбирают роль, то все привилегии, розданные пользователем user1 другим пользователям благодаря праву назначать привилегии для роли, также отменяются.

Примеры:

Оператор отбирает право 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;

CONNECT

Выполняет соединение с одной или несколькими БД. Оператор доступен в SQL. Подмножество оператора CONNECT доступно в isql.

Синтаксис, используемый в isql:

CONNECT ’filespec’ [USER ’username’][PASSWORD ’password’]

[CACHE int] [ROLE ’rolename’]

Синтаксис, используемый в SQL:

CONNECT [TO] {ALL | DEFAULT} < config_opts>

| < db_specs> < config_opts> [, < db_specs> < config_opts>…];

< db_specs> = dbhandle

| {’ filespec’ | : variable} AS dbhandle

< config_opts> = [USER {’ username’ | : variable}]

[PASSWORD {’ password’ | : variable}]

[ROLE {’ rolename’ | : variable}]

[CACHE int [BUFFERS]]

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]