ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 02.04.2021
Просмотров: 1544
Скачиваний: 4
6.
О пр еделен и е
пр а в
до ступа
по льзо ва телей
к
да н н ы м
6.1.
П ол ь з оват ел и
и
привил егии
К а жд ый
,
кто
имеет
д оступ
к
ба з е
д а нных
,
на з ыв а ется
по льзо ва т елем
.
SQL
исп ользуется
обыч но
в
многоп ользов а тельских
сред а х
,
которые
требуют
раз гранич ения
п ра в
п ользов а телей
с
точ ки
з рения
д оступ а
к
д а нным
и
п рав
на
в ып олнение
с
ними
тех
или
иных
ма нип уляций
.
Д ля
э тих
целей
в
SQL
реа лиз ов а ны
сред ств а
,
п оз в оляющ ие
уста на в лив а ть
и
контролиров а ть
п рив илегии
п ользов а телей
ба з ы
д а нных
.
К а жд ый
п ользов а тел ь
в
сред е
SQL
имеет
сп ециа льное
имя
или
ид ентифика тор
,
с
п омощ ью
которого
осущ еств ляется
ид ентифика ция
п ользов а теля
д ля
уста нов ки
и
оп ред еления
его
п ра в
с
точ ки
з рения
д оступ а
к
д а нным
.
К а жд а я
п осла нна я
к
СУ Б Д
кома нд а
SQL-
з а п р оса
а ссоциируется
СУ Б Д
с
ид ентифика тором
д оступ а
к
д а нным
конкретного
п ользов а теля
.
Пользов а тель
оп ред ел яется
с
п омощ ью
след ующ ей
кома нд ы
.
CREATE USER
<
и м я
_
по льзо ва т еля
>
IDENTIFIED BY
<
па р о ль
>
После
в ып олнения
э той
кома нд ы
п ользов а тель
ста нов ится
из в естен
ба з е
д а нных
,
но
п ока
не
может
в ып олнять
ника ких
оп ера ций
.
У д а ление
п ользов а теля
п роиз в од ится
кома нд ой
DROP USER
<
и м я
_
по льзо в а т еля
> .
Н а з на ч а емые
п ользов а тел ю
п рив илегии
–
э то
то
,
ч то
оп р ед еляет
,
может
ли
ука з а нный
п ользов а тель
в ып олнить
д а нную
кома нд у
на д
оп р ед еленным
объектом
ба з ы
д а нных
или
нет
.
Имеется
несколько
тип ов
п р ив илегий
,
соотв етств ующ их
нескольким
тип а м
оп ераций
.
Прив илегии
д а ются
и
отменяются
д в умя
кома нд а ми
SQL,
соотв етств енно
:
GRANT
–
уста нов ка
п рив илегий
и
REVOKE
–
отмена
п р ив илегий
.
127
6.2.
С т андарт ны е
привил егии
Прив илегии
,
оп ред еленные
ста нд а р том
SQL
–
э то
п рив илегии
объекта
.
Э то
оз на ч а ет
,
ч то
п ользов а тель
имеет
п рив илегию
(
п ра в о
)
на
в ып олнение
д а нной
кома нд ы
только
на
оп ред еленном
объекте
в
ба з е
д а нных
.
Прив илегии
объекта
св яз а ны
од нов ременно
и
с
п ользов а телями
,
и
с
та блица ми
ба з ы
д а нных
.
То
есть
,
п рив илегия
д а ется
оп ред еленному
п ользов а телю
в
ука з а нной
та блице
.
Э то
может
быть
ка к
ба з ов а я
та блица
,
та к
и
п ред ста в ление
.
Пользов а тель
,
соз д а в ший
та бл ицу
(
л юбого
в ид а
),
яв ляется
в ла д ельцем
э той
та блицы
.
Э то
оз на ч а ет
,
ч то
э тот
п ользов а тель
имеет
в се
п р ив илегии
,
относящ иеся
к
э той
та блице
,
в
том
ч исле
,
он
может
п еред а в а ть
п рив илегии
на
работу
с
э той
та блицей
д ругим
п ользов а телям
.
Пользов а телю
могут
быть
на з на ч ены
след ующ ие
п рив илегии
:
•
SELECT
–
п ользов а тель
может
в ып олнять
з а п росы
к
та блице
;
•
INSERT
–
п ользов а тель
может
в ып олнять
в
та блице
кома нд у
INSERT
;
•
UPDATE
–
п ользов а тель
может
в ып олнять
в
та блице
кома нд у
UPDATE
.
Э та
п рив илегия
может
быть
огранич ена
д ля
оп р ед еленных
столбцов
та блицы
;
•
DELETE
–
п ользов а тель
может
в ып олнять
в
та блице
кома нд у
DELETE
;
•
REFERENCES
–
п ользов а тель
может
оп р ед елить
в нешний
ключ
(
только
д ля
ORACLE
),
который
исп ользует
од ин
или
более
столбцов
э той
та блицы
,
ка к
р од ительский
ключ
.
Воз можно
огранич ение
э той
п рив илегии
д ля
оп ред еленных
столбцов
.
К роме
того
,
могут
быть
неста нд а р тные
п р ив илегии
объекта
,
та кие
,
ка к
:
•
INDEX
–
п ользов а тель
имеет
п р а в о
соз д а в а ть
инд екс
в
та блице
;
•
SYNONYM
–
п ользов а тель
имеет
п ра в о
соз д а в а ть
синоним
д ля
объекта
;
•
ALTER
–
п ользов а тель
имеет
п рав о
в ып олнять
кома нд у
ALTER
TABLE
в
та блице
;
•
EXECUTE
–
п оз в оляет
в ып олнять
п роцед уру
.
Н а з на ч ение
п ользов а телям
э тих
п рив илегий
осущ еств ляется
с
п омощ ью
кома нд ы
GRANT
.
128
6.3.
Ком анда
GRANT
Пользов а тель
,
яв л яющ ийся
в ла д ельцем
та блицы
STUDENT
,
может
п еред а ть
д ругому
п ользов а телю
(
п усть
э то
буд ет
п ользов а тель
с
именем
IVANOV
)
п р ив илегию
SELECT
с
п омощ ью
след ующ ей
кома нд ы
.
GRANT
SELECT
ON
STUDENT
TO
IVANOV
;
Теп ерь
п ользов а тель
с
именем
IVANOV
может
в ып олнять
SELECT
-
з а
-
п росы
к
та блице
STUDENT
.
Б ез
на лич ия
д ругих
п р ив илегий
он
может
только
в ы би р а т ь
з на ч ения
,
но
не
может
в ып олнять
любые
д ейств ия
,
которые
бы
в оз д ейств ов а ли
на
з на ч ения
в
та блице
STUDENT
,
в ключ а я
исп ользов а ние
та блицы
STUDENT
в
ка ч еств е
род ительской
та блицы
в нешнего
кл юч а
.
К огд а
SQL
п олуч а ет
кома нд у
GRANT
,
п ров еряются
п рив илегии
п ользов а тел я
,
д а в шего
э ту
кома нд у
,
ч тобы
оп р ед елить
д оп устимость
кома нд ы
GRANT
д ля
э того
п ользов а теля
.
Пользов а тель
IVANOV
са мостоятельно
не
может
з а д а ть
э ту
кома нд у
.
О н
та кже
не
может
п ред оста в ить
п ра в о
SELECT
д ругому
п ользов а телю
,
та к
ка к
та бл ица
п р ина д лежит
не
ему
(
ниже
буд ет
п ока з а но
,
ка к
в ла д елец
та блицы
может
п еред а ть
д ругому
п ользов а телю
п рав о
п ред оста в ления
п рив илегий
).
К ома нд а
GRANT
INSERT
ON
EXAM
_
MARKS
TO
IVANOV
;
п ред оста в ляет
п ользов а телю
IVANOV
п рав о
в в од ить
в
та блицу
EXAM
_
MARKS
нов ые
строки
.
В
кома нд е
GRANT
д оп устимо
ука з ыв а ть
ч ерез
з а п ятые
сп исок
п ред оста в ляемых
п рив илегий
и
сп исок
п ользов а телей
,
которым
они
п ред оста в ляются
.
Н а п ример
:
GRANT SELECT
,
INSERT
ON
SUBJECT
TO
IVANOV
,
PETROV
;
При
этом
в есь
ука з а нный
сп исок
п р ив илегий
п ред оста в ляются
в сем
ука з а нным
п ользов а телям
.
В
строгой
ANSI-
интерп рета ции
нев оз можно
п ред оста в ить
п рив илегии
д ля
нескольких
та блиц
од ной
кома нд ой
GRANT
.
129
6.4.
И спол ь з ование
аргум ент ов
ALL
и
PUBLIC
А ргумент
ALL
PRIVILEGES
(
в се
п рив илегии
)
или
п росто
ALL
исп ользуется
в место
имен
п рив илегий
в
кома нд е
GRANT
,
ч тобы
п ред оста в ить
в се
п рив илегии
в
та блице
.
Н а п ример
,
кома нд а
GRANT
ALL
PRIVILEGES
ON
STUDENT
TO
IVANOV
;
или
более
коротко
GRANT
ALL
ON
STUDENT
TO
IVANOV
;
п еред а ет
п ользов а телю
IVANOV
в есь
на бор
п рив илегий
в
та блице
STUDENT
.
А ргумент
PUBLIC
исп ользуется
д ля
п ер ед а ч и
ука з а нных
в
кома нд е
п рив илегий
в сем
оста льным
п ользов а телям
.
Н а иболее
ч а сто
э то
п рименяется
д ля
п рив илегии
SELECT
в
оп ред еленных
ба з ов ых
та блица х
или
п ред ста в лениях
,
которые
необход имо
сд ела ть
д оступ ными
д ля
любого
п ользов а теля
.
Н а п ример
,
ч тобы
п оз в олить
любому
п ол ьзов а телю
п олуч а ть
информа цию
из
та блицы
EXAM
_
MARKS
,
можно
исп ол ьзов а ть
кома нд у
GRANT
SELECT
ON
EXAM
_
MARKS
TO
PUBLIC
;
Пред оста в ление
в сех
п рив илегий
к
та блице
в сем
п ользов а телям
обыч но
яв ляется
нежела тельным
.
Все
п р ив илегии
з а
исключ ением
SELECT
п оз в оляют
п ользов а тел ю
из менять
(
или
,
в
случ а е
REFERENCES
,
огранич ив а ть
)
сод ержа ние
та блицы
,
п оэ тому
ра з решение
в сем
п ользов а телям
из менять
сод ержа ние
та блиц
может
в ыз в а ть
оп ред еленные
п роблемы
обесп еч ения
безоп а сности
и
з а щ иты
д а нных
.
Тем
более
,
ч то
п рив илегия
PUBLIC
не
огра нич ена
в
п еред а ч е
п рав
только
текущ им
п ользов а телям
.
Л юбой
нов ый
п ользов а тель
,
д оба в ляемый
к
системе
,
а в тома тич ески
п олуч а ет
в
э том
случ а е
п олный
на бор
п рив илегий
,
на з на ч енный
ранее
в сем
п ользов а телям
.
Поэ тому
д ля
огр а нич ения
д оступ а
к
та блице
в сем
и
в сегд а
луч ше
в сего
п ред оста в ить
п рив илегии
,
отлич ные
от
SELECT
,
только
инд ив ид уа льным
п ользов а телям
.
130
6.5.
О т м ена
привил егий
О тмена
п р ив илегии
осущ еств ляется
с
п омощ ью
кома нд ы
REVOKE
,
котора я
имеет
синта ксис
,
а на логич ный
кома нд е
GRANT
.
Н а п ример
,
кома нд а
REVOKE
INSERT
ON
STUDENT
FROM
PETROV
;
отменяет
п рив илегию
INSERT
в
та блице
STUDENT
д ля
п ользов а теля
PETROV
.
Воз можно
исп ользов а ние
в
кома нд е
REVOKE
сп исков
п рив илегий
и
п ользов а телей
.
Н а п ример
REVOKE
INSERT
,
DELETE
ON
STUDENT
FROM
PETROV
,
SIDOROV
;
След ует
иметь
в
в ид у
,
ч то
п рив илегии
отменяются
тем
п ользов а телем
,
который
их
п ред оста в ил
,
и
,
п р и
э том
отмена
а в тома тич ески
расп ространяется
на
в сех
п ользов а телей
,
п ол уч ив ших
от
него
э ту
п рив илегию
.
6.6.
И спол ь з ование
представл ений
дл я
ф ил ь т рац ии
привил егий
Д ейств ия
п рив илегий
можно
сд ела ть
более
точ ными
,
исп ользуя
п ред ста в ления
.
При
п еред а ч е
п р ив илегии
п ользов а телю
в
ба з ов ой
та блице
,
она
а в тома тич ески
ра сп ространяется
на
в се
строки
,
а
п р и
исп ользов а нии
в оз можных
исключ ений
UPDATE
и
REFERENCES
,
и
на
в се
столбцы
та блицы
.
Соз д а в а я
п ред ста в ление
,
котор ое
ссыла ется
на
ба з ов ую
та блицу
,
и
з а тем
,
п еред а в а я
п р ив илегию
уже
на
э то
п р ед ста в ление
,
можно
огранич ить
э ти
п рив илегии
любыми
в ыражениями
в
з а п росе
,
сод ержа щ емся
в
п ред ста в лении
.
Та кой
метод
расширяет
в оз можности
кома нд ы
GRANT
.
Д ля
соз д а ния
п ред ста в лений
п ользов а тель
д олжен
обла д а ть
п рив илегией
SELECT
в о
в сех
та блица х
,
на
которые
он
ссыла ется
в
п ред ста в лении
.
Е сли
п ред ста в ление
мод ифицир уемое
,
то
люба я
из
п рив илегий
INSERT
,
UPDATE
и
DELETE
,
котора я
п ред оста в лена
п ользов а телю
в
ба з ов ой
та блице
,
буд ет
а в тома тич ески
расп ространяться
на
п ред ста в ление
.
Е сли
п рив илегии
на
обнов ление
отсутств уют
,
то
их
нев оз можно
п олуч ить
и
в
соз д а нных