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

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

Привилегии доступа могут быть предоставлены к целой таблице или просмотру. Можно также ограничить привилегии 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, допустим "фальшивый пользователь" (известный приложению).

Следующий оператор предоставляет некоторые привилегии к таблице DEPARTMENTS пользователю CHALKY:

GRANT SELECT, UPDATE, INSERT, DELETE ON DEPARTMENTS TO CHALKY;

Права UPDATE к столбцам

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

В следующем операторе все пользователи будут иметь полномочия на изменение для таблицы CUSTOMER, однако они смогут изменять только столбцы CONTACT FIRST,

CONTACT_LAST и PHONE_NO:

GRANT UPDATE (CONTACT_FIRST, CONTACT_LAST, PHONE_NO) ON CUSTOMER TO PUBLIC;

* Когда при предоставлении привилегии UPDATE используется список столбцов, множество полномочий сохраняется в системной таблице RDB$USER_PRIVILEGES, по одному для каждого столбца. Права могут предоставляться или отменяться для каждого столбца индивидуально[138].

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

Спасибо правилам привилегий SQL - "самая забавная штука от Marx Brothers", по словам коллеги - можно предоставлять как на уровне столбца, так и на уровне таблицы привилегии UPDATE и REFERENCES одному и тому же пользователю. Это может привести к путанице, если права пользователя на уровне столбца UPDATE или REFERENCES отменяются, а те же полномочия пользователя на уровне таблицы сохраняются.

Просмотры предоставляют элегантный способ ограничения доступа к таблицам, ограничивая столбцы и/или строки, которые видимы пользователю, позволяя при этом выполнить любые настройки. Эта тема обсуждалась в главе 24.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

36. Предпочитайте предоставление абстрактных интерфейсов

Из книги автора

36. Предпочитайте предоставление абстрактных интерфейсов РезюмеВы любите абстракционизм? Абстрактные интерфейсы помогают вам сосредоточиться на проблемах правильного абстрагирования, не вдаваясь в детали реализации или управления состояниями. Предпочтительно


5.2. Система привилегий доступа

Из книги автора

5.2. Система привилегий доступа Данный раздел посвящается второму этапу контроля доступа пользователей – проверке привилегий доступа при выполнении каждой операции в базе данных.Вы узнаете, какие привилегии предусмотрены в MySQL и как предоставить их пользователям.Общие


5.1. Сохраненные подпрограммы и таблицы предоставления привилегий

Из книги автора

5.1. Сохраненные подпрограммы и таблицы предоставления привилегий Сохраненные подпрограммы требуют таблицы proc в базе данных mysql. Эта таблица создана в течение процедуры установки MySQL 5.0. Если Вы наращиваете вычислительные возможности до MySQL 5.0 из более ранней версии,


1.10. Предоставление возможностей совместного использования информации с применением UIActivityViewController

Из книги автора

1.10. Предоставление возможностей совместного использования информации с применением UIActivityViewController Постановка задачи Внутри вашего приложения вы хотите предоставить пользователям возможность обмениваться контентом с их друзьями. Для этого предполагается использовать


1.11. Предоставление специальных возможностей совместного использования данных с применением UIActivityViewController

Из книги автора

1.11. Предоставление специальных возможностей совместного использования данных с применением UIActivityViewController Постановка задачи Вы хотите включить вашу программу в список тех приложений, которые способны обеспечивать в iOS совместную работу с данными и отображать эту


Упаковка привилегий

Из книги автора

Упаковка привилегий SQL Firebird реализует возможности упаковки множества привилегий для назначения индивидуальным получателям, спискам или специально сгруппированным пользователям. Это пакет ALL, разделенные запятыми списки и роли SQL.Ключевое слово ALLКлючевое слово ALL


Ограничения привилегий

Из книги автора

Ограничения привилегий Привилегии SELECT, INSERT, UPDATE и DELETE применимы только к объектам, являющимся таблицами или просмотрами, REFERENCES применяется только к таблицам - точнее к тем, на которые ссылаются внешние ключи.В случае просмотров пользователь должен иметь привилегии к


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

Из книги автора

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


Множество привилегий и множество получателей привилегий

Из книги автора

Множество привилегий и множество получателей привилегий Есть возможность предоставлять несколько привилегий в одном операторе и предоставлять одну или более привилегий множеству пользователей или объектов.Множество привилегийДля предоставления получателю


Назначение привилегий роли

Из книги автора

Назначение привилегий роли Для "загрузки" роли привилегиями просто предоставьте ей требуемые привилегии, как если бы роль была обычным пользователем:GRANT <привилегии> ТО


Предоставление роли пользователям

Из книги автора

Предоставление роли пользователям В операторе GRANT для предоставления роли пользователям опускается предложение ON- здесь неявно используются полномочия, "загруженные" в роль.GRANT <имя-роли> [, <имя-роли> [, ...]]TO [DSER] <имя-пользователя> [, [OSER] <имя-пользователя> [, ...]]


Отмена привилегий у нескольких пользователей

Из книги автора

Отмена привилегий у нескольких пользователей Теперь мы рассмотрим как получатели привилегий, указанные в предложении FROM оператора REVOKE, могут быть объединены для отмены привилегий.Список пользователейИспользуйте разделенный запятыми список пользователей для отмены


Предоставление другим пользователям прав суперпользователя

Из книги автора

Предоставление другим пользователям прав суперпользователя Меня нередко просят предоставить обычным пользователям право выполнять привилегированные операции, разрешенные только администратору. Это может быть опасно, и здесь требуется большая осторожность.В UNIX/Linux