Файл: SQL в вопросах и задачах.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 02.04.2021

Просмотров: 1544

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

6. 

О пр еделен и е

 

пр а в

 

до ступа

 

по льзо ва телей

 

к

 

да н н ы м

 

6.1. 

П ол ь з оват ел и

 

и

 

привил егии

 

К а жд ый

кто

 

имеет

 

д оступ

 

к

 

ба з е

 

д а нных

на з ыв а ется

 

по льзо ва т елем

SQL 

исп ользуется

 

обыч но

 

в

 

многоп ользов а тельских

 

сред а х

которые

 

требуют

 

раз гранич ения

 

п ра в

 

п ользов а телей

 

с

 

точ ки

 

з рения

 

д оступ а

 

к

 

д а нным

 

и

 

п рав

 

на

 

в ып олнение

 

с

 

ними

 

тех

 

или

 

иных

 

ма нип уляций

Д ля

 

э тих

 

целей

 

в

  SQL 

реа лиз ов а ны

 

сред ств а

п оз в оляющ ие

 

уста на в лив а ть

 

и

 

контролиров а ть

 

п рив илегии

 

п ользов а телей

 

ба з ы

 

д а нных

.  

К а жд ый

 

п ользов а тел ь

 

в

 

сред е

  SQL 

имеет

 

сп ециа льное

 

имя

 

или

 

ид ентифика тор

с

 

п омощ ью

 

которого

 

осущ еств ляется

 

ид ентифика ция

 

п ользов а теля

 

д ля

 

уста нов ки

 

и

 

оп ред еления

 

его

 

п ра в

 

с

 

точ ки

 

з рения

 

д оступ а

 

к

 

д а нным

К а жд а я

 

п осла нна я

 

к

 

СУ Б Д

 

кома нд а

  SQL-

з а п р оса

 

а ссоциируется

 

СУ Б Д

 

с

 

ид ентифика тором

 

д оступ а

 

к

 

д а нным

 

конкретного

 

п ользов а теля

.  

Пользов а тель

 

оп ред ел яется

 

с

 

п омощ ью

 

след ующ ей

 

кома нд ы

CREATE USER

 <

и м я

_

по льзо ва т еля

IDENTIFIED BY 

<

па р о ль

После

 

в ып олнения

 

э той

 

кома нд ы

 

п ользов а тель

 

ста нов ится

 

из в естен

 

ба з е

 

д а нных

но

 

п ока

 

не

 

может

 

в ып олнять

 

ника ких

 

оп ера ций

.  

У д а ление

 

п ользов а теля

 

п роиз в од ится

 

кома нд ой

 

DROP USER

 <

и м я

_

по льзо в а т еля

> . 

Н а з на ч а емые

 

п ользов а тел ю

 

п рив илегии

 

 

э то

 

то

ч то

 

оп р ед еляет

может

 

ли

 

ука з а нный

 

п ользов а тель

 

в ып олнить

 

д а нную

 

кома нд у

 

на д

 

оп р ед еленным

 

объектом

 

ба з ы

 

д а нных

 

или

 

нет

Имеется

 

несколько

 

тип ов

 

п р ив илегий

соотв етств ующ их

 

нескольким

 

тип а м

 

оп ераций

Прив илегии

 

д а ются

 

и

 

отменяются

 

д в умя

 

кома нд а ми

 SQL, 

соотв етств енно

GRANT

 

 

уста нов ка

 

п рив илегий

 

и

  

REVOKE

 

 

отмена

 

п р ив илегий

 


background image

 

127

6.2. 

С т андарт ны е

 

привил егии

 

Прив илегии

оп ред еленные

 

ста нд а р том

  SQL 

 

э то

 

п рив илегии

 

объекта

Э то

 

оз на ч а ет

ч то

 

п ользов а тель

 

имеет

 

