Чтение онлайн

на главную - закладки

Жанры

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Борри Хелен

Шрифт:

Естественно изменяемые просмотры также требуют полномочий SELECT, INSERT, UPDATE и DELETE к базовым таблицам. Если просмотры только для чтения становятся изменяемыми с помощью триггеров, то триггерам нужны полномочия к базовым таблицам в соответствии с операциями, определенными в событиях триггера.

! ! !

ПРИМЕЧАНИЕ. Для создания просмотра необходимо иметь полномочия SELECT К базовым таблицам. В тех редких случаях, когда любая из этих.привилегий SELECT отменяется после создания просмотра, она должна быть добавлена для самого просмотра или для пользователей этого просмотра.

. ! .

EXECUTE

может применяться только для хранимых процедур. Роли никогда не предоставляются "для" какого-либо объекта.

Пользователи

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

* Роли в качестве пользователей: когда роли назначены привилегии, она становится пользователем. Когда роль получает требуемые привилегии к объектам, она изменяет свой статус и становится привилегией, которая может быть предоставлена некоторым другим типам пользователей. Когда происходит подключение к базе данных под этой ролью, такие пользователи получают все привилегии, которые были предоставлены этой роли.

* Просмотры в качестве пользователей: просмотрам нужны полномочия для доступа к таблицам, другим просмотрам и к хранимым процедурам.

* Процедуры и триггеры в качестве пользователей: хранимой процедуре, которая обращается к таблицам и просмотрам и выполняет другие процедуры, нужны полномочия к этим объектам. Триггеру, который выполняет процедуры, нужны к ним полномочия, а также к любым таблицам и просмотрам, к которым он обращается, отличным от той таблицы, которой он принадлежит.

Специальные пользователи

Пользователь SYSDBA имеет особые права ко всем базам данных и их объектам, независимо от того, какой пользователь ими владеет [137] . Более того, в операционных системах, где реализована концепция Суперпользователя, - пользователь с привилегиями root или locksmith, - такой пользователь также имеет полный доступ и деструктивные права ко всем базам данных и их объектам, если он соединяется под этим идентификатором. Подробности см. в разд. "Слабое место POSIX" главы 34.

137

Сервер просто не проверяет никакие права доступа для пользователя SYSDBA. В частности, поэтому операции над множеством объектов в SQL производятся от имени SYSDBA чуть быстрее, чем от имени других пользователей.
– Прим. науч. ред.

Вначале создатель объекта, его владелец, является единственным пользователем, кроме SYSDBA и Суперпользователя, который имеет доступ к этому объекту (таблице, просмотру, хранимой процедуре или роли) и может позволять получать к нему доступ другим пользователям. Любой пользователь затем может запустить "цепочку" полномочий, предоставляя другим пользователям права назначать привилегии. Такое право может передаваться добавлением предложения WITH GRANT OPTION К полномочиям.

Похожим образом SYSDBA или владелец роли может уточнять привилегию роли, передавая ее пользователю

как WITH ADMIN OPTION. При этом предполагается, что пользователь, который подключается с этой ролью, не наследует от роли права WITH GRANT OPTION. Подробности этого далее.

Пользователь PUBLIC

PUBLIC является пользователем, который обозначает всех пользователей в базе данных безопасности. Он не включает в себя хранимые процедуры, триггеры, просмотры или роли.

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

Встроенные серверы

Настоятельно рекомендуется, чтобы базы данных, предназначенные для использования во встроенном сервере, были жестко защищены полномочиями. Пользователь встроенного сервера под Windows намеренно не идентифицируется, следовательно, не существует базы данных безопасности! Коль скоро не выполняется проверка пользователей по операторам GRANT, ТО операторы полномочий могут быть применены к "фальшивому пользователю" (т. е. вымышленное имя, которое использует ваше приложение для соединения с базой данных через встроенный сервер).

Предоставление привилегий

Привилегии доступа могут быть предоставлены к целой таблице или просмотру. Можно также ограничить привилегии UPDATE и REFERENCES указанными столбцами.

Оператор GRANT используется для предоставления пользователю, роли или хранимой процедуре конкретной привилегии к объекту. Общий синтаксис для предоставления привилегий к объектам:

GRANT <привилегии>

ON [TABLE] <таблица> | <просмотр> [ <объект> \ <опустить предложение ON> ТО <типичный-пользователь>

[{WITH GRANT OPTION} | {WITH ADMIN OPTION}];

<привилегии> = <привилегия> | <список-привилегий> | <имя-роли> ( ALL

<привилегия> = INSERT | DELETE | UPDATE [(столбец [, столбец [,..]] ) ]

| REFERENCES [(столбец [, столбец [,..]] ) ] | EXECUTE

<список-привилегий> = [, привилегия [, <список-привилегий> [,...]]]

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

<объект> = <хранимая-процедура> | <роль-с-привилегиями>

<типичный-пользователь> - <пользователь> | PUBLIC |

<список-пользователей> | <UNIX-пользователь> |

GROUP <UNIX-rpynna> | <пользователь-объект>

<список-пользователей> = <пользователь>,

{<пользователь> | <список-пользователей>}

<пользователь-объект> - <роль> | <триггер> | <хранимая-процедура>

Здесь пользователь- обычно пользователь, определенный в таблице USERS В базе данных безопасности Firebird. Во всех сетях клиент-сервер в POSIX это также может быть учетная запись пользователя, которая находится в /etc/password на серверной и клиентской машине, или группа UNIX, находящаяся на обеих машинах в /etc/group. Для баз данных, используемых во встроенном сервере под Windows, допустим "фальшивый пользователь" (известный приложению).

Поделиться:
Популярные книги

Очкарик 2

Афанасьев Семен
2. Очкарик
Фантастика:
фэнтези
альтернативная история
5.00
рейтинг книги
Очкарик 2

Под крылом ворона

Шебалин Дмитрий Васильевич
3. Чужие интересы
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Под крылом ворона

Отмороженный 9.0

Гарцевич Евгений Александрович
9. Отмороженный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Отмороженный 9.0

На границе империй. Том 4

INDIGO
4. Фортуна дама переменчивая
Фантастика:
космическая фантастика
6.00
рейтинг книги
На границе империй. Том 4

Белые погоны

Лисина Александра
3. Гибрид
Фантастика:
фэнтези
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Белые погоны

Последний Герой. Том 1

Дамиров Рафаэль
1. Последний герой
Фантастика:
попаданцы
альтернативная история
фантастика: прочее
5.00
рейтинг книги
Последний Герой. Том 1

Мертвое наследие

Шебалин Дмитрий Васильевич
6. Чужие интересы
Фантастика:
попаданцы
фэнтези
фантастика: прочее
5.00
рейтинг книги
Мертвое наследие

Гарем на шагоходе. Том 1

Гремлинов Гриша
1. Волк и его волчицы
Фантастика:
боевая фантастика
юмористическая фантастика
попаданцы
5.00
рейтинг книги
Гарем на шагоходе. Том 1

Столичный доктор. Том VIII

Вязовский Алексей
8. Столичный доктор
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Столичный доктор. Том VIII

Я граф. Книга XII

Дрейк Сириус
12. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я граф. Книга XII

Неудержимый. Книга XXIX

Боярский Андрей
29. Неудержимый
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Неудержимый. Книга XXIX

Мастер 8

Чащин Валерий
8. Мастер
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Мастер 8

Очкарик

Афанасьев Семён
Фантастика:
фэнтези
5.75
рейтинг книги
Очкарик

Я – Стрела. Трилогия

Суббота Светлана
Я - Стрела
Любовные романы:
любовно-фантастические романы
эро литература
6.82
рейтинг книги
Я – Стрела. Трилогия