សិទ្ធិអនុញ្ញាតមូលដ្ឋានទិន្នន័យ REVOKE និង DENY
ភាសាត្រួតពិនិត្យទិន្នន័យ (DCL) គឺជាសំណុំរងនៃ ភាសាសំណួររចនាសម្ព័ន្ធ (SQL) និងអនុញ្ញាតឱ្យអ្នកគ្រប់គ្រងមូលដ្ឋានទិន្នន័យកំណត់រចនាសម្ព័ន្ធការចូលប្រើសុវត្ថិភាពទៅមូលដ្ឋានទិន្នន័យទំនាក់ទំនង។ វាបំពេញបន្ថែមភាសានិយមន័យទិន្នន័យ (DDL) ដែលត្រូវបានប្រើដើម្បីបន្ថែមនិងលុបវត្ថុមូលដ្ឋានទិន្នន័យនិងភាសាការសម្អាតទិន្នន័យ (DML) ដែលប្រើដើម្បីទាញយកបញ្ចូលនិងកែប្រែមាតិការបស់មូលដ្ឋានទិន្នន័យ។
DCL គឺជាសំណុំសាមញ្ញបំផុតនៃ សំណុំរង SQL ព្រោះវាមានតែពាក្យបញ្ជាបីប៉ុណ្ណោះគឺ GRANT, REVOKE និង DENY ។ រួមផ្សំពាក្យបញ្ជាទាំងបីនេះផ្តល់ជូនអ្នកគ្រប់គ្រងនូវភាពបត់បែនក្នុងការកំណត់និងដកសិទ្ធិអនុញ្ញាតមូលដ្ឋានទិន្នន័យនៅក្នុងម៉ូដដែលមានទំហំតូចខ្លាំង។
ការបន្ថែមសិទ្ធិជាមួយពាក្យបញ្ជា GRANT
ពាក្យបញ្ជា GRANT ត្រូវបានប្រើដោយអ្នកគ្រប់គ្រងដើម្បីបន្ថែមសិទ្ធិថ្មីទៅ អ្នកប្រើមូលដ្ឋានទិន្នន័យ ។ វាមានវាក្យសម្ព័ន្ធសាមញ្ញបំផុតដែលបានកំណត់ដូចខាងក្រោម:
ផ្តល់សិទ្ធិ [លើ] [វត្ថុ] ទៅ [អ្នកប្រើ] [ជាមួយជម្រើសអនុញ្ញាត]នេះជាការស្រងសំដីលើប៉ារ៉ាម៉ែត្រនីមួយៗដែលអ្នកអាចផ្គត់ផ្គង់ជាមួយពាក្យបញ្ជានេះ:
- ឯកសិទ្ធិ អាចជាពាក្យគន្លឹះ ALL (ដើម្បីផ្តល់នូវសិទ្ធិទូលំទូលាយនៃការអនុញ្ញាត) ឬសិទ្ធិអនុញ្ញាតមូលដ្ឋានទិន្នន័យជាក់លាក់ឬសំណុំសិទ្ធិអនុញ្ញាត។ ឧទាហរណ៏រួមបញ្ចូល CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE និង CREATE VIEW ។
- វត្ថុ អាចជាវត្ថុមូលដ្ឋានទិន្នន័យណាមួយ។ ជម្រើសឯកសិទ្ធិដែលមានសុពលភាពប្រែប្រួលដោយផ្អែកលើប្រភេទនៃវត្ថុមូលដ្ឋានទិន្នន័យដែលអ្នកបញ្ចូលក្នុងឃ្លានេះ។ ជាធម្មតាវត្ថុនឹងជាមូលដ្ឋានទិន្នន័យ, មុខងារ, ដំណើរការ រក្សាទុក , តារាងឬទិដ្ឋភាព។
- អ្នកប្រើ អាចជាអ្នកប្រើមូលដ្ឋានទិន្នន័យណាមួយ។ អ្នកក៏អាចជំនួសតួនាទីសម្រាប់អ្នកប្រើក្នុងឃ្លានេះប្រសិនបើអ្នកចង់ប្រើឃ្លាំងទិន្នន័យដែលមានមូលដ្ឋានលើតួនាទី។
- ប្រសិនបើអ្នកបញ្ចូលជម្រើស ដោយមានជម្រើស ឃ្លា ជម្រើស នៅចុងបញ្ចប់នៃពាក្យបញ្ជា GRANT អ្នកមិនត្រឹមតែផ្តល់សិទ្ធិអ្នកប្រើដែលបានបញ្ជាក់ដែលបានកំណត់នៅក្នុងសេចក្តីថ្លែងការណ៍ SQL នោះទេប៉ុន្តែក៏ផ្តល់ឱ្យអ្នកប្រើនូវសិទ្ធិផ្តល់សិទ្ធិដូចគ្នាទាំងនោះដល់អ្នកប្រើប្រាស់មូលដ្ឋានទិន្នន័យ ផ្សេងទៀត ។ សម្រាប់ហេតុផលនេះសូមប្រើឃ្លានេះដោយយកចិត្តទុកដាក់។
ឧទាហរណ៍សន្មតថាអ្នកចង់ផ្តល់ឱ្យអ្នកប្រើ Joe នូវសមត្ថភាពក្នុងការទាញយកព័ត៌មានពីតារាងបុគ្គលិកនៅក្នុងមូលដ្ឋានទិន្នន័យដែលហៅថាធនធានមនុស្ស។ អ្នកអាចប្រើពាក្យបញ្ជា SQL ដូចខាងក្រោម:
ផ្តល់សិទ្ធិជ្រើសរើសទៅលើបុគ្គលិកធនធានមនុស្សឥឡូវនេះ Joe នឹងអាចទទួលយកព័ត៌មានពីតារាងបុគ្គលិក។ គាត់នឹងមិនអាចផ្តល់សិទ្ធិអនុញ្ញាតឱ្យអ្នកប្រើផ្សេងទៀតទាញយកព័ត៌មានពីតារាងនោះទេពីព្រោះអ្នកមិនបានបញ្ចូលឃ្លាជម្រើសដោយប្រើ GRANT នៅក្នុងសេចក្តីថ្លែង GRANT ។
ដកហូតសិទ្ធិចូលដំណើរការមូលដ្ឋានទិន្នន័យ
ពាក្យបញ្ជា REVOKE ត្រូវបានប្រើដើម្បីលុបការចូលប្រើមូលដ្ឋានទិន្នន័យពីអ្នកប្រើដែលបានទទួលការចូលប្រើពីមុន។ វាក្យសម្ព័ន្ធសម្រាប់ពាក្យបញ្ជានេះត្រូវបានកំណត់ដូចខាងក្រោម:
REVOKE [ការផ្តល់ជម្រើស] [ការអនុញ្ញាត] លើ [វត្ថុ] ពី [អ្នកប្រើ] [CASCADE]នេះជាការនិយាយត្រួសៗលើប៉ារ៉ាម៉ែត្រសម្រាប់ពាក្យបញ្ជា REVOKE:
- សិទ្ធិអនុញ្ញាត បញ្ជាក់ពីសិទ្ធិមូលដ្ឋានទិន្នន័យដើម្បីដកចេញពីអ្នកប្រើប្រាស់ដែលបានកំណត់អត្តសញ្ញាណ។ ពាក្យបញ្ជាដកហូតការអះអាងរបស់ GRANT និង DENY ពីមុនដែលត្រូវបានកំណត់។
- វត្ថុ អាចជាវត្ថុមូលដ្ឋានទិន្នន័យណាមួយ។ ជម្រើសឯកសិទ្ធិដែលមានសុពលភាពប្រែប្រួលដោយផ្អែកលើប្រភេទនៃវត្ថុមូលដ្ឋានទិន្នន័យដែលអ្នកបញ្ចូលក្នុងឃ្លានេះ។ ជាធម្មតាវត្ថុនឹងជាមូលដ្ឋានទិន្នន័យ, មុខងារ, ដំណើរការរក្សាទុក, តារាងឬទិដ្ឋភាព។
- អ្នកប្រើ អាចជាអ្នកប្រើមូលដ្ឋានទិន្នន័យណាមួយ។ អ្នកក៏អាចជំនួសតួនាទីសម្រាប់អ្នកប្រើក្នុងឃ្លានេះប្រសិនបើអ្នកចង់ប្រើឃ្លាំងទិន្នន័យដែលមានមូលដ្ឋានលើតួនាទី។
- ជម្រើស ការ ផ្តល់សិទ្ធិសម្រាប់ ឃ្លាលុបសមត្ថភាពអ្នកប្រើដែលបានបញ្ជាក់ដើម្បីផ្តល់ការអនុញ្ញាតជាក់លាក់ទៅអ្នកប្រើផ្សេងទៀត។ ចំណាំ : ប្រសិនបើអ្នកបញ្ចូល ពាក្យសុំសិទ្ធិសម្រាប់ ឃ្លានៅក្នុងសេចក្តីថ្លែងការណ៍ REVOKE នោះការអនុញ្ញាតចម្បងនឹង មិន ត្រូវបានដកហូតទេ។ ឃ្លានេះដកហូតបាន តែ សមត្ថភាពផ្តល់។
- ជម្រើស CASCADE ក៏លុបចោលការអនុញ្ញាតដែលបានបញ្ជាក់ពីអ្នកប្រើណាម្នាក់ដែលអ្នកប្រើជាក់លាក់បានផ្តល់ការអនុញ្ញាត។
ឧទាហរណ៍ពាក្យបញ្ជាខាងក្រោមដកហូតសិទ្ធិដែលបានផ្តល់ឱ្យ Joe ក្នុងឧទាហរណ៍មុន:
REVOKE ជ្រើសរើសលើបុគ្គលិក HR.Joeបដិសេធការចូលប្រើមូលដ្ឋានទិន្នន័យ
ពាក្យបញ្ជា DENY ត្រូវបានប្រើដើម្បីការពារអ្នកប្រើជាក់លាក់មិនឱ្យទទួលការអនុញ្ញាតជាក់លាក់។ វាមានប្រយោជន៍នៅពេលអ្នកប្រើជាសមាជិកនៃតួនាទីឬក្រុមមួយដែលទទួលបានការអនុញ្ញាតហើយអ្នកចង់ការពារអ្នកប្រើម្នាក់ៗពីការទទួលសិទ្ធិដោយបង្កើតករណីលើកលែងមួយ។ វាក្យសម្ព័ន្ធសម្រាប់ពាក្យបញ្ជានេះមានដូចខាងក្រោម:
DENY [ការអនុញ្ញាត] លើ [វត្ថុ] ទៅ [អ្នកប្រើ] ប៉ារ៉ាម៉ែត្រសម្រាប់ពាក្យបញ្ជា DENY គឺដូចគ្នាបេះបិទទៅនឹងពាក្យដែលប្រើសម្រាប់ពាក្យបញ្ជា GRANT ។
ឧទាហរណ៍ប្រសិនបើអ្នកចង់ធានាថាម៉ាថាយមិនទទួលបានលទ្ធភាពលុបព័ត៌មានពីតារាងនិយោជិតចេញផ្សាយពាក្យបញ្ជាខាងក្រោម: