ДОДЕЛУВАЊЕ, ОТВОРЕВАЊЕ и DENY дозволи за база на податоци
Јазикот за контрола на податоци (DCL) е подмножество на структурен јазик за пребарување (SQL) и им овозможува на администраторите на базата на податоци да го конфигурираат безбедносниот пристап до релациони бази на податоци. Тој го надополнува Јазикот за дефинирање на податоци (DDL), кој се користи за додавање и бришење на објектите на базата, а Јазикот за манипулација со податоци (DML) се користи за добивање, вметнување и менување на содржината на базата на податоци.
DCL е наједноставниот од SQL подмножества , бидејќи се состои од само три команди: GRANT, REVOKE и DENY. Во комбинација, овие три команди им овозможуваат на администраторите флексибилност да ги постават и отстранат дозволите за базата на податоци на исклучително грануларен начин.
Додавање на дозволи со командата GRANT
Командата GRANT се користи од администраторите за да додадат нови дозволи на корисникот на базата на податоци . Таа има многу едноставна синтакса, дефинирана како што следува:
ДОДЕЛУВАЊЕ [привилегија] ON [објект] ДО [корисник] [СО ГРАНТНА ОПЦИЈА]Ова е преглед на секој од параметрите што можете да ги наведете со оваа команда:
- Привилегијата може да биде или клучен збор ALL (да додели широк спектар на дозволи) или специфична база на податоци дозвола или збир на дозволи. Примерите вклучуваат CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE и CREATE VIEW.
- Објект може да биде секој објект на база на податоци. Валидните опции за привилегии се разликуваат врз основа на видот на објектот на базата на податоци што го вклучувате во оваа клаузула. Обично, објектот ќе биде или база на податоци, функција, чуваат процедура , маса или поглед.
- Корисникот може да биде секој корисник на база на податоци. Можете исто така да ја замените улогата на корисникот во оваа клаузула ако сакате да ја користите безбедноста на база на податоци базирана на улоги.
- Ако ја вклучите изборната клаузула WITH GRANT OPTION на крајот од командата GRANT, вие не само што му го доделувате на одреден корисник дозволите дефинирани во изјавата SQL, туку и им овозможуваат на корисникот да им ги додели тие истите дозволи на други корисници на базата на податоци. Поради оваа причина, користете ја оваа клаузула со внимание.
На пример, да претпоставиме дека сакате да му дадете на корисникот Џо способност да добива информации од табелата на вработените во базата на податоци наречена HR. Може да ја користите следнава команда на SQL:
Донација селекција на HR.employees на ЏоЏо сега ќе има можност да добива информации од табелата на вработените. Меѓутоа, тој нема да може да им дозволи на други корисници дозвола за добивање на информации од таа табела, бидејќи не ја вклучивте клаузулата WITH GRANT OPTION во изјавата GRANT.
Отповикување пристап до базата
Командата REVOKE се користи за отстранување пристап до базата од корисник што претходно го добил таков пристап. Синтаксата за оваа команда е дефинирана како што следува:
ОТВОРАЈ [ОГРАНИЧУВАЊЕ НА ОПЦИЈА ЗА] [дозвола] ON [објект] од [корисник] [CASCADE]Ова е преглед на параметрите за командата REVOKE:
- Дозволата ги наведува дозволите за базата на податоци за да се отстранат од идентификуваниот корисник. Командата ги укинува двете тврдења GRANT и DENY претходно направени за идентификуваната дозвола.
- Објект може да биде секој објект на база на податоци. Валидните опции за привилегии се разликуваат врз основа на видот на објектот на базата на податоци што го вклучувате во оваа клаузула. Обично, објектот ќе биде или база на податоци, функција, чуваат процедура, маса или поглед.
- Корисникот може да биде секој корисник на база на податоци. Можете исто така да ја замените улогата на корисникот во оваа клаузула ако сакате да ја користите безбедноста на база на податоци базирана на улоги.
- Одредбата GRANT OPTION FOR ја отстранува способноста на одреден корисник да му даде дозволена дозвола на други корисници. Забелешка : Ако ја вклучите клаузулата GRANT OPTION FOR во изјава REVOKE, примарна дозвола не е отповикана. Оваа клаузула ја поништува само способноста за доделување.
- Опцијата CASCADE, исто така, ја отповикува одредената дозвола од секој корисник што одреден корисник ја даде дозволата.
На пример, следнава команда ја отповикува дозволата доделена на Џо во претходниот пример:
Одбијте SELECT на HR.employees ОД ЏоЕксплицитно одбивање пристап до базата
Командата DENY се користи за експлицитно спречување на корисникот да добие одредена дозвола. Ова е корисно кога корисникот е член на улога или група на која им е доделена дозвола, и сакате да го спречите тој поединечен корисник да ја наследи дозволата со создавање на исклучок. Синтаксата за оваа команда е како што следува:
DENY [дозвола] ON [објект] TO [корисник] Параметрите за командата DENY се идентични со оние што се користат за командата GRANT.
На пример, ако сакате да се осигурате дека Матеј никогаш нема да добие можност за бришење на информации од табелата на вработените, издадете ја следнава команда: