Изменения

Перейти к: навигация, поиск

Управление доступом к данным

19 байт убрано, 03:02, 24 декабря 2021
м
Удаление прав: cosmetics
<font color=blue>on <font color=red>{<font color=blue>table<font color=grey>|<font color=blue>database<font color=grey>|<font color=blue>view<font color=grey>|<font color=blue>procedure<font color=grey>|<font color=blue>function<font color=grey>|<font color=red>…} имя</font>
<font color=blue>to <font color=red>{пользователь<font color=grey>|<font color=blue>group <font color=red>группа<font color=grey>|<font color=blue>public<font color=red>}</font>
<font color=red>[<font color=blue>with grant option<font color=red>]<font color=greenblack> --  Можно добавить возможность наделять этим правом других пользователей и группс помощью опции: <font color=red>[<font color=blue>with grant option<font color=red>]<font color=black>
=== Примеры ===
<font color=green> -- Выдача всех прав на таблицу товаров группе менеджеров</font> <font color=green> -- с возможностью наделения этим правом</font>: <font color=blue>grant all priviledges on <font color=black>Items</font> <font color=blue> to group <font color=black>ShopManagers <font color=blue>with grant option<font color=grey>;<font color=black>
<font color=green> -- Выдача публичного права на выборку из таблицы товаров</font>:
<font color=blue>grant select on <font color=black>Items <font color=blue>to public<font color=grey>;<font color=black>
== Удаление прав ==
<font color=blue>revoke</font>
<font color=red>[<font color=blue>grant option for<font color=red>]<font color=green> -- забрать не само право, а возможность его делегирования</font>
<font color=red>{<font color=blue>select<font color=grey>|<font color=blue>insert<font color=grey>|<font color=blue>update<font color=grey>|<font color=blue>delete<font color=grey>|<font color=blue>create</font>
<font color=grey> |<font color=blue>execute<font color=grey>|<font color=blue>trigger<font color=grey>|<font color=blue>usage<font color=grey>|<font color=red>…<font color=grey>|<font color=blue>all priviledges<font color=red>}</font>
<font color=blue>on <font color=red>{<font color=blue>table<font color=grey>|<font color=blue>database<font color=grey>|<font color=blue>view<font color=grey>|<font color=blue>procedure<font color=grey>|<font color=blue>function<font color=grey>|<font color=red>…} имя</font>
<font color=blue>from <font color=red>{пользователь<font color=grey>|<font color=blue>group <font color=red>группа<font color=grey>|<font color=blue>public<font color=red>}</font>
<font color=red>[<font color=blue>cascade<font color=grey>|<font color=blue>restrict<font color=red>]<font color=greenblack> -- если тот Если группа или пользователь, у кого для которого удаляется право забирается, наделил им кого-то еще,необходимо указать, каким образом следует отзывать право у всех его получивших:* </fontcode> cascade<font color=green/code> -- cascade также забирает право у всей цепочки получивших,;* <code>restrict</fontcode>выдаст ошибку, если право было делегировано;Для указания метода, следует использовать опцию: <font color=greenred>[<font color=blue>cascade<font color=grey>|<font color=blue> -- restrict выдаст ошибку, если право было делегировано<font color=blackred> ]<font color=greenblack> -- аналогично  Для того, как и про чтобы отозвать не само право, так и про а возможность его делегацииделегировать, следует использовать опцию: <font color=red>[<font color=blue>grant option for<font color=red>]<font color=black>
=== Примеры ===
<font color=green> -- Удалить у группы менеджеров право вставки в таблицу товаров</font> <font color=green> -- с отзывом этого права у всех, кто получил его по цепочке от менеджеров</font>: <font color=blue>revoke insert on <font color=black>Items</font> <font color=blue> from group <font color=black>ShopManagers <font color=blue>cascade<font color=grey>;<font color=black>
<font color=green> -- Удалить публичное право обновления таблицы товаров</font>:
<font color=blue>revoke update on <font color=black>Items <font color=blue>from public<font color=grey>;<font color=black>
=== Пример ===
<font color=green>-- Создать представление, состоящее только из товаров из отдела мебели</font>:
<font color=blue>create view <font color=black>FurnitureItems <font color=blue>as</font>
<font color=blue>select <font color=gray>* <font color=blue>from <font color=black>Items</font>
<font color=blue>where <font color=black>GId ItemId <font color=blue>in</font>
<font color=gray>(<font color=blue>select <font color=black>DId <font color=blue>from <font color=black>Departments <font color=blue>where <font color=black>DId <font color=gray>= <font color=green>'Furniture'<font color=gray>)<font color=black>
<font color=green>-- Выдать все права на это представление менеджеру отдела мебели</font>: <font color=blue>grant all priviledges on <font color=black>FurnitureItems <font color=blue>to <font color=black>FurnitureManager <font color=gray>;<font color=black>
== Спроецированная таблица ==
=== Пример ===
<font color=green>-- Создать представление, состоящее только из артикулов, наименований и цветов товаров</font>(без данных о расположении на складе, поставщике, сертификации и тд):
<font color=blue>create view <font color=black>PublicItems <font color=blue>as</font>
<font color=blue>select <font color=black>ItemId<font color=gray>, <font color=black>Name<font color=gray>, <font color=black>Color <font color=green>-- без данных о расположении на складе, поставщике, сертификации и тд</font>
<font color=blue>from <font color=black>Items
<font color=green>-- Выдать публичное право выборки для созданного представления</font>:
<font color=blue>grant select on <font color=black>PublicItems <font color=blue>to <font color=black>public<font color=grey>;<font color=black>
=== Пример ===
<font color=green>-- Создать представление, позволяющее смотреть только на средние баллы студентов,</font> <font color=green>-- а не на конкретные значения по предметам</font>:
<font color=blue>create view <font color=black>StudentPoints <font color=blue>as</font>
<font color=blue>select <font color=black>SId<font color=grey>, <font color=black>avg<font color=grey>(<font color=black>points<font color=grey>)</font>
<font color=blue>from <font color=black>Students <font color=blue>natural join <font color=black>Marks
<font color=green>-- Выдать публичное право выборки на созданное представление</font>:
<font color=blue>grant select on <font color=black>StudentPoints <font color=blue>to public<font color=grey>;<font color=black><font color=black>
436
правок

Навигация