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