GRANT, REVOKE және DENY дерекқор рұқсаттары
Деректерді басқару тілі (DCL) - Құрылымдық сұрау тілі (SQL) жиынтығы және дерекқор әкімшіліктеріне қатынас дерекқорларына қауіпсіздік қатынасын конфигурациялауға мүмкіндік береді. Ол дерекқор нысандарын қосу және жою үшін пайдаланылатын деректерді анықтау тілін (DDL) толықтырады және дерекқордың мазмұндарын шығарып алу, кірістіру және өзгерту үшін қолданылатын деректерді өңдеу тілі (DML).
DCL - SQL ішкі жиындарының ең қарапайым түрі, себебі ол тек үш командадан тұрады: GRANT, REVOKE және DENY. Біріктірілген, бұл үш пәрмендер әкімшілерге дерекқор рұқсаттарын өте түйіршіктелген түрде орнату және жоюға икемділік береді.
Рұқсатты GRANT командасымен қосу
GRANT командасы әкімшілердің дерекқор пайдаланушысына жаңа рұқсаттарды қосу үшін пайдаланылады . Ол өте қарапайым синтаксисті бар, ол келесідей анықталады:
GRANT [артықшылық] ON [объект] TO [пайдаланушы] [GRANT OPTION арқылы]Мына пәрменмен жеткізуге болатын параметрлердің әрқайсысында төменде көрсетілген:
- Артықшылығы ALL түріндегі кілт сөзді (рұқсаттардың кең түрін беру үшін) немесе арнайы дерекқор рұқсаты мен рұқсаттар жиынтығы бола алады. Мысалдар: CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE және CREATE VIEW.
- Нысан кез-келген дерекқор нысаны болуы мүмкін. Жарамды артықшылық опциялары осы тармақта қамтылған дерекқор нысанының түріне байланысты өзгереді. Әдетте, нысан не дерекқор, функция, сақталған процедура , кесте немесе көрініс болады.
- Пайдаланушы кез-келген дерекқор пайдаланушысы бола алады. Рөлге негізделген дерекқордың қауіпсіздігін пайдаланғыңыз келсе, осы тармақта пайдаланушыға рөлді орната аласыз.
- GRANT пәрменінің соңында қосымша ГРАНТ ОПЦИЯ сөйлемімен қоссаңыз, көрсетілген пайдаланушыға SQL операторында анықталған рұқсаттарды беріп қана қоймай, сонымен қатар пайдаланушыға басқа дерекқор пайдаланушылары үшін сол рұқсаттарды беру мүмкіндігін береді. Осы себепті осы тармақты абайлап пайдаланыңыз.
Мысалы, пайдаланушы Joe-ге HR деп аталатын дерекқордағы қызметкерлер кестесінен ақпаратты алу мүмкіндігін бергіңіз келеді деп есептеңіз. Келесі SQL пәрменін қолдануға болады:
HR.employees ЖОБАҒА ГРАНТТЫҚ ТАҢДАУДжо енді қызметкерлер кестесінен ақпаратты алу мүмкіндігіне ие болады. Дегенмен, ол басқа пайдаланушыларға кестеден алынған ақпаратты алуға рұқсат беруі мүмкін емес, себебі сіз GRANT мәлімдемесінде «ГРАНТ ОПЦИЯ» деген сөйлемді қоспайсыз.
Дерекқор қатынасын жою
REVOKE пәрмені бұрын қол жеткізілген пайдаланушыдан дерекқорға кіруді жою үшін пайдаланылады. Бұл пәрменнің синтаксисі келесідей анықталады:
REVOKE [GRANT OPTION FOR] [рұқсат] ON [объект] FROM [пайдаланушы] [CASCADE]REVOKE командасының параметрлері бойынша төменде көрсетілген:
- Рұқсат сәйкестендірілген пайдаланушыдан жоюға арналған дерекқор рұқсаттарын анықтайды. Команда анықталған рұқсат үшін бұрын жасалған GRANT және DENY бекітулерін де қайтарады.
- Нысан кез-келген дерекқор нысаны болуы мүмкін. Жарамды артықшылық опциялары осы тармақта қамтылған дерекқор нысанының түріне байланысты өзгереді. Әдетте, нысан не дерекқор, функция, сақталған процедура, кесте немесе көрініс болады.
- Пайдаланушы кез-келген дерекқор пайдаланушысы бола алады. Рөлге негізделген дерекқордың қауіпсіздігін пайдаланғыңыз келсе, осы тармақта пайдаланушыға рөлді орната аласыз.
- НАЗАР АУДАРЫҢЫЗҒА АРНАЛҒАН ГРАНТ ОПЦИЯСЫ аталған пайдаланушының көрсетілген рұқсатты басқа пайдаланушыларға беру мүмкіндігін жояды. Ескерту : Егер сіз GRANT OPTION FOR сөйлемін REVOKE мәлімдемесіне қоссаңыз, негізгі рұқсат жойылмайды. Бұл тармақ тек қана беру мүмкіндігін қайтарады.
- CASCADE параметрі көрсетілген пайдаланушы рұқсат берген кез келген пайдаланушылардан көрсетілген рұқсатты да қайтарады.
Мысалы, келесі мысал алдыңғы мысалдағы Джоға берілген рұқсатты қайтарады:
Джо Джонсоннан HR.employees бойынша REVOKE SELECTДерекқорға қатынаудан бас тартады
DENY пәрмені пайдаланушыға арнайы рұқсатын алуға кедергі келтіреді. Бұл пайдаланушы рұқсат берілген рөл немесе топтың мүшесі болғанда пайдалы болады және ерекше пайдаланушыны рұқсатты иеленуден алып тастауды болдырмайсыз. Бұл пәрменнің синтаксисі келесідей:
DENY [рұқсат] ON [объект] TO [пайдаланушы] DENY пәрменінің параметрлері GRANT пәрменінде пайдаланылатындармен бірдей.
Мысалы, егер сіз Матайдың қызметкерлер кестесінен ақпаратты жою мүмкіндігін ешқашан алмайтындығын қаласаңыз, келесі пәрменді шығарыңыз: