Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Connect




REVOKE

GRANT

Описание аргументов

DROP ROLE

Описание аргументов

CREATE ROLE

Команды SQL для реализации разграничения доступа

Основные положения

ЛАБОРАТОРНАЯ РАБОТА N2

Контрольные вопросы.

 

 

“Разграничение доступа к ИС.”

1 Цель работы:

 

Исследовать способы ограничения доступа пользователей к информации в СУБД Interbase.

Создает роль.

Синтаксис: CREATE ROLE rolename;

Описание: Ролям, созданным с помощью CREATE ROLE могут назначаться привилегии (права на данные). Роли могут быть назначены пользователям, после чего пользователь имеет тот же список прав, что и роль. Роль пользователя указывается при соединении. Оператор GRANT используется для назначения привилегий (ALL, SELECT, INSERT, UPDATE, DELETE, EXECUTE, REFERENCES) роли и для назначения роли пользователю. Оператор REVOKE отменяет действие оператора GRANT.

Пример: следующий оператор создает роль с именем “administrator”

CREATE ROLE administrator;

rolename Имя роли; должно быть уникальным среди других имен ролей в БД.

Удаляет роль из БД.

Синтаксис DROP ROLE rolename;

Описание: Оператор DROP ROLE удаляет роль созданную оператором CREATE ROLE. Все привилегии, назначенные роли теряются. Роль может быть удалена создателем роли, пользователем SYSDBA, или пользователем с правами root.

 

rolename Имя существующей роли

 

Пример: следующий оператор удаляет роль:

DROP ROLE administrator;

Дает пользователю права на указанные объекты БД.

Синтаксис:

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 [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;

Выполняет соединение с одной или несколькими БД. Доступен в 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]]

 




Поделиться с друзьями:


Дата добавления: 2015-01-03; Просмотров: 292; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.