Језик контроле података (ДЦЛ) за дозволе базе података
Тхе Језик контроле података је подскуп језика структурираних упита. Администратори базе података користе ДЦЛ да конфигуришу безбедносни приступ релационим базама података. То допуњује Језик дефиниције података, који додаје и брише објекте базе података, и Језик за манипулацију подацима, који преузима, умеће и мења садржај базе података.
ДЦЛ је најједноставнији од СКЛ подскупова, јер се састоји од само три команде: ГРАНТ, РЕВОКЕ и ДЕНИ. Комбиновано, ове три команде пружају администраторима флексибилност да подесе и уклоне дозволе базе података на детаљан начин.
Додавање дозвола помоћу команде ГРАНТ
Команда ГРАНТ додаје нове дозволе кориснику базе података. Има веома једноставну синтаксу, дефинисану на следећи начин:
ГРАНТ [привилегија]
УКЉУЧЕНО [објекат]
ДО [корисника]
[СА ОПЦИЈОМ ГРАНТ]
Ево резимеа сваког од параметара које можете доставити овом командом:
- Привилегија — може бити или кључна реч СВЕ (за доделу широког спектра дозвола) или одређена дозвола базе података или скуп дозвола. Примери укључују ЦРЕАТЕ ДАТАБАСЕ, СЕЛЕЦТ, ИНСЕРТ, УПДАТЕ, ДЕЛЕТЕ, ЕКСЕЦУТЕ и ЦРЕАТЕ ВИЕВ.
- Објекат — може бити било који објекат базе података. Важеће опције привилегија се разликују у зависности од типа објекта базе података који укључите у ову клаузулу. Обично ће објекат бити или база података, функција, ускладиштена процедура, табела или поглед.
- Корисник — може бити било који корисник базе података. Такође можете заменити улогу за корисника у овој клаузули ако желите да користите безбедност базе података засновану на улози.
- Ако укључите опционо СА ОПЦИЈОМ ГРАНТ клаузулу на крају команде ГРАНТ, не само да одређеном кориснику дајете дозволе дефинисано у СКЛ наредби, али такође даје кориснику дозволу да им даље додели исте дозволе за друго корисника базе података. Из тог разлога, пажљиво користите ову клаузулу.
На пример, претпоставимо да желите да доделите кориснику Јое способност преузимања информација из запослени сто у а база података позвани ХР. Користите следећу СКЛ команду:
ГРАНТ СЕЛЕЦТ
НА ХР.запослени
ТО Јое.
Јое може да преузме информације са стола запослених. Он, међутим, неће моћи да одобри другим корисницима дозволу за преузимање информација из те табеле јер ДЦЛ скрипта није укључивала клаузулу ВИТХ ГРАНТ ОПТИОН.
Опозив приступа бази података
Команда РЕВОКЕ уклања приступ бази података од корисника коме је такав приступ претходно одобрен. Синтакса за ову команду је дефинисана на следећи начин:
ОПОЗОВИ [ДОБРИ ОПЦИЈУ ЗА] [дозволу]
УКЉУЧЕНО [објекат]
ОД [корисника]
[КАСКАДА]
Ево резимеа параметара за команду РЕВОКЕ:
- Дозвола — специфицира дозволе базе података које треба уклонити од идентификованог корисника. Команда опозива и ГРАНТ и ДЕНИ тврдње које су претходно направљене за идентификовану дозволу.
- Објекат — може бити било који објекат базе података. Важеће опције привилегија се разликују у зависности од типа објекта базе података који укључите у ову клаузулу. Типично, објекат ће бити или база података, функција, ускладиштена процедура, табела или приказ.
- Корисник — може бити било који корисник базе података. Такође можете заменити улогу за корисника у овој клаузули ако желите да користите безбедност базе података засновану на улози.
- Тхе ОПЦИЈА ГРАНТ ЗА клаузула уклања могућност наведеног корисника да додели наведену дозволу другим корисницима. Ако укључите и ОПЦИЈА ГРАНТ ЗА клаузуле у изјави РЕВОКЕ, примарна дозвола се не опозива. Ова клаузула укида само могућност давања.
- Тхе ЦАСЦАДЕ опција такође опозива наведену дозволу свим корисницима којима је наведени корисник дао дозволу.
Следећа команда опозива дозволу дату Џоу у претходном примеру:
РЕВОКЕ СЕЛЕЦТ
НА ХР.запослени
ФРОМ Јое.
Експлицитно одбијање приступа бази података
Команда ДЕНИ експлицитно спречава корисника да добије одређену дозволу. Ова функција је корисна када је корисник члан улоге или групе којој је додељена дозвола, а ви желите да спречите да тај појединачни корисник наследи дозволу тако што ћете направити изузетак. Синтакса за ову команду је следећа:
ЗАБРАНИ [дозвола]
УКЉУЧЕНО [објекат]
ДО [корисника]
Параметри за команду ДЕНИ су идентични онима који се користе за команду ГРАНТ. На пример, ако желите да осигурате да Метју никада неће добити могућност да избрише информације из табеле запослених, издајте следећу команду:
ДЕНИ ДЕЛЕТЕ
НА ХР.запослени
ТО Маттхев.