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

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

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

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

Добавлен: 02.04.2021

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

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

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

 

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


background image

 

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


background image

 

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. 

Д ругие

 

т ипы

 

привил егий

  

Д о

 

сих

 

п ор

   

не

 

рассмотрены

 

в оп росы

 

уста нов ки

 

целого

 

ряд а

 

д ругих

 

п рив илегий

а

 

именно

 

К то

 

имеет

 

п р а в о

 

соз д а в а ть

 

та блицы

 

К то

 

имеет

 

п р а в о

 

из менять

уд а л ять

или

 

огранич ив а ть

 

та блицы

 

Д олжны

 

ли

 

п ра в а

 

соз д а ния

 

ба з ов ых

 

та блиц

 

отлич а ться

 

от

 

п рав

 

соз д а ния

 

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

 

Д олжен

 

ли

 

сущ еств ов а ть

 

супер по льзо в а т ель

то

 

есть

 

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


background image

 

134

отв еч а ющ ий

 

з а

 

п од д ержа ние

 

ба з ы

 

д а нных

 

и

след ов а тел ьно

имеющ ий

 

на ибольшие

или

 

п олные

 

п р ив илегии

которые

 

не

 

п ред оста в ляются

 

обыч ному

 

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

Прив илегии

которые

 

не

 

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

 

в

 

термина х

 

сп ециа льных

 

объектов

 

д а нных

на з ыв а ются

 

пр и в и лег и ям и

 

си ст ем ы

или

 

пр а в а м и

 

ба зы

 

д а нны х

Э ти

 

п рив илегии

 

в ключ а ют

 

в

 

себя

 

п ра в о

 

соз д а в а ть

 

объекты

 

д а нных

отлич а ющ иеся

 

от

 

ба з ов ых

 

та блиц

  (

обыч но

 

соз д а в а емых

 

несколькими

 

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

и

 

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

  (

обыч но

 

соз д а в а емых

 

большинств ом

 

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

). 

Прив илегии

 

системы

 

д ля

 

соз д а ния

 

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

 

д олжны

 

д оп олнять

а

 

не

 

з а менять

 

п рив илегии

 

объекта

которые

 

ста нд а рт

 

тр ебует

 

от

 

соз д а телей

 

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

  (

оп иса ны

 

ранее

). 

К роме

 

того

в

 

любой

 

системе

 

в сегд а

 

имеются

 

некоторые

 

тип ы

 

суп ер п ользов а телей

то

 

есть

 

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

которые

 

имеют

 

большинств о

 

или

 

в се

 

п рив илегии

и

 

которые

 

могут

 

п еред а ть

 

св ой

 

ста тус

 

суп ерп ользов а теля

 

кому

-

л ибо

 

с

 

п омощ ью

 

п рив илегии

 

или

 

груп п ы

 

п р ив илегий

Та кого

 

род а

 

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

 

яв л яется

 

та к

 

на з ыв а емый

 

а д м и ни ст р а т о р

 

ба зы

 

д а нны х

или

 DBA (DataBase Administrator)

6.8.  

Т ипичны е

 

привил егии

 

систем ы

 

При

 

общ ем

 

п од ход е

 

имеется

 

три

 

ба з ов ых

 

п рив илегии

 

системы

 

CONNECT

  (

Подключить

),  

 

RESOURCE

 (

Ресурс

и

  

 

DBA

 (

Администратор

 

Базы

 

Данных

). 

Прив илегия

 

CONNECT

 

состоит

 

из

 

п ра в а

 

з а регистриров а ться

 

и

 

п рав а

 

соз д а в а ть

 

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

 

и

 

синонимы

если

 

п еред а ны

 

п р ив илегии

 

объекта

.  

Прив илегия

 

RESOURCE

 

состоит

 

из

 

п ра в а

 

соз д а в а ть

 

ба з ов ые

 

та блицы

.  

Прив илегия

 

DBA

 

 

э то

 

п рив илегия

 

а д министратора

 

ба з ы

 

д а нных

то

 

есть

 

суп ер п ользов а теля

которому

 

п ред оста в ляются

 

са мые

 

в ысокие

 

п олномоч ия

 

п ри

 

ра боте

 

с

 

ба з ой

 

д а нных

Э ту

 

п рив илегию

 

может

 

иметь

 

од ин

 

или

 

более

 

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

 

с

 

функциями

 

а д министра тора

 

ба з ы

 

д а нных

К ома нд а

 

GRANT

 (

в

 

из мененной

 

форме

может

 

п р именяться

 

ка к

 

с

 

п р ив илегиями

 

объекта

та к

 

и

 

с

 

системными

 

п рив илегиями

.  


background image

 

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

 

п р а в о

 

п еред а в а ть

 

д ругим