Предоставление полномочий пользователям — КиберПедия 

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

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

2020-06-02 196
Предоставление полномочий пользователям 0.00 из 5.00 0 оценок
Заказать работу

В силу своего положения администратор базы данных имеет все полномочия на все ее объекты. Но, в конце концов, владелец объекта имеет на него все полномочия, а база данных сама является объектом. Ни у кого из пользователей не будет полномочий, относящихся к какому-либо объекту, если только их ему специально не предоставит тот, у которого эти полномочия уже есть (а также право их передавать). Предоставлять полномочия кому-либо другому вы можете с помощью оператора GRANT (предоставить). У этого оператора следующий синтаксис:

GRANT СПИСОК-ПОЛНОМОЧИЙON объектТО список-пользователей[WITH GRANT OPTION];

Предложение WITH GRANT OPTION означает "предоставляющий полномочия"; список полномочий в операторе GRANT определяется следующим образом:

ПОЛНОМОЧИЯ [, ПОЛНОМОЧИЯ]…

…или:

ALL PRIVILEGES

В свою очередь, вот как здесь определяются полномочия:

SELECT| DELETE| INSERT [(имя-столбца[, имя-столбца]…) ]| UPDATE [(имя-столбца[, имя-столбца]…)]|REFERENCES [(имя-столбца[, имя-столбца]…)]| USAGE| UNDER| TRIGGER| EXECUTE

А объект в операторе GRANT определяется таким способом:

[TABLE] <имя таблицы>|DOMAIN <имя домена>| COLLATION <имя сопоставления>| CHARACTER SET <имя символьного набора>|TRANSLATION <имя трансляции>| ТYРЕ <схематмчески обозначенный определенный пользователем тип>|SEQUENCE <имя генератора последовательности спецификатор указателя шаблона>

И наконец, список пользователей в операторе определяется следующим образом:

регистрационное-имя [, регистрационное-имя]…| PUBLIC

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

Роли

Одним из типов идентификатора подтверждения полномочий, причем не единственным, является имя пользователя. Это имя удостоверяет пользователя или программу, имеющих полномочия на выполнение с базой данных одной или множества операций. Если в большой организации с большим числом пользователей предоставлять полномочия отдельно каждому сотруднику, то такая операция может занять очень много времени. В стандарте SQL:2OO3 есть понятие роли. Оно-то и помогает решить эту проблему.

Роль, определяемая именем, – это набор полномочий, предоставляемый совокупности пользователей, которым нужен одинаковый уровень доступа к базе данных. Например, одинаковые полномочия должны быть у всех пользователей, имеющих роль SecurityGuard (означает "охранник"). Эти полномочия, скорее всего, должны отличаться от тех, что предоставляются пользователям, имеющим роль SalesClerk ("торговый служащий").

Помни:
Так как в основном стандарте SQL:2OO3 ролей нет, то в некоторых реализациях их также может не быть. Перед тем как пытаться использовать роли, проверьте документацию конкретной СУБД
.

Для создания роли можно использовать примерно такой синтаксис:

CREATE ROLE SalesClerk;

После того как роль создана, вы можете назначить ее тому или иному пользователю с помощью оператора GRANT:

GRANT SalesClerk to Becky;

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

Вставка данных

Ниже приведен пример предоставления полномочий на вставку данных в таблицу:

GRANT INSERTON CUSTOMERTO SalesClerk;

Эти полномочия позволяют служащему из отдела продаж добавлять в таблицу CUSTOMER (клиент) новые записи.

Просмотр данных

А вот пример предоставления полномочий просмотра:

GRANT SELECTON PRODUCTTO PUBLIC;

Эти полномочия позволяют пользователям системы просматривать содержимое таблицы PRODUCT (товар).

Внимание:
Этот оператор может быть по-настоящему опасным. В столбцах таблицы PRODUCT – например, таких как CostOfGoods (стоимость товаров), – может храниться информация, не предназначенная для всеобщего обозрения. И чтобы предоставить доступ к большей части информации, скрывая при этом важные данные, определите на основе таблицы представление, в котором не будет столбцов с конфиденциальной информацией. Затем предоставляйте полномочия SELECT не на саму таблицу, а на ее представление. Синтаксис
этой процедуры приведен ниже.

CREATE VIEW MERCHANDISE ASSELECT Model, ProdName, ProdDesc, ListPriceFROM PRODUCT;GRANT SELECTON MERCHANDISETO PUBLIC;

Пользуясь лишь представлением MERCHANDISE (товары), рядовой пользователь не сможет увидеть CostOfGoods или любой другой столбец из таблицы PRODUCT, за исключением тех четырех, которые перечислены в операторе CREATE VIEW. Это столбцы Model (модель), ProdName (название товара), ProdDesc (описание товара), ListPrice (цена по прейскуранту).


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

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

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

Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.01 с.