GRANT, REVOKE եւ DENY բազայի թույլտվությունները
Տվյալների կառավարման լեզուն (DCL) կառուցվածքավորված հարցման լեզու (SQL) ենթաբազմություն է եւ թույլ է տալիս տվյալների բազայի ադմինիստրատորներին կարգավորել հարաբերական տվյալների բազաների անվտանգությունը: Այն լրացնում է Data Definition Language (DDL), որն օգտագործվում է տվյալների բազայի օբյեկտների ավելացման եւ վերացման համար, եւ Data Manipulation Language (DML), որն օգտագործվում է տվյալների բազայի բովանդակությունը վերբեռնելու, ներդնելու եւ փոփոխելու համար:
DCL- ը ամենալավ SQL- ի ենթահամակարգերից է , քանի որ այն բաղկացած է ընդամենը երեք հրամաններից `GRANT, REVOKE եւ DENY: Համակցված, այս երեք հրամաններն ապահովում են ադմինիստրատորներին ճկունություն, տվյալների շտեմարանների թույլտվությունները սահմանելու եւ հեռացնելու չափազանց խճճված ձեւով:
Թույլտվությունները ՀԱՎԵԼՎԱԾ Հրամանով ավելացնելով
GRANT հրամանին օգտագործվում է ադմինիստրատորների կողմից, տվյալների բազայի օգտագործողին նոր թույլտվություններ ավելացնելու համար: Այն ունի շատ պարզ տեքստ, որը սահմանվում է հետեւյալ կերպ.
ԳՐԱՆԹ [արտոնություն] ON [օբյեկտ] TO [օգտվողի] [ՀԱՎԵԼՅԱԼ ՕՊՏԻԱՅԻ ՀԵՏ]Ահա այս հրամանով կարող եք մատակարարել պարամետրերից յուրաքանչյուրը:
- Արտոնությունը կարող է լինել ALL- ը (թույլտվության բազմազանություն տրամադրելու համար) կամ որոշակի տվյալների բազայի թույլտվություն կամ թույլտվությունների սահմանում: Օրինակներ են CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE եւ CREATE VIEW:
- Նյութը կարող է լինել ցանկացած տվյալների բազայի օբյեկտ: Փաստաթղթերի վավերական տարբերակները տարբերվում են տվյալ կետում ներառված տվյալների բազայի տեսակի վրա: Սովորաբար օբյեկտը կլինի կամ տվյալների բազան, գործառույթը, պահվող ընթացակարգը , սեղանը կամ դիտումը:
- Օգտվողը կարող է լինել ցանկացած տվյալների բազայի օգտագործող: Դուք կարող եք նաեւ փոխել դերը տվյալ ենթաբաժնում օգտագործողի համար, եթե ցանկանում եք օգտագործել դերի վրա հիմնված տվյալների բազայի անվտանգություն:
- Եթե դուք GRANT- ի պատվիրատուն վերջում ընդգրկում եք GRANT OPTION- ի ցանկը, ապա Դուք ոչ միայն տրամադրեք տվյալ օգտվողի թույլտվությունները, որոնք սահմանվում են SQL- ի հայտարարության մեջ, այլ նաեւ հնարավորություն են տալիս օգտվողին նույն թույլտվությունները տրամադրել այլ տվյալների բազայի օգտվողներին: Այդ պատճառով օգտագործեք այս դրույթը խնամքով:
Օրինակ, ենթադրեք, որ ցանկանում եք օգտվող Joe- ին տրամադրել տեղեկատվություն HR- ով կոչվող տվյալների շտեմարանում աշխատողների աղյուսակից տեղեկատվություն ստանալու հնարավորություն: Դուք կարող եք օգտագործել հետեւյալ SQL հրահանգը.
ՀՐԱՆՏ ՍԵԿՏՈՐԸ ՀՐԱՊԱՐԱԿԵԼՈՒ ՄԱՍԻՆ ՋոJoe- ն այժմ հնարավորություն կունենա տեղեկատվություն ստանալ աշխատակիցների սեղանից: Այնուամենայնիվ, նա չի կարողանա այլ օգտվողներին թույլ տալ, որ այդ աղյուսակից ստանալու տեղեկատվություն ստանալու համար, քանի որ GRANT- ի հայտարարության մեջ չեք ներառել «ԳՐԱՆԹ» -Ի ՕԳՏԱԳՈՐԾՄԱՆ ՀՈԴՎԱԾԸ:
Վերացնել տվյալների բազան
REVOKE հրամանը օգտագործվում է տվյալների մուտքի հեռացման համար, նախկինում նման մուտքի թույլատրված օգտագործողի կողմից: Այս հրամանի համար նախատեսված շարադրանքը սահմանվում է հետեւյալ կերպ.
REVOKE [GRANT OPTION FOR] [թույլտվություն] ON [օբյեկտի] FROM [օգտվողի] [CASCADE]Ահա REVOKE հրամանի պարամետրերի վերլուծություն.
- Թույլտվությունը սահմանում է նույնացված օգտվողիից հեռացնելու բազայի թույլտվությունները: Հրահանգը վերացնում է ինչպես GRANT- ի, այնպես էլ DENY- ի հավաստումները, որոնք նախկինում տրված թույլտվության համար:
- Նյութը կարող է լինել ցանկացած տվյալների բազայի օբյեկտ: Փաստաթղթերի վավերական տարբերակները տարբերվում են տվյալ կետում ներառված տվյալների բազայի տեսակի վրա: Սովորաբար օբյեկտը կլինի կամ տվյալների բազան, գործառույթը, պահվող ընթացակարգը, սեղանը կամ դիտումը:
- Օգտվողը կարող է լինել ցանկացած տվյալների բազայի օգտագործող: Դուք կարող եք նաեւ փոխել դերը տվյալ ենթաբաժնում օգտագործողի համար, եթե ցանկանում եք օգտագործել դերի վրա հիմնված տվյալների բազայի անվտանգություն:
- ՀՈԴՎԱԾԻ ՎԵՐԱԲԵՐՅԱԼ ԸՆԴՀԱՆՈՒՐ ԴՐՈՒՅՔԸ վերացնում է նշված օգտագործողի թույլտվությունը տրամադրել տվյալ թույլտվությունը այլ օգտվողներին: Նշում . REVOKE- ի հայտարարության մեջ ներառեք GRANT OPTION- ի դրույթը, գլխավոր թույլտվությունը չեղյալ չի համարվում: Այս կետը վերացնում է միայն տրամադրման ունակությունը:
- CASCADE- ի տարբերակը նաեւ վերացնում է նշված թույլտվությունը ցանկացած օգտվողից, որը նշված օգտվողը թույլտվություն է տվել:
Օրինակ, հետեւյալ հրահանգը վերացնում է նախորդ օրինակում Ջոին տրված թույլտվությունը.
REVOKE SELECT HR.employees- ի մասին ՋՈՅԲացահայտորեն մերժելով տվյալների բազան
DENY հրամանը օգտագործվում է բացահայտորեն կանխելու օգտվողին որոշակի թույլտվություն ստանալու համար: Սա օգտակար է, երբ օգտագործողը թույլտվություն ստացած դերի կամ խմբի անդամ է, եւ ցանկանում եք այդ անհատական օգտագործողին թույլ տալ թույլտվություն ժառանգել `բացառություն ստեղծելով: Այս հրամանի համար նախատեսված շարադրանքը հետեւյալն է.
DENY [թույլտվություն] ON [օբյեկտ] TO [օգտվողի] DENY հրամանատարության պարամետրերը նույնական են GRANT հրամանատարության համար օգտագործվածների համար:
Օրինակ, եթե ցանկանում եք ապահովել, որ Մեթը երբեք չի ստանա տեղեկատվություն աշխատողների աշխատասեղանից ջնջելու կարողությունը, թող հետեւյալ հրահանգը: