ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 02.04.2021
Просмотров: 1543
Скачиваний: 4
131
п ред ста в лениях
,
д а же
если
са ми
э ти
п ред ста в ления
обнов ляемые
.
Та к
ка к
в нешние
ключ и
не
п рименяются
в
п ред ста в лениях
,
то
и
п рив илегия
REFERENCES
никогд а
не
исп ользуется
п ри
соз д а нии
п ред ста в лений
.
6.6.1.
О граничение
привил егии
SELECT
дл я
определ енны х
ст ол бц ов
Пред п оложим
,
необход имо
обесп еч ить
п ользов а телю
PETROV
в оз можность
д оступ а
только
к
столбца м
STUDENT
_
ID
и
SURNAME
та блицы
STUDENT
.
Э то
можно
сд ела ть
,
п оместив
имена
э тих
столбцов
в
п ред ста в ление
CREATE
VIEW
STUDENT
_
VIEW
AS
SELECT
STUDENT
_
ID
,
SURNAME
FROM
STUDENT
;
и
п ред оста в ить
п ользов а телю
PETROV
п рив илегию
SELECT
в
соз д а нном
п ред ста в лении
,
а
не
в
са мой
та блице
STUDENT
:
GRANT
SELECT
ON
STUDENT
_
VIEW
TO
PETROV
;
Д ля
столбцов
можно
соз д ать
раз лич ные
п рив илегии
,
од на ко
,
след ует
иметь
в
в ид у
,
ч то
д ля
кома нд ы
INSERT
э то
буд ет
оз на ч а ть
в ста в ку
з на ч ений
п о
умолч а нию
,
а
д ля
кома нд ы
DELETE
огра нич ение
столбца
не
буд ет
в ообщ е
иметь
з на ч ения
.
6.6.2.
О граничение
привил егий
дл я
определ енны х
строк
Пред ста в ления
п оз в оляют
огра нич ить
(
фильтров а ть
)
п р ив илегии
д ля
оп ред еленных
строк
та блицы
.
Д ля
э того
естеств енно
исп ользов а ть
в
п ред ста в лении
п ред ика т
,
который
оп ред елит
,
ка кие
строки
в ключ ены
в
п ред ста в ление
.
Ч тобы
п ред оста в ить
п ользов а телю
PETROV
п р ив илегию
в ид а
UPDATE
в
та блице
UNIVERSITY
д ля
в сех
з а п исей
о
М осков ских
унив ерситета х
,
можно
соз д а ть
след ующ ее
п ред ста в ление
:
CREATE
VIEW
MOSC
_
UNIVERSITY
AS
SELECT
*
FROM
UNIVERSITY
WHERE
CITY
=
‘
М о ск
ва
’
WITH
CHECK
OPTION
;
132
За тем
можно
п еред а ть
п рив илегию
UPDATE
в
э той
та блице
п ользов а телю
PETROV
:
GRANT
UPDATE
ON
MOSC
_
UNIVERSITY
TO
PETROV
;
В
отлич ие
от
п рив илегии
UPDATE
д л я
оп ред еленных
столбцов
,
которая
расп ространена
на
в се
строки
та блицы
UNIVERSITY
,
д а нна я
п рив илегия
относится
только
к
строка м
,
д ля
которых
з на ч ение
п оля
CITY
рав но
‘
М о ск
ва
’
.
Пред ложение
WITH
CHECK
OPTION
п ред охраняет
п ользов а теля
PETROV
от
з а мены
з на ч ения
п ол я
CITY
на
любое
з на ч ение
,
кроме
з на ч ения
‘
М о ск
ва
’
.
6.6.3.
П редост авл ение
доступа
т ол ь ко
к
из вл еченны м
данны м
Д руга я
в оз можность
состоит
в
том
,
ч тобы
уста на в лив а ть
п ользов а телям
п рив илегии
на
д оступ
к
уже
из в леч енным
д а нным
,
а
не
к
з на ч ениям
в
та блице
.
Д ля
э того
уд обно
исп ользов а ть
а грегирующ ие
функции
.
Н а п ример
,
соз д а д им
п ред ста в ление
,
которое
д а ет
информа цию
о
колич еств е
оценок
,
сред нем
и
общ ем
ба лла х
д ля
студ ентов
на
ка жд ый
д ень
:
CREATE
VIEW
DATETOTALS
AS
SELECT
EXAM
_
DATE
,
COUNT
(*)
AS
KOL
,
SUM
(
MARK
)
AS
SUMMA
,
AVG
(
MARK
)
AS
TOT
FROM
EXAM
_
MARKS
GROUP
BY
EXAM
_
DATE
;
Теп ерь
можно
п еред а ть
п ользов а телю
PETROV
п рив илегию
SELECT
в
соз д а нном
п ред ста в лении
DATETOTALS
с
п омощ ью
з а п роса
:
GRANT
SELECT
ON
DATETOTALS
TO
PETROV
;
133
6.6.4.
И спол ь з ование
представл ений
в
качест ве
ал ь т ернат ивы
ограничения м
Пред ста в ления
с
WITH
CHECK
OPTION
могут
исп ользов а ться
в
ка ч еств е
а льтерна тив ы
огра нич ениям
.
Н а п р имер
,
необход имо
уд остов ериться
,
ч то
в се
з на ч ения
п оля
CITY
в
та блице
STUDENT
ра в ны
на з в а ниям
конкретных
город ов
.
Д ля
э того
можно
уста нов ить
огра нич ение
CHECK
неп осред ств енно
на
столбец
CITY
.
О д на ко
п оз же
его
из менение
буд ет
з а тр уд нено
.
В
ка ч еств е
а льтерна тив ы
можно
соз д а ть
п ред ста в ление
,
исключ а ющ ее
неп ра в ильные
з на ч ения
CITY
:
CREATE VIEW
CURCITYES
AS
SELECT
*
FROM
STUDENT
WHERE
CITY
IN
(
‘
М о сква
’
,
‘
Во р о н еж
’
)
WITH
CHECK
OPTION
;
Теп ерь
,
в место
того
,
ч тобы
п ред оста в лять
п ользов а телям
п рив илегии
обнов ления
в
та блице
STUDENT
,
можно
п ред оста в ить
соотв етств ующ ие
п рив илегии
в
п ред ста в лении
CURCITYES
.
Преимущ еств о
та кого
п од ход а
состоит
в
том
,
ч то
п ри
необход имости
из менения
можно
уд а лить
э то
п ред ста в ление
,
соз д а ть
нов ое
,
и
п ред оста в ить
в
э том
нов ом
п р ед ста в лении
п рив илегии
п ользов а телям
.
Та ка я
оп ерация
в ып олняется
п рощ е
,
ч ем
из менение
огр а нич ений
в
та блице
.
Н ед оста тком
э того
метод а
яв ляется
то
,
ч то
в ла д елец
та блицы
STUDENT
та кже
д олжен
исп ользов а ть
э то
нов ое
п ред ста в ление
,
ина ч е
его
собств енные
кома нд ы
та кже
не
буд ут
п риняты
.
6.7.
Д ругие
т ипы
привил егий
Д о
сих
п ор
не
рассмотрены
в оп росы
уста нов ки
целого
ряд а
д ругих
п рив илегий
,
а
именно
:
•
К то
имеет
п р а в о
соз д а в а ть
та блицы
?
•
К то
имеет
п р а в о
из менять
,
уд а л ять
,
или
огранич ив а ть
та блицы
?
•
Д олжны
ли
п ра в а
соз д а ния
ба з ов ых
та блиц
отлич а ться
от
п рав
соз д а ния
п ред ста в лений
?
•
Д олжен
ли
сущ еств ов а ть
супер по льзо в а т ель
,
то
есть
п ользов а тель
,
134
отв еч а ющ ий
з а
п од д ержа ние
ба з ы
д а нных
и
,
след ов а тел ьно
,
имеющ ий
на ибольшие
,
или
п олные
п р ив илегии
,
которые
не
п ред оста в ляются
обыч ному
п ользов а телю
?
Прив илегии
,
которые
не
оп ред еляются
в
термина х
сп ециа льных
объектов
д а нных
,
на з ыв а ются
пр и в и лег и ям и
си ст ем ы
,
или
пр а в а м и
ба зы
д а нны х
.
Э ти
п рив илегии
в ключ а ют
в
себя
п ра в о
соз д а в а ть
объекты
д а нных
,
отлич а ющ иеся
от
ба з ов ых
та блиц
(
обыч но
соз д а в а емых
несколькими
п ользов а телями
)
и
п ред ста в лений
(
обыч но
соз д а в а емых
большинств ом
п ользов а телей
).
Прив илегии
системы
д ля
соз д а ния
п ред ста в лений
д олжны
д оп олнять
,
а
не
з а менять
п рив илегии
объекта
,
которые
ста нд а рт
тр ебует
от
соз д а телей
п ред ста в лений
(
оп иса ны
ранее
).
К роме
того
,
в
любой
системе
в сегд а
имеются
некоторые
тип ы
суп ер п ользов а телей
,
то
есть
п ользов а телей
,
которые
имеют
большинств о
или
в се
п рив илегии
,
и
которые
могут
п еред а ть
св ой
ста тус
суп ерп ользов а теля
кому
-
л ибо
с
п омощ ью
п рив илегии
или
груп п ы
п р ив илегий
.
Та кого
род а
п ользов а телем
яв л яется
та к
на з ыв а емый
а д м и ни ст р а т о р
ба зы
д а нны х
,
или
DBA (DataBase Administrator)
.
6.8.
Т ипичны е
привил егии
систем ы
При
общ ем
п од ход е
имеется
три
ба з ов ых
п рив илегии
системы
:
•
CONNECT
(
Подключить
),
•
RESOURCE
(
Ресурс
)
и
•
DBA
(
Администратор
Базы
Данных
).
Прив илегия
CONNECT
состоит
из
п ра в а
з а регистриров а ться
и
п рав а
соз д а в а ть
п ред ста в ления
и
синонимы
,
если
п еред а ны
п р ив илегии
объекта
.
Прив илегия
RESOURCE
состоит
из
п ра в а
соз д а в а ть
ба з ов ые
та блицы
.
Прив илегия
DBA
–
э то
п рив илегия
а д министратора
ба з ы
д а нных
,
то
есть
суп ер п ользов а теля
,
которому
п ред оста в ляются
са мые
в ысокие
п олномоч ия
п ри
ра боте
с
ба з ой
д а нных
.
Э ту
п рив илегию
может
иметь
од ин
или
более
п ользов а телей
с
функциями
а д министра тора
ба з ы
д а нных
.
К ома нд а
GRANT
(
в
из мененной
форме
)
может
п р именяться
ка к
с
п р ив илегиями
объекта
,
та к
и
с
системными
п рив илегиями
.
135
6.9.
С оз дание
и
удал ение
пол ь з оват ел ей
В
большинств е
реа лиз а ций
SQL
нов ого
п ользов а теля
соз д а ет
п ользов а тель
с
п рив илегией
DBA
,
то
есть
а д министра тор
баз ы
д а нных
,
который
а в тома тич ески
п ред оста в ляет
нов ому
п ользов а телю
п р ив илегию
CONNECT
.
В
э том
случ а е
обыч но
д оба в ляется
п ред ложение
IDENTIFIED
BY
,
ука з ыв а ющ ее
п а р оль
д ля
э того
п ользов а теля
.
Н а п р имер
,
кома нд а
GRANT
CONNECT
TO
PETROV
IDENTIFIED
BY
‘
PETROVPASSWORD
’
;
п рив ед ет
к
соз д а нию
п ользов а теля
с
именем
PETROV
,
п ред оста в ит
ему
п рав о
регистриров а ться
в
ба з е
д а нных
,
и
на з на ч а ет
ему
п а р оль
“
PETROVPASSWORD
”
.
После
э того
,
та к
ка к
PETROV
уже
яв ляется
з а р егистриров а нным
п ользов а телем
,
он
(
или
п ользов а тел ь
DBA)
может
исп ользов а ть
э ту
же
кома нд у
д ля
из менения
д а нного
п а роля
“
PETROVPASSWORD
”
.
К огд а
п ользов а тель
A
п ред оста в ляет
п рив илегию
CONNECT
д ругому
п ользов а телю
B
,
гов орят
,
ч то
п ользов а тель
A
“
со зд а ет
”
п ользов а теля
B
.
При
этом
п ользов а тель
A
обяз а тельно
д олжен
иметь
п р ив илегию
DBA
.
Е сли
п ользов а тель
B
буд ет
соз д а в а ть
ба з ов ые
та блицы
(
а
не
только
п ред ста в ления
),
ему
та кже
д олжна
быть
п ред оста в лена
п рив илегия
RESOURCE
.
Н о
п ри
э том
в оз ника ет
д руга я
п роблема
.
Пр и
п оп ытке
уд а ления
п ользов а телем
A
п р ив илегии
CONNECT
п ользов а теля
B
,
который
уже
имеет
соз д а нные
им
та блицы
,
э та
кома нд а
уд а ления
п рив илегии
буд ет
отклонена
,
п оскольку
ее
д ейств ие
оста в ит
э ти
та блицы
без
в ла д ельца
,
ч то
не
д оп уска ется
.
Поэ тому
,
п режд е
ч ем
уд а лить
п рив илегию
CONNECT
ка кому
-
либо
п ользов а телю
,
сна ч а ла
необход имо
уд а лить
из
ба з ы
д а нных
в се
соз д а нные
э тим
п ользов а телем
та блицы
.
Прив илегию
RESOURCE
уд а лять
отд ельно
не
требуется
,
д оста точ но
уд а лить
CONNECT
,
ч тобы
уд а лить
п ользов а теля
.
УП Р АЖ НЕ НИ Я
116.
Перед а йте
п ользов а телю
PETROV
п рав о
на
из менение
в
ба з е
д а нных
з на ч ений
оценок
д ля
з а п исей
о
студ ента х
.
117.
Перед а йте
п ользов а телю
SIDOROV
п р а в о
п еред а в а ть
д ругим