
МАТЕРИАЛЫ ПО ДИСЦИПЛИНЕ СЕТЕВЫЕ БАЗЫ ДАННЫХ / Дополнительные главы / Chapter12
.pdf
Назначение привилегий посредством представлений и процедур |
CD143 |
|
|
ис. 12.5. зультаты работы с представлением Mar ouxListings |
||||||||||
имеет прав . Даже |
îí |
|
имя таблицы Listings, он не смож |
извлечь из нее |
||||||||
может |
. Более ого,еслистемузнаетдаж |
|
не подтвердит что такая таблица существует. Вы |
|||||||||
сохранить сложные запросы как представления, чтобы обеспечить |
||||||||||||
циаль |
îñòü, |
ам не удастся применять эти представления для обновления данных. |
||||||||||
данныев эт го значения. Подробное |
|
|
необограничивх димых действий здесь не привовдится, |
|||||||||
|
Ко ечно, ноздавать |
|
представления для каждого сотрудника слишконм сложиден |
|||||||||
но. Чтобы |
упростить |
процесс, вы |
ете добавить к |
аблице Agents столбец, |
||||||||
ржащий |
|
пользовразныетеля. Т гда ìîæíî |
óäåò ïî |
имя текущег |
польз ателя |
|||||||
ïîñкольку |
аналогичная процедура,описаниепр дназначенная для контроля обновления дан- |
|||||||||||
|
редствоимясистемной переменной User и |
|
ëó÷àòü доступ к ст лбцам на оснсо |
|||||||||
ных, будет рассмотрена в следующем разделе. |
|
|
|
|||||||||
|
|
|
|
ование процедур для ограничения возможно |
||||||||
обн вльзения данных |
|
|
|
|
|
|
|
|||||
ИспоВ нек т рых |
пользователю необхо имо обновлять базу данных. К к пстейу- |
|||||||||||
ть в п добных сит ациях? Поск льку представление Mar ouxListings базируется |
||||||||||||
очередь, передслучаяхва о бы их в таблицу Listings. |
|
|
|
|||||||||
ïàí |
äíîé таблиц , о новление возможно. Вы можете изменить абор полномочий, |
|||||||||||
чтобы |
пользов те ь Mar oux мог включать строки в представление, |
à îíî, â ñâîþ |

CD144 |
|
лава 12. Обеспечение защиты базы данных |
|
|
|
|
|
|
|
||||||||||||||||||
Grant Insert on Redwood.Mar ouxListings to Mar ouxK; |
|
|
|
|
|
||||||||||||||||||||||
1. Теперь вы можете зарегистрироваться как Mar ouxK и попробовать включить |
|||||||||||||||||||||||||||
строку. |
|
|
Into Redwood.Mar ouxListings (ListingID, PropertyID, |
|
|
|
|||||||||||||||||||||
|
In |
|
|
|
|
|
|||||||||||||||||||||
|
Values |
(99, 773, 10041, 101); |
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
Commit; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
Li |
ertngAgentID, SaleStatusID) |
|
|
|
|
|
|
|
|
|
||||||||||||||||
2. Команда INSERT выполняется нормально. Поскольку новая строка не имеет смыс- |
|||||||||||||||||||||||||||
ëà, |
ам следует зарегистрироваться под своим |
и удалить ее. |
î ? |
|
|
|
|||||||||||||||||||||
На первый |
взгляд |
се обстоит нормально. В чемименемж проблемы с |
|
|
|
|
|||||||||||||||||||||
3. Äëÿ |
DELETE FROM Listings WHERE ListingID=99; |
|
|
|
|
|
|
|
|||||||||||||||||||
ого чтобы |
выявить их, зарегистрируйтесь как Mar ouxK и попызащитаéòåñü âû- |
||||||||||||||||||||||||||
полнить |
следующий код: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
In |
|
|
Into Redwood.Mar ouxListings (ListingID, PropertyID, |
|
|
|
||||||||||||||||||||
|
Values |
(98, 773, 12963, 101); |
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
Commit; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
Li |
ertngAgent D, SaleStatusID) |
нормально. Вам опять |
идется зареги |
|||||||||||||||||||||||
È ñíîâ |
|
êîì |
|
|
|
|
|
INSERT |
âûïî |
|
|
|
|||||||||||||||
нциальная проблема, связа |
наялняетсябезопасностью? Mar oux |
лько что включил |
|||||||||||||||||||||||||
стрировне пре |
тьсяандапо |
своим име ем и удалить ListingID=98. Тепеðü âàì ÿñíà ïî |
|
||||||||||||||||||||||||
|
|
|
|
|
|
äîïî |
|
|
|
|
полно чия для работыисклю |
таблицей Listings |
|||||||||||||||
|
äñòâ |
|
представлнительныеия Mar ouxListings. Каждое полномочие предостав |
ò |
|||||||||||||||||||||||
|
|
|
|
|
|
|
список для другого агента (Reed). Не |
÷åí , ÷òî âû çàõ |
|
- |
|||||||||||||||||
равадопустимыйна рабо у |
|
|
лько с этойпроцесс |
|
óðîé. |
. |
|
|
|
|
, ïòè- |
||||||||||||||||
÷ |
дажедоставитьза |
|
|
к торыми он не в |
|
|
|
|
|
|
|||||||||||||||||
Mar oux |
îçìî |
|
|
|
|
|
вносить все болеемоасштабные изменения в таб |
||||||||||||||||||||
посредствонтром представлåíèÿ. |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
4. В первую |
֌ |
жностьтм |
|
те права äанного пользовзателя на включение данных |
|||||||||||||||||||||||
шение этойписи,блемы заключаетсяладеетом, чтобы создать процедурлицу, которая |
|||||||||||||||||||||||||||
строг |
ê |
|
|
ëèð |
|
àëà áû |
|
|
обновлений, и |
тем предоставить Mar oux |
|||||||||||||||||
|
REVOKE Insert ON Redwood.Mar ouxListings FROM Mar ouxK; |
|
|
|
|
||||||||||||||||||||||
Сейчас |
|
|
|
îñ |
|
|
|
|
цель созда |
|
ïð |
цедуру, к |
îðàÿ |
|
ëÿëà áû |
|
|
|
|||||||||
списки в б зу даííûõ. Îíà |
ëæíà |
|
|
|
îзможность выпо |
|
ðàáî ó äëÿ ëþ |
|
|||||||||||||||||||
б го агентнашаи автовнаятически включа |
|
ListingID, иденти лнятьдобавикор агента и к д |
|||||||||||||||||||||||||
For Sale (101). Â |
|
|
|
|
|
такжиметьизâлекать значение PropertyID изновыех д- |
|||||||||||||||||||||
íîé |
ормы. Наприìер, аг нтнадом жет обратиться к орме Property, чтобы |
ввести |
|||||||||||||||||||||||||
данные для новог |
|
îáú êòà |
|
|
|
|
|
о ко тактах. После вв да данных об |
|||||||||||||||||||
объекте и начальной |
ц ны пользователь должен щелкнуть на кнîïêå, è îðìà |
||||||||||||||||||||||||||
вызовет процедуру |
идеалезапишет ин ормацию в таблицу Listings. |
|
|
|
|
|

