Hozirgi paytgacha biz MySQLdagi ma’lumotlar bazasiga «root» foydalanuvchisi bilan ulanib, ishlab keldik. Bu foydalanuvchi yordamida jadval va tizimga oid barcha amallarni bajarish mumkin, shuning uchun «root«dan foydalanish tavsiya qilinmaydi, adashib ma’lumotlar bazasini buzib qo‘yish mumkin. Bu foydalanuvchidan proffessonallar, shunda ham vaziyatga qarab foydalanishadi.

Odatda, har bir ma’lumotlar bazasi bilan ishlovchi foydalanuvchiga, o‘ziga alohida ma’lumotlar bazasi bilan ishlash uchun mysqlda foydalanuvchi yaratib beriladi.
Bu yaratilgan foydalanuvchiga, bajaradigan vazifasidan kelib chiqgan holda, ma’lum bir ruxsatlar(prava, priviligiya) beriladi(jadvallar yaratish, ularni o‘chirish,…). Shunda, ma’lum hisobda ma’lumotlar bazasini muhofaza qilish mumkin bo‘ladi. Bu maqolamizda, foydalanuvchilarga beriladigan ruxsatlar haqida gaplashamiz.

MySQLda 3 xil guruhga ajratilgan  ruxsatlar mavjud: axborotlar bilan bog‘liq ruxsatlar, struktura bilan bog‘liq ruxsatlar va ma’murlash(administrirovaniye) bilan bog‘liq ruxsatlar. Keling har biri bilan tanishib chiqamiz.

Axborotlar bilan bog‘liq bo‘lgan ruxsatlar, bevosita ma’lumotlar bazasidagi axborotlar bilan ishlash uchun mo‘ljallangan, bu guruhga quyidagi ruxsatlar kiradi.

* SELECT — bu ruxsat, ma’lumotlar bazasidagi axborotlarni chiqarib olish uchun beriladigan ruxsatdir, ya’ni jadvallarga «select» orqali so‘rovni amalga oshirish mumkin.

* INSERT — jadvalga yangi ma’lumotlarni kiritishga ruxsat.

* UPDATE — jadvaldagi axborotlarni o‘zgartirish xuquqini beradigan ruxsat.

* DELETE — jadvaldagi axborotlarni o‘chirish xuquqini beradi.

* FILE — so‘rov asosida olingan axborotlarni faylga yozish va fayldan o‘qish xuquqini beradi.

Endi, ma’lumotlar bazasi va jadvallar strukturalarini o‘zgartirish xuquqini beradigan ruxsatlar bilan tanishib chiqamiz, bu guruhga quyidagilar kiradi:

* CREATE — yangi ma’lumotlar bazasi, shu bilan birga bazada yangi jadvallar yaratish xuquqini beradigan ruxsat.

* ALTER — jadvalni o‘zgartirish xuquqini beradi(jadval nomini o‘zgartirish, qatorlarni olib tashlash,…).

* INDEX — jadvalga indekslar yaratish va o‘chirib tashlash xuquqini beradi.

* DROP — butun boshli bazani yoki jadvalni o‘chirish xuquqi.

* CREATE TEMPORARY TABLES — vaqtinchalik maqomiga ega jadvallar yaratish xuquqi, bu jadvallar seans tugatilganda o‘chib ketadi.

Oxirgi guruh ma’lumotlar bazasini ma’murlash(administrirovaniye)ga oiddir, bu guruhga quyidagi ruhsatlar kiradi:

* GRANT — yangi foydalanuvchilar yaratish va o‘zida mavjud bo‘lgan(!) ruxsatlarni boshqalarga berish xuquqlariga ega.

* SUPER — oqimlarni o‘chirish(kill) xuquqiga ega, oqimlar boshqa bir foydalanuvchining ma’lumotlar bazasiga ulanishi, ya’ni foydalanuvchi ulanishini uzish xuquqiga ega.

* PROCESSprocesslist buyruhini berish xuquqiga ega, bu buyruq barcha ulanishlarni ko‘rish uchun beriladi.

* RELOAD — jurnal fayllarini ochish va yopish xuquqiga ega.

* SHUTDOWN — server ishini to‘xtatuvchi komanda(shutdown) berish xuquqiga ega.

* SHOW DATABASES — mavjud bo‘lgan barcha ma’lumotlar bazasini ko‘rish xuquqiga ega.

* LOCK TABLES — ko‘rsatilgan ulanishlar(oqim) uchun jadvallarni bloklash xuquqi.

* EXECUTE — har xil protseduralarni ishga tushirishga ruxsat.

* REPLICATION CLIENT, * REPLICATION CLIENT — server va kliyent joylashgan joyi va jurnallarini ko‘rish xuquqi.

Yuyuqoridagilardan tashqari, quyidagi maxsus resurslarga oid ruxsatlar ham bor:

* MAX QUERIES PER HOUR — bir soatdagi maksimal so‘rovlar sonini belgilash.

* MAX UPDATES PER — ma’lumotlar bazasi yoki jadvallarni o‘zgartrish mumkin bo‘lgan maksimal buyruqlar soni(soatda).

* MAX CONNECTIONS PER HOUR  — bir soat mobaynida maksimal ulanishlar soni.

Agar yuqoridagi ruxsatlar qiymati»0» bo‘lsa, resurs cheksiz hisoblanadi.

Ruxsatlar haqida umumiy ma’lumotlar shular, keyingi maqolalarda foydalanuvchilarni ochishni ko‘rib o‘tamiz.