п рив илегию

  (

п ра в о

на

 

в ып олнение

 

д а нной

 

кома нд ы

 

только

 

на

 

оп ред еленном

 

объекте

 

в

 

ба з е

 

д а нных

Прив илегии

 

объекта

 

св яз а ны

 

од нов ременно

 

и

 

с

 

п ользов а телями

и

 

с

 

та блица ми

 

ба з ы

 

д а нных

То

 

есть

п рив илегия

 

д а ется

 

оп ред еленному

 

п ользов а телю

 

в

 

ука з а нной

 

та блице

Э то

 

может

 

быть

 

ка к

 

ба з ов а я

 

та блица

та к

 

и

 

п ред ста в ление

.  

Пользов а тель

соз д а в ший

 

та бл ицу

  (

л юбого

 

в ид а

), 

яв ляется

 

в ла д ельцем

 

э той

 

та блицы

Э то

 

оз на ч а ет

ч то

 

э тот

 

п ользов а тель

 

имеет

 

в се

 

п р ив илегии

относящ иеся

 

к

 

э той

 

та блице

в

 

том

 

ч исле

он

 

может

 

п еред а в а ть

 

п рив илегии

 

на

 

работу

 

с

 

э той

 

та блицей

 

д ругим

 

п ользов а телям

.  

Пользов а телю

 

могут

 

быть

 

на з на ч ены

 

след ующ ие

 

п рив илегии

 

SELECT

 

 

п ользов а тель

 

может

 

в ып олнять

 

з а п росы

 

к

 

та блице

 

INSERT

 

 

п ользов а тель

 

может

 

в ып олнять

 

в

 

та блице

 

кома нд у

 INSERT

 

UPDATE

 

 

п ользов а тель

 

может

 

в ып олнять

 

в

 

та блице

 

кома нд у

 

UPDATE

.

Э та

 

п рив илегия

 

может

 

быть

 

огранич ена

 

д ля

 

оп р ед еленных

 

столбцов

 

та блицы

 

DELETE

 

 

п ользов а тель

 

может

 

в ып олнять

 

в

 

та блице

 

кома нд у

 

DELETE

 

REFERENCES

 

 

п ользов а тель

 

может

 

оп р ед елить

 

в нешний

 

ключ

  (

только

 

д ля

 

ORACLE

), 

который

 

исп ользует

 

од ин

 

или

 

более

 

столбцов

 

э той

 

та блицы

ка к

 

р од ительский

 

ключ

Воз можно

 

огранич ение

 

э той

 

п рив илегии

 

д ля

 

оп ред еленных

 

столбцов

К роме

 

того

могут

 

быть

 

неста нд а р тные

 

п р ив илегии

 

объекта

та кие

ка к

 

INDEX

 

 

п ользов а тель

 

имеет

 

п р а в о

 

соз д а в а ть

 

инд екс

 

в

 

та блице

 

SYNONYM

 

 

п ользов а тель

 

имеет

 

п ра в о

 

соз д а в а ть

 

синоним

 

д ля

 

объекта

;  

 

ALTER

 

 

п ользов а тель

 

имеет

 

п рав о

 

в ып олнять

 

кома нд у

 

ALTER

 

TABLE

 

в

 

та блице

;  

 

EXECUTE

 

 

п оз в оляет

 

в ып олнять

 

п роцед уру

Н а з на ч ение

 

п ользов а телям

 

э тих

 

п рив илегий

 

осущ еств ляется

 

с

 

п омощ ью

 

кома нд ы

 

GRANT


background image

 

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


background image

 

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

только

 

инд ив ид уа льным

 

п ользов а телям

.  


background image

 

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

котора я

 

п ред оста в лена

   

п ользов а телю

 

в

 

ба з ов ой

 

та блице

буд ет

 

а в тома тич ески

 

расп ространяться

 

на

 

п ред ста в ление

Е сли

 

п рив илегии

 

на

 

обнов ление

 

отсутств уют

то

 

их

 

нев оз можно

 

п олуч ить

 

и

 

в

 

соз д а нных