|
|
|
|
|
|
|
Назначение привилегий посредством представлений и проц дур |
CD145 |
|||||||||||
5. Для ого чтобы с |
стема ав оматически генерировала ListingID, вам нужно на- |
||||||||||||||||||
писа ь код для работы с |
таблицей Listings. Как владелец системы |
Redwood |
|||||||||||||||||
ââåäèòå |
следующие команды: |
|
|
|
|
|
|||||||||||||
|
CREA |
|
|
|
SEQUENCE seq Listings |
|
|
|
|
||||||||||
|
INC |
|
|
|
|
|
|
BY 1 |
|
|
|
|
|
|
|
|
|||
Ñëå |
STARTEMENTWI H 20000; |
|
|
|
чтобы процедура иденти ицир вала |
||||||||||||||
|
|
|
|
|
|
|
|
шаг несколько сложнее. |
|
|
|||||||||
агентадующийнаходила значение AgentID. Следует создать в таблице Agents допîëíè- |
|||||||||||||||||||
тельный столбец, содержащий пользовНадо,тельское имя для каждог агента. Ввести |
|||||||||||||||||||
пользов |
|
|
|
|
|
ое имя можно вручную, но проще с ор |
ть его, присоединив |
||||||||||||
к амилии |
|
первую букву имени. |
|
|
|
|
|
||||||||||||
|
|
|
тетельсктаблице Agents новый столбец Usernameмировустановите имя пользо |
||||||||||||||||
Добавьпо умолчанию. |
|
|
|
|
|
|
|
||||||||||||
6. Теп рь вы можете создать новую процедуру, которая будет добавлять строки к таб- |
|||||||||||||||||||
лицтеляistings. |
|
|
|
|
|
|
|
|
|
||||||||||
|
A |
L ER |
|
T BLE |
|
VARCHAR2(100)); |
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
Agents |
|
|
|
|
|||||||
|
UPDDATE |
|
|
|
|
|
|
|
|
||||||||||
|
SET |
|
|
(UsernameAgents= La tName | | |
|
|
|
|
|
||||||||||
|
Commit; |
|
|
|
|
|
|
|
|
|
|
||||||||
И наконец, вы можете создать процедуруSUBSTR(FirstName,1,1);которая добавит новые строки к таблице |
|||||||||||||||||||
Listings. |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
Create or Repla e Pro edure AddAgentListing( |
|
|
||||||||||||||||
|
|
|
Proper |
|
NUMB |
|
|
|
|
|
|
||||||||
|
|
|
Beg |
|
|
|
yIDate |
|
|
|
|
|
|
|
|||||
|
|
|
EndLisListDate DATDATE,R, |
|
|
|
|
|
|||||||||||
|
AS |
AskingPri NUMBER) |
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
AgentID |
NUMBER; |
|
|
|
|
|
|||||
|
BEGIND |
|
|
|
|
|
|
|
|
||||||||||
|
|
|
SE |
|
|
|
|
INTO nAgen |
|
|
|
|
|
||||||
|
|
|
FROM |
Agents |
WHERE UPPER(Username)=U er; |
|
|
||||||||||||
|
|
|
CLAREINS CT |
INTO Listings (Lis |
ingID, |
Proper yID, L stingAgentID, |
|||||||||||||
|
|
|
|
Sale tatu ID, B |
|
|
EndListDate, AskingPri e) |
|
|||||||||||
|
|
|
VALUES |
( |
ings.NextVal, |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
seq Lis |
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Proper yI |
|
|
|
|
nAgentID,101, ginListDate,EndListDatBeg ate, );AddAgentListing.Ask gPri
END;COMMIT;

CD146 |
|
лава 12. Обеспечение защиты базы данных |
|
|
|
|
|
|
|
|
|
|
|||||||||
Чтобы пон ть к д пр це уры, надо учесть, что системная перем нная User ис |
|||||||||||||||||||||
пользуется для выбора пользовательского имени агента, ко орый зарåгис рировался |
|||||||||||||||||||||
и вызвал процедуру. |
Посредством Username ос |
|
|
ляется |
|
|
соотве с вую |
||||||||||||||
щег AgentID. Выражение |
INSERT для работыуществтаблицей Listings досòà |
÷íî |
|||||||||||||||||||
простое. Все ключевые зна |
|
за исклю |
|
PropertyIDпоиск, лностью контро |
|||||||||||||||||
7. Предоставьте Mar ouxKчения,другим агентам возможность |
выполнять новую проце- |
||||||||||||||||||||
лируются процедурой. Пользователь не видитчениемне мо |
ет изменить их. |
|
|
|
|
||||||||||||||||
äóðó. |
|
|
|
|
|
|
|
|
TO Agent; |
|
|
|
|
|
|
|
|
||||
|
GRANT EXECUTE ON |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
8. Зарегистрируйтесь как Mar ouxK и проверьте процедуру. |
|
|
|
|
|
|
|
||||||||||||||
|
EXEC Redwood.AddAgentListing(773, '01-MAR-2006', |
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
èяниеаботы?мрироватьсязируетеListingID=20000образом,,поскмог'Млок01лькуд,жно-изреализотJULтоменитьсясвоеговы-увиди2006овапред,жно'имени.,ье,запускодляегоставить150000);чтоувнеслегалиеренностиудалитьагентугенеражносновой.ПочемуненужнуюмпанииправорвамявпослеляетсянадоINж-- |
|||||||||||||||
|
|
|
|
|
äåòë |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
à |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
выражвыпопровхвнимаамзнаелåченийпридетсяркуиеятьвсего,льноINSERTAgentID=10041такиегэтпроанмногзарегис.состбуонкретноеТ |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
пришлосьобычндовавыпозаписьЕсИтельнлнитьснова.Вероятнв |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
SERT, UPDATE и, может быть, DELETE к таб |
|
Listings? Íà ýò |
|
â |
|
ìîæ |
. Â |
||||||||||||||
тветить |
|
îëüê âû, òàê êàê ê |
|
|
решенилице |
зависит |
специ ики к |
|
|
||||||||||||
изменитьентстважную ин ормацию. |
|
|
|
|
|
|
|
ëàñè åñü, ÷ò |
|
данные не яв - |
|||||||||||
случае аг |
а средней величины вы, возможно, |
|
|
||||||||||||||||||
ются кри ичными |
уководств |
должно |
ерятьсогтрудникам. Однакопросесть |
ðèñê, |
|||||||||||||||||
что агент, |
которог |
áûë êîí ëèê |
с рукдоводством, может из мести удалить или |
||||||||||||||||||
Виртуальная частная баз |
|
данных и гри секретности |
|
|
|||||||||||||||||
|
|
вир уальной частной базы данных (virtual private database VPD) появилось |
|||||||||||||||||||
жтносительнопольз в теля, лишь теми |
данными, кот рые имею |
íåï |
|
|
дственноераспорятно- |
||||||||||||||||
Понятие |
|
недавно. Цель |
ограничить |
|
|
ì |
|
по адающую в |
|
|
|||||||||||
ег подразделения. Потреби елю |
доста |
чно видеть лацию,шь |
|
îñðå |
|
àçû. VPD |
|||||||||||||||
шение |
|
нему. Наприме , со рудник сможет принсматрор |
â òü |
редак |
|
|
òü |
íûå, |
|||||||||||||
онкретнВир у |
ая частная база данных выполняет свою задачу, создав |
представле- |
|||||||||||||||||||
касающиеся его самого. Менеджеру ж |
|
будут доступны запи и |
тировсех сотрудаí êàõ |
||||||||||||||||||
ìîæ |
|
|
бражать |
ëèöû ò |
àê áóäò |
ни содержат тольксобствданнûе, закасающиеся |
|||||||||||||||
ê |
|
|
го пользовтабтеля илиак,онкретной компании. |
òàþ |
òàê æå, ê |
|
средства, |
||||||||||||||
íèÿ |
äîïîàëüíительным выражением WHERE. Они |
|
|
||||||||||||||||||
обсуждавшиеся в предыдущих разделах. Отличиерабов т м, что после наястройки |
VPD |

àâò à |
|
|
|
|
|
|
|
Назначение |
|
|
|
|
|
|
посредством представлений и проц дур |
|
|
CD147 |
||||||||||||||||||||||
|
|
|
|
|
|
|
изменяет |
|
|
|
запросы. Это |
хорошо и плох . Для |
|
специалистов, не |
||||||||||||||||||||||||||
|
|
для всех таблиц,процпривилегийдставленийнастраивдругих объек ов. Помочь |
â |
определении |
ïî- |
|||||||||||||||||||||||||||||||||||
имеющих |
доста очног |
|
|
|
|
работы, задача |
|
|
|
|
при эт м снижается |
|||||||||||||||||||||||||||||
уровеньтическионтроля за |
|
|
|
опытасе м. VPD |
|
|
|
|
|
путем устано |
|
ки детальных |
|
|||||||||||||||||||||||||||
ïî |
|
|
|
|
íàäî |
|
|
|
|
|
|
òü |
|
ðîëè àä |
инисттакжупрощается,ора базы данных. |
|
|
|
пасности самых |
|||||||||||||||||||||
гиченлитикîìó, |
|
такжорый давнограниченияпри еня тся в |
армиях и службах без |
|
|
|||||||||||||||||||||||||||||||||||
|
|
может Ora le Poli y Manager. М жно |
|
|
|
использов ть пакеты SYS CONTEXT |
||||||||||||||||||||||||||||||||||
ëèòDBMS RLS, чтобы задать |
|
|
|
|
|
|
|
вручную. В любом |
случае |
äëÿ ð |
|
|
àíèÿ |
|||||||||||||||||||||||||||
|
 Ora le |
|
|
|
принадлежареализ вана с стеì |
ãðè îâ |
екретности. Эт |
|
|
подхмировд |
|
|||||||||||||||||||||||||||||
пример, |
|
|
|
|
|
|
|
|
|
|
секретно , |
|
|
|
|
|
èëè êîí è |
|
|
|
|
|
. Òàêæ |
произв - |
||||||||||||||||
разных госу |
|
|
|
|
. Каждому элементу данных присва вается гри |
|
|
|
|
|
|
анало |
||||||||||||||||||||||||||||
дится |
ì |
|
|
еркдарствна |
òñ |
|
|
|
|
нарушен |
й секретности дляденциальнольз телей |
|
|
|
зличных |
|||||||||||||||||||||||||
ñòåì |
|
|
|
|
|
|
|
|
секретности предо |
|
òèò |
|
|
наивысшегпольз |
òåëÿ |
|
|
нексекретности,доста тно,чными |
||||||||||||||||||||||
объектпров.совТ льк имея соо |
етствующсекретноправа, |
можно получить доступ |
|
|
|
òíîé |
||||||||||||||||||||||||||||||||||
инно огораничации |
|
|
доступныеутствиеам данные |
òåìè, |
|
îðûå àì |
|
|
|
|
|
|
необх димы. |
|||||||||||||||||||||||||||
ãðè àìè |
|
|
|
|
|
|
|
высокимам надо инстраллировобращенть набор инструментальных средствтьсядл |
||||||||||||||||||||||||||||||||
Ò |
|
|
образ м, |
|
|
|
система к нтроля д |
упа будет |
|
|
|
|
|
оррек |
|
ñè- |
||||||||||||||||||||||||
акимав |
гри даннымов если |
|
|
|
|
уровнем |
секретности. Для настроенадействительноог чтобы оспользова |
|
||||||||||||||||||||||||||||||||
ïоддержкисекретности,вир уальн й |
частной |
базы данных. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
Ограничение |
доступа средствами приложения |
|
данны |
|
è ýòî |
|||||||||||||||||||||||||||||||||||
Åùå îäèí |
|
пособ обеспечения детального к нтроля при работе |
|
|
|
|
||||||||||||||||||||||||||||||||||
Startup è Management äëÿ |
|
|
|
жения Redwood Realty. Переместив |
|
тчеты, св |
||||||||||||||||||||||||||||||||||
íà |
|
|
|
|
|
средств контро |
|
непосредственнî |
в состав |
îð . à |
|
|
òðèì |
îðìû |
||||||||||||||||||||||||||
занные |
|
|
управлением, в орму Management, мы |
сделаем |
их менее смо |
|
|
|
|
äëÿ |
||||||||||||||||||||||||||||||
mentписание |
|
|
титься днактчетам. Ж |
|
|
|
|
скрыть кнопкщелкнутьManagement |
|
|
|
агентов |
||||||||||||||||||||||||||||
рядовых агентов. О |
|
|
о никтприлоне запрещает агентам |
|
на кнопкчевиднымиManage- |
|||||||||||||||||||||||||||||||||||
сделать так, чтобы |
îíà áûëà |
виднательнольк |
менеджерам. |
|
|
|
|
|
|
|
системнуюсвойств |
|||||||||||||||||||||||||||||
1. Запустите |
Forms Builder |
|
|
ткройте |
исх днуюраборму. Откройте |
|
|
|
||||||||||||||||||||||||||||||||
íèþ. Ì |
обрачевидное решение |
сделать кнопку Management невидимой по |
|
молча- |
||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
написать к д обработчик |
|
так, чтобы эта кнопка ста |
|
|
|
|
|
|
видим й |
|||||||||||||||||||||||||
переменную случае,User вы можете даж |
|
управлять представлением кнопкивиласьдоступо |
||||||||||||||||||||||||||||||||||||||
толькСамоев жно |
|
|
|
когда в |
|
|
|
|
регистрируется менеджер. Используя |
|
|
|
|
|
||||||||||||||||||||||||||
|
äëÿ |
кнопки Management |
системеустановите Visible=No. |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
ê íåé |
|
|
ó÷åò |
|
|
м того, какой им нно пользователь |
тает с системой. |
|
|
|
|
|
|
|||||||||||||||||||||||||||
|
Следующий ш г о ображение |
кнопки в случае, если пользовпалитртель является |
||||||||||||||||||||||||||||||||||||||
менеджером. |
|
Обратившись |
к представлению Session_Roles, можно увидеть, ис- |

CD148 |
ава 12. Обеспечение защиты базы данных |
|
|
|||||||||
|
льзуется ли |
ль Manager. Если проверка даст положительный рез льтат, кнопк |
||||||||||
èñõ äíîé |
ормой. еализу |
åå â |
|
провтдельной ункции на случай,чалесли онà |
||||||||
понадобится нам в дальнейшåì. |
|
|
ерку надо выполнить в на |
работы |
||||||||
Management должна стать видимой. Эту |
||||||||||||
2. Выберите раздел Program Units видеобъектном навига оре и |
íà êíîï |
|||||||||||
|
òàê, |
чтобы возвращалось значение |
Number, и добавьте |
код длящелкнитепров |
ðêè Ses- |
|||||||
|
е Create. Создайте ункцию назовите ее IsManager. Отре актируйте шаблон |
|||||||||||
|
sion Roles. |
|
|
|
|
|
|
|
|
|||
|
|
FUNCT ON IsManager RETURN Number IS |
|
|
|
|||||||
|
|
BEGINGINnRoles NUMBER; |
|
|
|
|
|
|
|
|||
|
|
D CLA |
|
|
|
|
|
|
|
|
|
|
|
|
|
Return nRoles; |
|
|
|
|
|
|
|
||
|
|
|
SELECT Count(Role) INTO nRoles FROM Session_Roles |
|
||||||||
|
|
|
WHERE |
Role='MANAGER'; |
|
|
|
|
|
|
||
|
|
END; |
|
|
|
|
|
|
|
|
|
|
|
|
END; |
|
|
When-New-Form-Instan e исходной |
мы надо создать гло |
||||||
3. В обработчик |
||||||||||||
|
бальную |
переменную, в которой |
|
|
áû |
ез льтаты выполнения |
||||||
|
ни , чтобы выяснить, должна ли хранилиськнопк Management быть видимой. Добавьтеункции |
|||||||||||
|
IsManager. Это позволит использов ть их в дðугих ормах. Проверьте значе- |
|||||||||||
|
имеющимся |
выражениям следующие строки: |
|
|
|
|||||||
|
|
|
|
.IsManager := IsManager(); |
|
|
|
|
||||
|
|
:GLOBALIF (:G OBAL.IsManager > 0) THEN |
|
|
|
|
||||||
4. |
|
SET_ITEM_PROPERTY(' |
|
|
|
' |
VISIBLE, |
|
||||
|
è.сходнуюлируйтеЕслиIF; выипосотабрмулучхранителицазапуститевыSession'процессеBTNункциюMANAGEMENTееRoles.компиляциизмененный,то,',испоENABLEDсообщениельзуякдобработчикаFilePROPERTYоб ошибке,. TRUE);Скпровмпиликото- |
|||||||||||
|
руйтеСкомпромСо тENDупоминается |
|
|
|
|
|
|
|
|
|
|
|
-- |
|
|
|
åò |
|
|
Поаныпасностиобратитесьизов.кнопкисхтносящиесяНарисднойдляарешение.Managementкработы12ней.ормы6кпокзадачамтнес.имениазанобазойПоидеально,пîáíûуправленияпользэтданныхкно,ìуковобразоронитноателя.орое.скореенемMarвидятвыConneмогутouxKноситпользжетеобраt,, ковскрытькосметитьсяателиорыйерь |
|||
любыекAgentнесресвязанСПрите,дств;очкизарегистрировпроверкормыамнемуправльюенияилитсутствуленияManagerормыбезтчеты, |
|
|
|
|
тический х актер. |
льз тель, к орый знает имя |
ìû Management, ìîæ |
|

Назначение привилегий посредством представлений и процедур |
CD149 |
management button is not available
ис. 12.6. Исходная орма, предоставляемая пользователям, не принадлежащим роли |
|
|||||
Manager |
|
|
è |
дственно открыть орму. Данный подход предпо |
|
|
изменить URL в брауз |
|
|||||
лагает, чт г |
òåõ ïîð, |
å |
à |
недост |
ïîýò ìó ìû î ÷åòû íå óäóò |
|
ткрыты до |
|
льзователь не найдет способ определить их. Необх |
- |
|||
äèìî |
ов ть дополнит льную проверкупны,в каждой управляющей орме, чтîáû |
|||||
гарантировреализть,лобальнычт т лькпокпеременныенепосреджеры |
запустить ее. |
|
Откройте орму Managementдующийотредактируйтемогут обработчик события When-New- Form-Instan e. Добавьте сле к д:
B
IFDNDXITEEFAULTGIN(:GLOBORM;VAL.UE(0,IsManager'GLOBAL<.1)IsManagerTHEN');

CD150 лава 12. Обеспечение защиты базы данных |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
IF (Not |
|
|
orm Su ess) THEN |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
IT |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
NDCEPTION WHEN OTHERS THEN |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
EXIT |
|
|
FORM; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
END; |
обработчика |
|
|
|
|
|
ляет выражение IF, к то |
закрывает орму, |
|
ñëè |
||||||||||||||||||||||||
польз |
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||
атель не |
|
ляе ся менеджером. Однако, чтобы |
ïðоедотвратить |
|
рийноå |
|
çà |
||||||||||||||||||||||||||||||
â |
|
|
|
èå |
ñëå |
|
явие ого,составчт |
ã |
|
|
переменная не |
|
|
|
|
ì |
|
|
|
|
|||||||||||||||||
датьОсновз ачение по умолчанию для GLOBAL.IsManager. В составделена,обрабо |
|
|
òàê |
||||||||||||||||||||||||||||||||||
жершеприсутствуюдст |
дв проверки лобальнаяналичие |
|
. Привопреденный âûøåтчикнадомож- |
||||||||||||||||||||||||||||||||||
но скопировать и поместить |
в состав обработчикаошибокаждой ормы, предназначенной |
||||||||||||||||||||||||||||||||||||
для управления. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
àíèÿ |
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
данных посредством |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
Ши рование мощное сре |
|
|
|
защиты, но необх димо представлять себе, чт |
|
||||||||||||||||||||||||||||||||
Защитаìî ÷åã |
|
нельзя |
|
елать |
|
|
åã |
помощью. В пр ц |
|
|
|
|
|
ключевое |
|||||||||||||||||||||||
значение испîльзуется |
äëÿ |
|
|
|
|
|
ования обычн г |
ò ê òà, |
рез льтате |
|
ëó÷à- |
||||||||||||||||||||||||||
етсяжно,к дированная |
|
äîâ |
ельность, ск ывающаяøèñ á õ |
ðîâ |
|
|
мацию. |
||||||||||||||||||||||||||||||
 íà ò ÿùåå |
|
|
|
|
|
различаюдствдв |
|
|
|
|
|
|
ÿ: |
|
л зованияиемпо |
|
|
|
î |
||||||||||||||||||
ê þ÷à |
ñ |
|
|
|
|
льзованипосле |
|
двух ключей. При ø |
êëþ÷ |
|
|
äíóþ |
îäíîãîð |
|
|
|
ֈ, |
||||||||||||||||||||
|
|
|
с мметрично |
|
ши ровпреобраздин |
òîò æ |
|
|
|
|
как приклюдногди |
||||||||||||||||||||||||||
рован |
è, òàê |
|
|
при дек диров |
|
иипринципада ных |
|
àíèåприменяется |
|
двух ключей, |
|||||||||||||||||||||||||||
è |
|
|
|
|
|
время |
помощью |
|
ткрытого ключа, пре |
полагает |
|
льзование для к |
|
||||||||||||||||||||||||
|
èðîâанияисподек дирования раз ых ключей. ЕслиØè ðîâäèí êëþ |
испоиз |
àðû áûë |
|
|
|
|
|
|
||||||||||||||||||||||||||||
äëÿ |
|
|
|
àíèÿ, |
|
|
|
|
|
àíèè,òü èí |
àö þ |
|
|
|
|
лькмощьюс помощьюприменент |
|||||||||||||||||||||
|
|
ключа. |
Основным |
|
|
|
|
|
|
|
|
симметрич огможнодировк ания яв |
|
|
âûñî |
àÿ |
|||||||||||||||||||||
|
|
|
|
ä |
|
|
|
|
|
|
|
. Недопреимуществта ок таког кодиров |
èÿ ñëîæ |
|
|
п редачи |
лючево- |
||||||||||||||||||||
ãпроизвзначен |
тельность. К дирование |
|
помощью двух ключей устра яет этость |
доста ок, |
однако |
||||||||||||||||||||||||||||||||
скорость |
|
рования |
деши ровки ок |
ается |
значительно нижне. В большинстве |
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
ñòåì äëÿ |
|
|
|
|
àíèÿ ïåðå àзываемых |
|
|
|
|
применяюляетсядва ключа, |
|||||||||||||||||||||
|
|
äëÿøè ðîâания хранрасшимых данныхров |
îäèí êëþ÷. ×àñò |
|
ши рование двумя ключами |
||||||||||||||||||||||||||||||||
применяется |
лишь для передачи единственного ключа,сообщенийк торый затем используется в |
||||||||||||||||||||||||||||||||||||
реальныходе сеанса. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
֌ |
глобальной сети |
|
|
|
|
|
|
||||||||||||||
Защита данных при |
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
Начиная с верс и Ora le 9i |
|
|
|
|
|
орм ипотчетов ос |
|
|
|
|
в основном по |
ãëîбальной сетè. Такой подхдоставкпередалькущественно упðощаетуществляетсярабо у приложением, поск льку пользователю нужен о Web-браузе и учетная запись на сервере, при

прох дят множеств |
|
|
|
|
|
|
Защита данных п средством ши рования |
|
CD151 |
||||||||||||||||||||||||||||||||||||||
промежуточных узлов. Принастройкэт м о |
|
|
|
|
|
|
|
|
о просто п рехва- |
||||||||||||||||||||||||||||||||||||||
м ему не приходится |
|
|
|
|
|
|
сложную |
|
|
у каждой м |
|
|
|
|
|
. Î |
|
î Èí |
|
||||||||||||||||||||||||||||
ернет представляет собойвыполнятьткр ую |
|
|
|
|
где данные на пути |
|
|
|
клиента днаксерверу |
||||||||||||||||||||||||||||||||||||||
этить с общени , пр читать |
|
|
|
и дажсеть,из |
|
|
их. Беспровтносительашиныые сети |
åùå áî |
|
|
|||||||||||||||||||||||||||||||||||||
íèÿ, âûïîлняющегятностьîñÿ â |
|
|
данныеой среде. С |
|
|
тное решение с |
|
|
|
îèò â |
|
|
|
àíèè |
|||||||||||||||||||||||||||||||||
|
Проблема, связанная |
|
ï ðåõâ òом ин орменитьации, |
ктуальна для |
каждог |
п иложлее |
|||||||||||||||||||||||||||||||||||||||||
увеличивают в ро |
|
|
|
|
|
|
|
à. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
òàíû, |
|
|
соответству |
|
||||||||||||||||||||
п редава мых данных. Т |
|
|
|
|
àíèÿ |
к ши тандарров ю д вно |
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||
êèõ |
|
|
|
дукдствов для Web- |
|
|
|
|
. В большинствспециализир |
íèõ |
|
|
|
|
|
льзуются сре ания |
|||||||||||||||||||||||||||||||
ñòâ |
|
|
ñðå |
|
|
а встроены в |
|
|
|
|
|
|
Web-браузеры. Посквырабольку системы |
|
. Однако, |
||||||||||||||||||||||||||||||||
|
|
поддержки SSL |
строеныеровбоëüшинствразрабоWeb-браузеровиспо |
|
|
â |
|
|
|||||||||||||||||||||||||||||||||||||||
ющиен обх димы многим, нек |
бовсновныек мпании |
|
|
|
уются на созданиишик ров |
|
|
||||||||||||||||||||||||||||||||||||||||
SSL (se ure so kets layer), |
ïåðâ |
ֈ |
|
íî |
|
|
|
танные к мпанией Nets ape.ммерчеСдств- |
|||||||||||||||||||||||||||||||||||||||
сообщениеспространяетсяпомощью |
ткрыт |
о ключа, |
|
|
÷åãî |
|
|
может свободно переда- |
|||||||||||||||||||||||||||||||||||||||
äëÿ |
|
|
î, ÷ò |
|
|
|
скон игурировонать SSL, надо получить ци ровой |
|
åð |
è èêàò. SSL |
|||||||||||||||||||||||||||||||||||||
использу |
|
|
вобых де сеанса ключи, |
доставляемые посредств м ин рас еровуктуры |
|
- |
|||||||||||||||||||||||||||||||||||||||||
крытого |
|
ключа (publi -key infrastru ture |
|
|
|
PKI). Основная особенность |
PKI ñ ñò |
èò |
|||||||||||||||||||||||||||||||||||||||
|
|
â |
|
|
|
|
свободно, а закрытый |
|
|
|
|
|
â |
|
|
|
|
. Web-браузер ши рует |
|||||||||||||||||||||||||||||
â |
|
ì, ÷ò |
|
|
|
|
й используются дв |
ключа |
|
открытый и закрытый. С помощью |
îдного |
||||||||||||||||||||||||||||||||||||
èç íèõ |
данные ши руются, а другой применяется для расши ровки. Открытый ключ |
||||||||||||||||||||||||||||||||||||||||||||||
ваться по сети. асши р |
|
|
àòü |
îã ñìîæ |
|
|
держитсяьк |
т, секретеоно |
|
доступ |
|
секретному |
|||||||||||||||||||||||||||||||||||
êëþ÷à. Îíè æ |
|
ñëó |
для и енти икациипослек мпании или по |
|
|
закрытыйов ля, владеющего |
|||||||||||||||||||||||||||||||||||||||||
ñåðâ |
ó, |
хранящемуся. Серти öèèêæàровыеõ äится приобретать в |
|
|
|
íûé |
специализирóþù éñÿ |
||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
íà |
|
|
|
|
åã. Ê |
|
æ |
|
|
|
|
учить секре |
|
|
|
|
|
|
|
|
|
÷? Äëÿ |
||||||||||||
этой цели служа |
|
|
|
ñåðâåð |
. |
àê |
òû. Ñ |
мощью серимеети ик та г нерируклются два |
|||||||||||||||||||||||||||||||||||||||
ðîâà ü |
серти деятельностиик амосто |
òü |
|
|
|
|
времяпределахорганизацмпании,к |
вы можете |
енери- |
||||||||||||||||||||||||||||||||||||||
Åñëè æ |
âàì |
|
|
|
îáåñï |
÷ |
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||
|
Èìåÿ öè ð âîé |
серти èятельнок , г надо инсталлиров ть на Web-сервере. Конкре ные |
|||||||||||||||||||||||||||||||||||||||||||||
на подеробной |
|
|
|
|
|
|
|
|
(â íàñò ÿùåå |
|
|
|
|
крупнейшей |
|
льзних является Verisign). |
|||||||||||||||||||||||||||||||
в строк |
|
адреса про ок л httpsсекретность, передав емые данн |
ò |
е ши руются авт онм и |
|
||||||||||||||||||||||||||||||||||||||||||
дейст ия, |
выпнадолняемые в проц ссе инсталляции, |
|
|
|
|
|
ерационной сг стемы |
||||||||||||||||||||||||||||||||||||||||
ïêè |
всех папок, нах дящихся |
|
åå |
|
|
|
|
|
е, подлежазависят |
|
|
|
|
|
|
анию. Затем айлы |
|||||||||||||||||||||||||||||||
ботает в беспр в |
|
|
сетиустановки-нибудь перехватит |
ткрытый |
ключ или заков |
|
- |
||||||||||||||||||||||||||||||||||||||||
ñåðâера. Инструкции по |
|
|
|
|
|
|
азработаны для |
|
сех п пулярных серверов. |
||||||||||||||||||||||||||||||||||||||
гурационныев данные,реносятсяне сможет расши ровазанть сообщение. |
Это можно сделать тдиролько |
||||||||||||||||||||||||||||||||||||||||||||||
Обычно созда |
|
|
|
новая папк |
|
ñåðâ |
|
у сообщается о |
|
ì, ÷ò |
|
все данные èç ýòîé |
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
айлы Ora leAS. Пользовсоставтель отк ывает шиисх днуюров |
îðìó, óê |
àÿ |
||||||||||||||||||||||||||||||||||||
ïрилож ния пå |
|
|
|
|
â ýò |
ïàïê è |
|
орректируются Appli ationPath и к |
|
|
|||||||||||||||||||||||||||||||||||||
чески. Описанный пр цесс |
|
|
|
ïîê |
|
|
íà |
рис. 12 7. Даже если польз |
азывтель |
||||||||||||||||||||||||||||||||||||||
с помощью закрытогднойключа,условнонах дящегося на сервере. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

CD152 лава 12. Обеспечение защиты базы данных
сервер
Сертифицирующая организация
сертификат Цифровой
|
|
|
|
|
|
|
|
|
|
|
сервера |
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Открытый ключ |
|
|
База данных |
||||||||||||
|
|
|
|
|
|
|
|
|
|
с |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ключ |
|
|
|
|
|
|
|
Закрытый ключ |
|
|
|
|
|
|
||||||
|
Клиентская |
|
Открытый |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
зашифрованные |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
программа |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
ключа |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
открытого |
|
|
|
в баздействительно |
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
дельныхю двух ключейданных |
|
|
|
|
|
||||||||||||||||
|
Шиис. 12.7ров. Ши аниерованиеотс помощ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Данные |
|
|||||||||||
|
|
|
|
|
Данные, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
помощью |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
В большинств |
|
случаев контро |
äî ò |
|
|
льзуется |
|
äëÿ |
|
ого, чтобы позволить |
èç |
|
||||||||||||||||
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
лекать данны |
èç áàçû |
|
|
зменять их то |
испотем, к о |
|
|
|
|
|
|
имеет на это пра- |
||||||||||||||||
|
https://server |
с |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Данные, расшифрованные |
|
|
|
|||||||||
себе, что произойдет, если злоумышленнильку удастся |
|
хитить айлы с ин ормацией |
|||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
с помощью закрытого ключа, |
|
||||||||
â . Однак иногда прихо |
|
òñÿ |
|
дусмупатривать дополнительную защиту. Представь |
|
||||||||||||||||||||||||
заказах. Затратив определенные |
усилия, он сможет |
прочитать ин рмацию |
узнать |
||||||||||||||||||||||||||
номер платежных карт потребпрелей. В Кали орнии |
|
|
находящегося на сервере |
|
|
|
|||||||||||||||||||||||
|
|
|
|
ует закон, предписываю |
|||||||||||||||||||||||||
ùèé |
|
вещать |
|
подобных с |
уац ях всех потреб телей (вскоре подобные законы |
||||||||||||||||||||||||
|
|
|
кодиров ть все криòè÷åñê |
важные |
нные, например, но |
|
платежных |
||||||||||||||||||||||
лак тельно, иде ти ик |
|
|
|
|
номера |
|
т.д. Подобнà ìåðà |
|
|
инстру |
ерие к к мпании. |
||||||||||||||||||
|
|
òíûå àëã |
èòìû øè ðîâàíèÿ. С помощью этог |
|
|
|
ìî |
|
çàê |
- |
|||||||||||||||||||
будут ïриняты |
|
в других ш |
|
тах). Чтобы |
|
åñïå÷èòü |
|
|
|
|
лнительную защиту, |
- |
|||||||||||||||||
стандаррав на тическирабо у |
|
|
|
|
|
|
dbms rypto. Эти данныхправповыситупаюмента |
действие при |
|||||||||||||||||||||
ров ть д нные пеационныед пакак помещать их в |
ó. Î |
àê |
|
от проц ссжнопр исхîäèò |
|||||||||||||||||||||||||
|
Ora le предоставляет |
|
|
åò dbms rypto |
äëÿ PL/SQL, |
кдоворомерареализованы |
|||||||||||||||||||||||
íå îì |
|
|
|
. Болеетем,ого, администратор |
áàçû |
|
|
|
|
äîëæ |
предоставить вам |
||||||||||||||||||
ïопробуйте зарегистрировутилитамиться в SQL*Plus следующим образом: |
|
|
|
|
|
|
|||||||||||||||||||||||
регистрации польз |
òåëÿ |
как sysdba. Если вы используеэте собственный сервер, |
|||||||||||||||||||||||||||
|
Con |
|
|
sys/<ñèñò ìíûé ï ðîëü> <èìÿ |
ð |
ð > |
|
|
|
|
|
|
|
|
|
||||||||||||||
|
Gra |
|
Exe ute on dbms rypto to |
<поль о т льско _имя> |
|
|
|
|
|
||||||||||||||||||||
|
Dias onne t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
sysdba |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|