ГЭРЛЭЛТ, НЭМЭЛТ ӨӨРЧЛӨЛТ БАЙГУУЛЛАГА
Data Control Language (DCL) нь Structured Query Language (SQL) -ийн дэд хэсэг бөгөөд өгөгдлийн сангийн аюулгүй байдлын хандалтыг тохируулахын тулд өгөгдлийн сангийн админуудыг зөвшөөрдөг. Өгөгдлийн тодорхойлолт хэлний (DDL) өгөгдлийн сангийн объектыг нэмэх, устгахад ашигладаг бөгөөд Өгөгдөл Manipulation Language (DML) нь өгөгдлийн мэдээллийн агуулгыг сэргээх, оруулах, өөрчлөхөд ашиглагддаг.
DCL нь SQL subset-ийн хамгийн энгийн нь, GRANT, REVOKE, DENY гэсэн гурван тушаалаас бүрддэг. Эдгээр гурван командын тусламжтайгаар администраторууд өгөгдлийн сангийн зөвшөөрлийг тогтоох, устгах уян хатан байдлаар өгдөг.
GRANT командтай зөвшөөрлүүдийг нэмэх
GRANT командыг администраторууд ашиглан мэдээллийн баазын хэрэглэгчдэд шинэ зөвшөөрлийг нэмэхийн тулд ашигладаг. Энэ нь дараахь байдлаар тодорхойлогдсон энгийн синтакстай:
ГЭРЭЭ [онцгой эрх] [объект] TO [хэрэглэгч] [ГРАНГУУДЫН ХУГАЦААГААР]Энд дараах тушаалаар өгөх болно.
- Аливаа эрх чөлөө нь ALL гэсэн түлхүүр үг (янз бүрийн зөвшөөрлөөр олгодог), эсвэл өгөгдлийн сангийн тусгай зөвшөөрөл эсвэл зөвшөөрлийн багц байж болно. Жишээ нь CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE, CREATE VIEW зэрэг орно.
- Обьект нь өгөгдлийн сангийн объект байж болно. Хүчинтэй завшралын сонголтууд нь энэ зүйлд багтсан обьектуудын төрлөөс хамаарна. Ерөнхийдөө обьект нь өгөгдлийн сан, функц, хадгалагдсан процедур , хүснэгт, эсвэл үзэл байж болно.
- Хэрэглэгч нь мэдээллийн баазын хэрэглэгч байж болно. Хэрэв та үүрэг дээр үндэслэсэн мэдээллийн баазын аюулгүй байдлыг ашиглахыг хүсвэл энэ бүлгийн хэрэглэгчийн үүрэг ролийг бас орлуулж болно.
- Хэрэв та GRANT тушаалын төгсгөлд заавал GRANT OPTION заалтыг заавал оруулах бол, та зөвхөн SQL statement-д заагдсан зөвшөөрлийг заасан хэрэглэгчид олгодог төдийгүй бусад өгөгдлийн сантай хэрэглэгчдэд эдгээр зөвшөөрлийг олгох боломжийг олгоно. Энэ шалтгааны улмаас энэ зүйлд анхаарал тавь.
Жишээ нь, хэрэглэгчийн Жо-г ажилтнуудын хүснэгтийн мэдээллийг авахын тулд Хүмүүс гэж нэрлэгддэг өгөгдлийн сангаас мэдээлэл авах чадварыг өгөхийг хүсч байна гэж бодъё. Та дараах SQL командыг ашиглаж болно:
Хүмүүсийг ЖОРА-д сонгоно ууЖо одоо ажилтнуудын хүснэгтээс мэдээллийг авах чадвартай болсон. Гэсэн хэдий ч, бусад хэрэглэгчид уг хүснэгтээс мэдээллийг авах зөвшөөрөл өгөх боломжгүй болно. Яагаад гэвэл та GRANT-ийн мэдэгдэлд GRANT OPTION-ийн заалтыг оруулаагүй болно.
Өгөгдлийн сангийн хандалтыг сэргээх
REVOKE тушаал нь өмнө нь хандаж байсан хэрэглэгчээс өгөгдлийн сангийн хандалтыг устгахад хэрэглэгддэг. Энэ тушаалын синтакс нь дараах байдлаар тодорхойлогдоно:
REVOKE [НЭМЭЛТ НЭМЭЛТ] [зөвшөөрөл] ON [объект] FROM [хэрэглэгчийн] [CASCADE]REVOKE командын параметрийн талаар дараахь зүйлийг авч үзье:
- Зөвшөөрөл нь тухайн хэрэглэгчээс устгахын тулд өгөгдлийн сангийн зөвшөөрлийг тодорхойлдог. Энэ тушаал нь тодорхой зөвшөөрөлд зориулж өмнө хийсэн GRANT болон DENY мэдэгдлийн аль алиныг цуцална.
- Обьект нь өгөгдлийн сангийн объект байж болно. Хүчинтэй завшралын сонголтууд нь энэ зүйлд багтсан обьектуудын төрлөөс хамаарна. Ерөнхийдөө обьект нь өгөгдлийн сан, функц, хадгалагдсан процедур, хүснэгт, эсвэл үзэл байж болно.
- Хэрэглэгч нь мэдээллийн баазын хэрэглэгч байж болно. Хэрэв та үүрэг дээр үндэслэсэн мэдээллийн баазын аюулгүй байдлыг ашиглахыг хүсвэл энэ бүлгийн хэрэглэгчийн үүрэг ролийг бас орлуулж болно.
- Нэвтрүүлгийн GRANT OPTION нь бусад хэрэглэгчдэд тусгай зөвшөөрлийг олгосон тодорхой хэрэглэгчийн чадварыг арилгах болно. Тайлбар : Хэрэв та REVOKE мэдэгдэлдээ НЭМЭЛТ ӨӨРЧЛӨЛТИЙГ ХЭРЭГТЭЙ байгаа бол үндсэн зөвшөөрлийг хүчингүй болгоно. Энэ заалт нь зөвхөн зөвшөөрөх чадварыг хүчингүй болгодог.
- CASCADE тохируулга нь зөвшөөрөгдсөн хэрэглэгч зөвшөөрсөн аливаа хэрэглэгчээс тусгай зөвшөөрлийг цуцална.
Жишээ нь, дараах тушаал нь өмнөх жишээнд Жоулд өгсөн зөвшөөрлийг хүчингүй болгоно:
ЖООХ-ийн ажилтнуудаас сонгоно ууӨгөгдлийн сангийн нэвтрэхийг шууд татаж авах
DENY командыг хэрэглэгч тодорхой нэг зөвшөөрөл авахаас урьдчилан сэргийлэх зорилгоор ашигладаг. Хэрэглэгч нь зөвшөөрөгдсөн үүрэг хүлээсэн бүлэг эсвэл гишүүн бол энэ нь тустай бөгөөд та тухайн хэрэглэгчийг зөвшөөрлийг өв залгамжлуулах замаар устгахаас сэргийлээрэй. Энэ тушаалын синтакс нь дараах байдалтай байна:
DENY [зөвшөөрөл] ON [объект] TO [хэрэглэгч] DENY командын параметрүүд нь GRANT командтай адил байна.
Жишээлбэл, хэрэв Маттью ажилчдын хүснэгтээс мэдээллийг устгах чадварыг хэзээ ч авахгүй байхыг хүсч байвал дараах тушаалыг өгнө үү: