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

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

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

Добавлен: 12.04.2021

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

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

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

!

!

П

ра
кт

ич

ес

ко

е

за

ня

ти

е

 5

Ра

зг

ра

ни

че

ни

е

до

ст

уп

а

в

С

У

Б

Д

Л

И
Н

Т

ЕР

Д

ис

кр

ец

ио

нн

ы

й

до

ст

уп

!

31

 
 

E-

mai

l: 

ma

rke

t@

rele

x.r

u

Задача

:

Добавить

к

таблице

 PHONES, 

созданной

ранее

поле

 POSITION (

занимаемая

должность

). 

Предоставить

доступ

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

 B 

только

к

полям

 ID,NAME 

и

 PHONE.

Решение

1.

Добавить

дополнительное

поле

в

таблицу

 PHONES:

alter table PHONES add(POSITION char(20));

2.

Убрать

доступ

к

таблице

 PHONES

revoke all on PHONES from B;

3.

Создать

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

для

доступа

к

необходимым

столбцам

таблицы

 PHONES:

create view PH_VIEW as select ID,NAME from PHONES;

4.

Передать

доступ

к

созданному

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

:

grant select,insert on PH_VIEW to B;

Задачи

для

самостоятельной

работы

1.

К

таблице

почтовых

адресов

добавить

фамилии

руководителей

и

сделать

их

недоступными

для

всех

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

кроме

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

 A 

и

 B. 

5.3. 

Использование

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

для

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

доступа

Для

  «

горизонтального

» 

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

доступа

к

таблице

также

могут

использоваться

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

Рассмотрим

это

на

следующей

задаче

.

Задача

:

Предоставить

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

  A 

и

  B 

доступ

ко

всем

записям

таблицы

телефонов

а

остальным

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

доступ

только

к

телефонам

номера

которых

начинаются

с

цифры

 ‘9’.

Решение

1.

Создать

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

для

доступа

к

необходимым

столбцам

таблицы

 PHONES:

create view PH_VIEW2 as select ID,NAME from PHONES where PHONE like ‘9%’;

2.

Передать

доступ

к

созданному

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

:

grant select,insert on PH_VIEW2 to PUBLIC;

Задачи

для

самостоятельной

работы

1.

Произвести

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

доступа

в

таблице

почтовых

адресов

для

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

кроме

 A 

и

 B, 

предоставив

для

просмотра

только

адреса

в

городе

Москва

.  

5.4. 

Роли

и

их

использование

Механизм

ролей

позволяет

быстро

назначать

группе

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

привилегии

к

набору

таблиц

и

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

приложения

Такое

использование

удобно

если

в

приложении

предусмотрена

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

работа

с

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

доступа

.

Задача

:

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

  A 

создал

в

рамках

приложения

таблицы

с

телефонами

физических

лиц

и

адресами

предприятий

  (

см

задачи

выше

). 

Необходимо

предоставить

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

  C1,C2,C3 

доступ

на

чтение

к

информации

в

этих

таблицах

  (

используя

доступ

через

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

).

Решение

1.

Работая

под

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

 A, 

создаем

роль

 ROLE_A:

create role ROLE_A; 
2.

Передаем

этой

роли

доступ

к

таблицам

на

чтение

:

Grant select on PH_VIEW2 to ROLE_A; 
Grant select on ADR_VIEW2 to ROLE_A; (* 

имя

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

из

предыдущей

задачи

 *) 

3.

Создаем

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

 C1,C2,C3:

grant connect to C1; 
grant connect to C2; 
grant connect to C3; 
4.

Назначаем

роль

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

 C1, C2, C3:


background image

!

32

П

ра
кт

ич

ес

ко

е

за

ня

ти

е

 5

Ра

зг

ра

ни

че

ни

е

до

ст

уп

а

в

С

У

Б

Д

Л

И
Н

Т

ЕР

Д

ис

кр

ец

ио

нн

ы

й

до

ст

уп

!

!

 
 

E-

mai

l: 

ma

rke

t@

rele

x.r

u

Grant role ROLE_A to C1; 
Grant role ROLE_A to C2; 
Grant role ROLE_A to C3;

Теперь

в

случае

появления

дополнительных

таблиц

для

приложения

необходимо

будет

передать

роли

доступ

к

новым

таблицам

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

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

получат

доступ

к

таблице

 (

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

через

механизм

ролей

Задачи

для

самостоятельной

работы

1.

Для

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

  A 

создать

несколько

ролей

каждой

из

которых

назначены

следующие

привилегии

к

таблицам

телефонов

  (PHONES) 

и

адресов

предприятий

a.

только

чтение

b.

только

вставка

c.

чтение

изменение

вставка

d.

чтение

вставка

удаление

изменение

2.

Назначить

роли

для

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

  (

создать

предварительно

недостающих

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

a.

C1, C2; 

b.

C3; 

c.

D1, D2, D3; 

d.

E. 

5.5. 

Задачи

для

самостоятельной

работы

Для

каждой

задачи

необходимо

спроектировать

структуру

таблиц

для

хранения

всей

указанной

информации

Выделить

различные

категории

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

  (

включая

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

безопасности

и

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

данных

и

предоставить

им

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

привилегии

к

различным

таблицам

или

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

При

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

доступа

необходимо

использовать

роли

.

Задача

 1.

База

данных

городской

думы

В

базе

хранятся

имена

адреса

домашние

и

служебные

телефоны

всех

членов

Думы

В

Думе

работает

порядка

сорока

комиссий

все

участники

которых

являются

членами

Думы

Каждая

комиссия

имеет

свой

профиль

например

вопросы

образования

проблемы

связанные

с

жильем

и

так

далее

Данные

по

каждой

из

комиссий

включают

ее

нынешний

состав

и

председатель

прежние

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

и

члены

этой

комиссии

участвовавшие

в

ее

работе

за

прошедшие

 10 

лет

даты

включения

и

выхода

из

состава

комиссии

избрания

ее

председателей

Члены

Думы

могут

заседать

в

нескольких

комиссиях

В

базу

заносятся

время

и

место

проведения

каждого

заседания

комиссии

с

указанием

депутатов

и

служащих

Думы

которые

участвуют

в

его

организации

Задача

 2.

База

данных

рыболовной

фирмы

Фирме

принадлежит

небольшая

флотилия

рыболовных

катеров

Каждый

катер

имеет

 “

паспорт

”, 

куда

занесены

его

название

тип

водоизмещение

и

дата

постройки

Фирма

регистрирует

каждый

выход

на

лов

записывая

название

катера

имена

и

адреса

членов

команды

с

указанием

их

должностей

 (

капитан

боцман

и

т

д

.), 

даты

выхода

и

возвращения

а

также

вес

пойманной

рыбы

отдельно

по

сортам

  (

например

трески

). 

За

время

одного

рейса

катер

может

посетить

несколько

банок

Фиксируется

дата

прихода

на

каждую

банку

и

дата

отплытия

качество

выловленной

рыбы

 (

отличное

хорошее

плохое

).

Задача

 3.

База

данных

фирмы

проводящей

аукционы

.  

Фирма

занимается

продажей

с

аукциона

антикварных

изделий

и

произведений

искусства

Владельцы

вещей

выставляемых

на

проводимых

фирмой

аукционах

юридически

являются

продавцами

Лица

приобретающие

эти

вещи

именуются

покупа

-

телями

Получив

от

продавцов

партию

предметов

фирма

решает

на

котором

из

аукционов

выгоднее

представить

конкретный

предмет

Перед

проведением

очередного

аукциона

каждой

из

выставляемых

на

нем

вещей

присваивается

отдельный

номер

лота

играющий

ту

же

роль

что

и

введенный

ранее

шифр

товара

Две

вещи

продаваемые

на

различных

аукционах

могут

иметь

одинаковые

номера

лотов

.  


background image

!

!

П

ра
кт

ич

ес

ко

е

за

ня

ти

е

 5

Ра

зг

ра

ни

че

ни

е

до

ст

уп

а

в

С

У

Б

Д

Л

И
Н

Т

ЕР

Д

ис

кр

ец

ио

нн

ы

й

до

ст

уп

!

33

 
 

E-

mai

l: 

ma

rke

t@

rele

x.r

u

В

книгах

фирмы

делается

запись

о

каждом

аукционе

Там

отмечаются

дата

место

и

время

его

проведения

а

также

специфика

 (

например

выставляются

картины

написанные

маслом

и

не

ранее

  1900 

г

.). 

Заносятся

также

сведения

о

каждом

продаваемом

предмете

аукцион

на

который

он

заявлен

номер

лота

продавец

отправная

цена

и

краткое

словесное

описание

Продавцу

разрешается

выставлять

любое

количество

вещей

а

покупатель

имеет

право

приобретать

любое

количество

вещей

Одно

и

то

же

лицо

или

фирма

может

выступать

и

как

продавец

и

как

покупатель

После

аукциона

служащие

фирмы

проводящей

аукционы

записывают

фактическую

   

цену

уплаченную

за

проданный

предмет

и

фиксируют

данные

покупателя

.  


background image

!

!

!

34

E-mail: market@relex.ru

ЗАО

НПП

 «

РЕЛЭКС

»

http://www.relex.ru

Практическое

занятие

 6

Резервное

копирование

и

восстановление

данных

Практика

 1 

час

 (

Лекция

 5)

На

занятии

будут

рассмотрен

инструментарий

пакета

СУБД

ЛИНТЕР

предназначенный

для

горячего

резервирования

и

восстановления

как

всей

базы

данных

так

и

пообъектно

6.1. 

Утилита

 Linter Hot Backup 

Утилита

 Linter Hot Backup (lhb) 

предназначена

для

создания

архивов

как

всей

базы

так

и

ее

объектов

без

остановки

ядра

восстановления

как

всей

базы

так

и

ее

объектов

Предположим

что

домашней

директорией

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

является

 /home/linter/ 

Для

выполнения

задач

данной

практики

понадобится

создать

директорию

 prac4 

в

домашней

создать

в

директории

 prac4 

директорию

 db, 

а

в

ней

 – 

новую

базу

данных

создать

в

директории

 prac4 

директорию

 db_backup; 

запустить

ядро

на

базе

из

директории

 /home/linter/prac4/db; 

выполнить

скрипт

 prac4_cr.sql 

при

помощи

утилиты

 inl. 

Данный

скрипт

создает

  «

игрушечную

» 

базу

данных

  – 

три

таблицы

  LIB_BOOKS, 

LIB_AUTHOR,  LIB_WROTE 

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

  SYSTEM, 

описывающие

информацию

о

книгах

и

их

авторах

а

также

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

содержимое

которого

разрешено

просматривать

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

 READER. 

6.2. 

Сохранение

базы

данных

Для

полного

сохранения

базы

данных

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

команда

  s. 

Как

правило

указывается

имя

файла

архива

куда

будет

сохранена

информация

.

Задача

  1.

Создать

полный

архив

базы

данных

Использовать

низкий

приоритет

процесса

архивирования

чтобы

не

загружать

ядро

Архив

защитить

паролем

 KBYNTH 

lhb s –u SYSTEM/MANAGER –f /home/linter/prac4/db_backup/
db_full.lhb –priority LOW –g KBYNTH

Задача

 2.

Создать

полный

архив

базы

данных

разбив

его

по

томам

 – 1.2 

Мб

.  

lhb s –u SYSTEM/MANAGER –f /home/linter/prac4/db_backup/
db_vol.lhb –v 1200 –qc NVDF 

Здесь

команда

  NV 

в

ключе

  –qc 

указывает

что

следует

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

предупреждения

о

создании

нового

тома

а

команда

 DF – 

предупреждения

о

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

архивных

файлах

с

теми

же

именами

что

и

у

вновь

создаваемых

6.3. 

Пообъектное

сохранение

Пообъектное

сохранение

базы

данных

включается

одним

из

следущих

ключей

: -ou, -

ot, -otwd, -ov, -os, -or, -osr, -oa, -otr, -op, -oall, -d, -takeforeign. 

После

ключа

указывается

маска

объектов

которые

подлежат

сохранению

в

формате

  *  -- 

любое

количество

любых

символов

, ? –

любой

символ

Если

маска

не

указана

то

сохраняются

все

объекты

.

Задача

 3.

Создать

архив

таблиц

бибилиотеки


background image

!

!

Пр

ак
ти

че
ск

ое

за

ня

ти

е

 6

Ре

зер

вн

ое

ко

пи

ро
ва

ни

е

и

во

сст

ан

ов
ле

ни

е

да

нн

ых

!

35

 
 

E-

mai

l: 

mar

ket

@re

lex.

ru

ЗА

lhb s –u SYSTEM/MANAGER –ot LIB_* –f /home/linter/prac4/
db_backup/db_lib.lhb

Задача

 4.

Создать

архив

таблиц

бибилиотеки

со

всеми

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

и

правами

доступа

.  

lhb s –u SYSTEM/MANAGER –ot LIB_* –ov –oa –f /home/linter/
prac4/db_backup/db_lib.lhb 

Здесь

ключ

  –ov 

без

маски

указывает

необходимость

сохранения

всех

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

; –oa 

указывает

необходимость

сохранения

привилегий

доступа

6.4. 

Создание

инкрементных

архивов

Создание

инкрементных

архивов

подразумевает

создание

контрольной

точки

в

журнале

базы

данных

то

которой

следует

хранить

изменения

в

базе

При

дополнении

инкрементного

архива

происходит

архивирование

изменений

базы

от

соответствующей

контрольной

точки

Следует

удалять

неиспользуемые

контрольные

точки

из

журнала

поскольку

их

наличие

ведет

к

разрастанию

журнала

.

Задача

 5.

Создать

инкрементный

архив

всей

базы

данных

.  

lhb s –u SYSTEM/MANAGER –startinc –f /home/linter/prac4/
db_backup/db_inc.lhb 

При

этом

в

журнал

добавляется

контрольная

точка

имеющая

номер

и

время

создания

  (

обновления

инкрементного

архива

Список

контрольных

точек

можно

просмотреть

а

также

удалить

точку

по

ее

номеру

Задача

 6.

Добавить

изменения

в

инкрементный

архив

.  

lhb s –u SYSTEM/MANAGER –inc –f /home/linter/prac4/
db_backup/db_inc.lhb 

При

этом

происходит

запись

в

файл

архива

данных

журнала

от

контрольной

точки

до

текущего

момента

и

сдвиг

контрольной

точки

на

текущий

момент

Для

работы

с

контрольными

точками

предназначена

команда

 cp.

Задача

 7.

Просмотреть

список

контрольных

точек

.  

lhb cp –u SYSTEM/MANAGER –list –f /home/linter/prac4/
db_backup/db_inc.lhb

Задача

 8.

Удалить

контрольную

точку

с

номером

 0.  

lhb cp –u SYSTEM/MANAGER –clear 0 –f /home/linter/prac4/
db_backup/db_inc.lhb

Задача

 9.

Остановить

формирование

инкрементного

архива

.  

lhb s –u SYSTEM/MANAGER –stopinc –f /home/linter/prac4/
db_backup/db_inc.lhb 

При

этом

из

журнала

базы

данных

удалится

контрольная

точка

для

данного

архива

и

продолжение

его

будет

невозможно

6.5. 

Восстановление

базы

данных

Для

восстановления

данных

из

базы

следует

использовать

команду

  r 

и

указывать

директорию

в

которой

следует

развернуть

базу

.

Задача

  10.

Восстановить

базу

данных

из

полного

архива

созданного

в

задаче

  1. 

Директорией

назначения

использовать

/home/linter/prac4/db_restored.