П. Г. Демидова А. В. Зафиевский А. А. Короткин А. Н. Лататуев Базы данных Учебное пособие


 Многопользовательские возможности SQL


Download 1.32 Mb.
Pdf ko'rish
bet47/94
Sana15.06.2023
Hajmi1.32 Mb.
#1487605
1   ...   43   44   45   46   47   48   49   50   ...   94
Bog'liq
Базы данных

3.11. Многопользовательские возможности SQL 
Как мы уже отмечали, основным предназначением баз дан-
ных является коллективная обработка хранимой информации. 
При этом различным категориям пользователей требуются раз-
ные ее подмножества и разные возможности по обработке этой 
информации. Язык SQL содержит типовые средства для реализа-
ции такого разграничения пользователей и их прав по отношению 
к обработке информации. 
Ключевыми понятиями здесь являются пользователь, объек-
ты и права (или привилегии) по отношению к этим объектам. 
Можно сказать, что с точки зрения системы пользователь – это 
совокупность прав по отношению ко всевозможным объектам 
системы. 
Обычно для создания пользователя в системе используется 
команда 
CREATE USER
, которая назначает пользователю имя и 
дополнительные характеристики (пароль, начальные права и 
т. д.). В дальнейшем права могут назначаться и изыматься с 
помощью команд 
GRANT
(назначение) и 
REVOKE
(изъятие). 
Формат этих команд следующий: 
GRANT <права> ON <объект> 
TO {<имя пользователя> | PUBLIC} 
REVOKE <права> ON <объект> 
FROM {<имя пользователя> | PUBLIC} 
Мы рассмотрим простейший вариант этих команд, когда в ка-
честве объектов могут выступать либо реальные, либо виртуаль-
ные таблицы (представления). В этом случае пользователю могут 
быть в любой комбинации предоставлены (назначены) права на 
просмотр таблиц (
SELECT
), добавление строк (
INSERT
), удаление 
строк (
DELETE
) и изменение строк (
UPDATE
). Соответствующие 
ключевые слова перечисляются через запятую после имени 
оператора назначения или изъятия прав. Если набор прав 
включает все четыре возможности, можно использовать вариант 
ALL PRIVILEGES
. При этом права могут предоставляться двумя 
способами: либо безадресно (всем пользователям) – с использо-
ванием ключевого слова PUBLIC, либо с указанием имени кон-
кретного пользователя. При этом указанные способы действуют 
независимо: если пользователю были персонально назначены 
какие-либо права, а затем выдана команда на изъятие таких прав, 


80 
назначенных безадресно, то права пользователя, персонально ему 
назначенные, у него останутся. 
Приведем примеры использования команд 
GRANT
и 
REVOKE

GRANT SELECT,INSERT,DELETE,UPDATE ON Table1 TO PUBLIC 
GRANT ALL PRIVILEGES ON Table1 TO Ivanov 
REVOKE DELETE,UPDATE ON Table1 FROM Ivanov 
REVOKE INSERT,DELETE,UPDATE ON Table1 FROM PUBLIC 
Первая команда разрешает любому пользователю выполнять 
все возможные операции с таблицей Table1. Вторая делает то же 
самое, но уже применительно к конкретному пользователю 
Ivanov. Третья команда оставляет этому пользователю права 
только на добавление строк и просмотр таблицы. Наконец, 
четвертая команда оставляет всем пользователям лишь 
возможность просмотра таблицы, однако право на добавление 
строк у конкретного пользователя Ivanov остается. 
Отдельно следует остановиться на управлении правами 
доступа применительно к представлениям. Наиболее интересен 
здесь вариант обновляемого представления. В этом случае можно 
предоставить пользователю право, например, просмотра всей ба-
зовой таблицы, а для представления, охватывающего лишь часть 
столбцов и строк, относящихся к этому пользователю, предоста-
вить ему право изменения содержащейся в этой части информа-
ции. Тем самым мы получаем возможность управления правами 
пользователей по отношению не только к целым таблицам, но и к 
их частям. 
В заключение рассмотрим наиболее часто используемое рас-
ширение команд управления пользователями. Речь идет о группо-
вом управлении правами. Если количество обслуживаемых систе-
мой пользователей велико, то обычно их можно разбить на груп-
пы, которым следует назначить одинаковые права. В этом случае 
в систему управления правами вводится еще одно понятие – 
группы пользователей (в другой терминологии – роли), и дей-
ствия по назначению-изъятию прав могут производиться приме-
нительно к группе. Для предоставления пользователю прав, ко-
торые назначены группе, достаточно включить пользователя в 
эту группу. Тем самым появляется третий способ назначения 
прав, причем все три способа действуют независимо друг от 
друга, так что пользователь может иметь один набор прав, предо-
ставленный ему как неопределенному (
PUBLIC
) пользователю, 


81 
другой – назначенный ему персонально и третий – полученный 
им в составе группы. Описанный механизм значительно повы-
шает гибкость системы управления правами пользователей. 

Download 1.32 Mb.

Do'stlaringiz bilan baham:
1   ...   43   44   45   46   47   48   49   50   ...   94




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling