1C: Enterprise start oynasida infobazani qo'shish. Ma'lumotlar bazasiga ruxsat berish

SQL tilida qabul qilingan xavfsizlik tizimi ko'rib chiqiladi. Kirishni boshqarishning umumiy qoidalari bayon etilgan. Unda autentifikatsiya rejimlari va xavfsizlik tuzilishining tarkibiy qismlari (foydalanuvchilar, ma'lumotlar bazalari rollari), xavfsizlik tizimini boshqarish (hisoblarni yaratish va boshqarish, foydalanuvchilar va rollarni boshqarish) tavsiflanadi. Ma'lumotlar bazasi ob'ektlariga kirish huquqlarining ta'rifi berilgan. Yashirin huquqlar, kirish taqiqlangan va berkitib berilmagan rad etish muammolari, shuningdek kirish erkinligi bo'yicha nizolar ko'rib chiqiladi.

Ma'lumotlar bazasini boshqarish

Barqaror tizim foydalanuvchini boshqarish  - majburiy shart ma'lumotlar xavfsizligihar qanday aloqador ma'lumotlar bazasida saqlanadi. SQL-da bitta standart standart buyruq mavjud emas foydalanuvchi yaratish  Ma'lumotlar bazalari - har bir amalga oshirish o'z-o'zidan amalga oshiriladi. Ba'zi bir amaliy dasturlarda ushbu maxsus buyruqlar ba'zi o'xshashliklarga ega, boshqalarida ularning sintaksisi sezilarli farqlarga ega. Biroq, aniq amalga oshirilishidan qat'i nazar, barcha asosiy qoidalar bir xil.

MS SQL Server muhitida foydalanuvchini boshqarish

Muammoni ko'rib chiqing foydalanuvchi yaratish  MS SQL Server muhitida.

Ma'lumotlar bazasining mantiqiy tuzilishini, jadvallar o'rtasidagi aloqalarni, yaxlitlikni cheklashni va boshqa tuzilmalarni ishlab chiqqandan so'ng, ma'lumotlar bazasiga kirish huquqiga ega foydalanuvchilar doirasini aniqlash kerak.

SQL server tizimida ma'lumotlarga kirishni cheklashni ikki darajali sozlash tashkil etilgan. Birinchi bosqichda shunday deb ataladigan narsani yaratish kerak foydalanuvchi hisobi  (login), bu unga serverga ulanishga imkon beradi, ammo ma'lumotlar bazalariga avtomatik kirishga imkon bermaydi. Ikkinchi darajada, har bir SQL server ma'lumotlar bazasi uchun, foydalanuvchi yozuvini hisob qaydnomasi asosida yaratish kerak. Ma'lumotlar bazasidan foydalanuvchi (foydalanuvchi) sifatida foydalanuvchiga berilgan huquqlarga asoslanib, uning ro'yxatdan o'tish nomi (login) tegishli ma'lumotlar bazasiga kirish huquqiga ega bo'ladi. Turli ma'lumotlar bazalarida bitta foydalanuvchining login bilan bir xil yoki turli xil kirish huquqlariga ega foydalanuvchi nomlari bo'lishi mumkin. Boshqacha aytganda, foydalanish foydalanuvchi hisobi  SQL serveriga ulanish amalga oshiriladi, shundan so'ng har bir ma'lumotlar bazasiga kirish darajasi aniqlanadi.

SQL server tizimida qo'shimcha ob'ektlar mavjud - SQL server ob'ektlariga kirish darajasini belgilaydigan rollar. Ular ikki guruhga bo'lingan: tayinlangan foydalanuvchi hisoblari  ma'lumotlar bazasiga kirishni cheklash uchun foydalaniladigan serverlar.

Shunday qilib, server darajasida xavfsizlik tizimi quyidagi tushunchalar bilan ishlaydi:

  • haqiqiylikni tekshirish
  • qayd yozuvi ;
  • o'rnatilgan server rollari.

Ma'lumotlar bazasi darajasida quyidagi tushunchalar qo'llaniladi;

  • ma'lumotlar bazasidan foydalanuvchi
  • sobit ma'lumotlar bazasi roli;
  • odatma'lumotlar bazasining roli.

Autentifikatsiya usullari

SQL Server ikkita rejimni taklif qiladi foydalanuvchini tasdiqlash:

  • windows NT / 2000 yordamida autentifikatsiya holati;
  • aralash autentifikatsiya rejimi (Windows NT autentifikatsiyasi va SQL Server autentifikatsiyasi).

Xavfsizlik boshqarmasi

Uchun foydalanuvchi yaratish  MS SQL Server muhitida quyidagi amallarni bajarish kerak:

  1. Ma'lumotlar bazasida yaratish foydalanuvchi hisobiunga parol va standart ma'lumotlar bazasi nomini ko'rsatish (sp_addlogin protsedurasi).
  2. Ushbu foydalanuvchini barcha kerakli ma'lumotlar bazalariga qo'shing (sp_adduser protsedurasi).
  3. Unga har bir ma'lumotlar bazasida tegishli imtiyozlarni bering (GRANT buyrug'i).

Yangi qayd yozuvini yarating  tizimda saqlangan protsedura yordamida amalga oshirish mumkin:

sp_addlogin [@ login \u003d] "hisob" [, [@ parol \u003d] "parol"] [, [@ defdb \u003d] "default_database"]

Haqiqiylikni tekshirish tugagandan va olinganidan keyin hisob identifikatori (login ID) foydalanuvchisi  Ro'yhatdan o'tgan deb hisoblanadi va unga serverga kirish huquqi beriladi. Ob'ektlarga kirishni xohlagan har bir ma'lumotlar bazasi uchun, foydalanuvchi hisobi  (login) ma'lum bir ma'lumotlar bazasi foydalanuvchisi (foydalanuvchi) bilan bog'langan, protsedura orqali amalga oshiriladi:

sp_adduser [@ loginame \u003d] "hisob" [, [@ name_in_db \u003d] "foydalanuvchi nomi"] [, [@ grpname \u003d] "role_name"]

Saqlangan protsedura Windows NT hisob qaydnomasini foydalanuvchi nomi bilan taqqoslashga imkon beradi:

sp_grantdbaccess [@ login \u003d] 'hisob' [, [@name_in_db \u003d] 'foydalanuvchi']

Ma'lumotlar bazasida ob'ektni yaratgan foydalanuvchi (jadval, saqlanadigan protsedura, ko'rinish) uning egasiga aylanadi. Mulk egasi  (ma'lumotlar bazasi ob'ekti egasi dbo) o'zi yaratgan ob'ektga kirish huquqiga ega. Foydalanuvchi ob'ektni yaratishi uchun ma'lumotlar bazasi (dbo) egasi unga tegishli huquqlarni berishi kerak. Yaratilgan ob'ektning to'liq nomi uni yaratgan foydalanuvchining ismini o'z ichiga oladi.

Mulk egasi maxsus parol yoki maxsus kirish huquqlariga ega emas. U to'la huquqlarga ega, ammo boshqa foydalanuvchilarga aniq kirish huquqini berishi kerak.

SQL Server sizga egalik huquqini bir foydalanuvchidan boshqasiga protsedura yordamida uzatishga imkon beradi:

sp_changeobjectowner [@ objname \u003d] 'ob'ektning nomi' [@ newowner \u003d] 'egasining ismi'

Rol bir xil vazifalarni bajaradigan bitta guruhdagi foydalanuvchilarni birlashtirishga imkon beradi.

SQL Server ikki xil standart rollarni bajaradi: server darajasida va ma'lumotlar bazasi darajasida. SQL Serverni o'rnatishda sobit server rollari (masalan, har qanday SQL server funktsiyalarini bajarish huquqiga ega bo'lgan sysadmin) va ma'lumotlar bazasi rollari (masalan, ma'lumotlar bazasiga to'liq kirish huquqiga ega db_owner yoki foydalanuvchilarni qo'shish va o'chirish huquqiga ega db_accessadmin) yaratiladi. Ma'lumotlar bazasining belgilangan vazifalari orasida alohida ahamiyatga ega bo'lgan umumiy rol ham bor, chunki uning a'zolari ma'lumotlar bazasiga kirish huquqiga ega bo'lgan barcha foydalanuvchilar hisoblanadi.

Siz har qanday server rolida har qanday SQL Server hisob qaydnomasini (login) yoki Windows NT hisobini qo'shishingiz mumkin.

Ma'lumotlar bazasi rollari foydalanuvchilarni bitta ma'muriy birlikka birlashtirishga va u bilan doimiy foydalanuvchi sifatida ishlashga imkon beradi. Ma'lum bir ma'lumotlar uchun ma'lumotlar bazasi ob'ektlariga kirish huquqlarini tayinlashingiz mumkin va avtomatik ravishda ushbu rolning barcha a'zolariga bir xil huquqlar beriladi.

Siz ma'lumotlar bazasi roliga SQL Server foydalanuvchilari, SQL Server rollari, Windows NT foydalanuvchilarini kiritishingiz mumkin.

Rolga nisbatan turli harakatlar maxsus protseduralar yordamida amalga oshiriladi:

  • yangi rol yaratish:

    sp_addrole [@ rolename \u003d] "rol_nomasi" [, [@ o'z nomi \u003d] "egasining ismi"]

  • foydalanuvchini rolga qo'shish:

    sp_addrolemember [@ rolename \u003d] "rol_name", [@ membername \u003d] "foydalanuvchi nomi"

  • foydalanuvchini roldan olib tashlash:

    sp_droprolemember [@ rolename \u003d] "rol_name", [@ membername \u003d] "foydalanuvchi nomi"

  • rolni olib tashlash:

    sp_droprole [@ rolename \u003d] "rol_name"

Ma'lumotlarga kirishni boshqarish

Til standartidagi imtiyozlarni aniqlash

Har bir ma'lumotlar bazasi ma'lumotlar bazasidan faqat tegishli ruxsatga ega foydalanuvchilar foydalana olishini ta'minlaydigan mexanizmni qo'llab-quvvatlashi kerak. SQL ma'lumotlar bazasida jadvallarni himoya qilish uchun mo'ljallangan GRANT va REVOKE ko'rsatmalarini o'z ichiga oladi. Foydalanishga asoslangan himoya mexanizmi foydalanuvchi identifikatorlariularning egalik huquqi va imtiyozlari.

Foydalanuvchi identifikatori ba'zi bir ma'lumotlar bazasi foydalanuvchisiga murojaat qilish uchun ishlatiladigan oddiy SQL til identifikatori deb nomlanadi. Ma'lumotlar bazasi ma'muri tomonidan tayinlangan noyob identifikator tayinlanishi kerak. Xavfsizlikning aniq sabablari uchun foydalanuvchi identifikatoriodatda ba'zi parol bilan bog'liq. Har bir bajarilgan DBMS SQL bayonoti foydalanuvchi nomidan bajariladi. Foydalanuvchi identifikatori  foydalanuvchi qaysi ma'lumotlar bazasi ob'ektlariga murojaat qilishi mumkinligini va ushbu ob'ektlar bilan qanday operatsiyalarni bajarishga haqli ekanligini aniqlaydi.

SQL muhitida yaratilgan har bir ob'ekt o'z egasiga ega, u dastlab ushbu ob'ektning mavjudligi haqida biladigan va u bilan har qanday operatsiyalarni amalga oshirish huquqiga ega.

Imtiyozlar yoki huquqlar - bu foydalanuvchi ma'lumotlar bazasi jadvaliga yoki ko'rinishiga nisbatan bajarishi mumkin bo'lgan harakatlar. SQL standarti quyidagi imtiyozlar to'plamini belgilaydi:

  • SELECT - jadvaldan ma'lumotlarni tanlash huquqi;
  • INSERT - jadvalga yangi qatorlarni kiritish huquqi;
  • UPDATE - jadvaldagi ma'lumotlarni o'zgartirish huquqi;
  • DELETE - jadvaldan qatorlarni o'chirish huquqi;
  • Adabiyotlar - ma'lumotlar yaxlitligini saqlashga qo'yiladigan talablar tavsifida ko'rsatilgan jadval ustunlariga murojaat qilish huquqi;
  • FOYDALANISH - Domenlar, cheklar va belgilar to'plamidan foydalanish huquqi.

INSERT va UPDATE imtiyozlari faqat jadvalning alohida ustunlari bilan cheklanishi mumkin, bu holda foydalanuvchiga faqat ko'rsatilgan ustunlarning qiymatlarini o'zgartirishga ruxsat beriladi. Xuddi shunday, REFERENCES imtiyozi faqat jadvalning alohida ustunlariga nisbatan uzaytirilishi mumkin, bu ularning nomlarini ma'lumotlar yaxlitligini himoya qilish talablari tahririda, masalan, boshqa jadvallarning ta'rifiga kiritilgan CHECK va TASHQI KEY moddalarida ishlatilishiga imkon beradi, shu bilan birga boshqa ustunlardan ham foydalanish taqiqlanadi.

Foydalanuvchi CREATE TABLE buyrug'i yordamida yangi jadval yaratganda, u avtomatik ravishda uning egasiga aylanadi va unga boshqa foydalanuvchilar ega bo'lmagan imtiyozlarning to'liq to'plamini oladi. Ularga kirishni ta'minlash uchun egasi GRANT operatoridan foydalaniladigan zarur huquqlarni aniq berishi kerak.

CREATE VIEW bayoni yordamida ko'rinishni yaratishda foydalanuvchi avtomatik ravishda ushbu ko'rinishning egasi bo'ladi va huquqlarning to'liq to'plamini oladi. Ko'rinishni yaratish uchun foydalanuvchiga uning barcha jadvallari uchun SELECT va ushbu ko'rinishning ta'rifida ko'rsatilgan barcha ustunlar uchun REFERENCES imtiyoziga ega bo'lish kifoya. Yaratilgan ko'rinishga nisbatan INSERT, UPDATE va DELETE imtiyozlari foydalanuvchiga agar u foydalanilgan barcha jadvallar bo'yicha tegishli imtiyozlarga ega bo'lsa beriladi.

Foydalanuvchilarga imtiyozlar berish

GRANT bayonoti quyidagicha qo'llaniladi imtiyozlar berish  ko'rsatilgan ma'lumotlar bazalariga tegishli foydalanuvchilarga nisbatan. Odatda stol egasi tomonidan unga ishlatiladi kirishni ta'minlash  unga boshqa foydalanuvchilarga. GRANT bayonoti quyidagi formatga ega:

<предоставление_привилегий>:: \u003d GRANT (<привилегия>[, ... n] | HAMMA PRIVILEGES) ON ob'ekt_name TO (<идентификатор_пользователя>  [, ... n] | JAMOAT) ([GRANSIY OPTION BILAN]]

Parametr<привилегия>   o'zida aks ettiradi:

<привилегия>:: \u003d (TANLASH | O'RNATISH | INSERT [(ustun_nomasi [, ... n])] | YANGILIKLAR [(ustun_name [, ... n])]) | REFERENCES [(ustun_nomasi [, ... n])] | FOYDALANISH)

Soddalashtirish uchun siz GRANT bayonotida ALL PRIVILEGES kalit so'zini belgilashingiz mumkin, bu sizga ko'rsatilgan foydalanuvchiga barcha mavjud imtiyozlarni ularni ro'yxatisiz berishga imkon beradi. Bundan tashqari, ushbu bayonotda PUBLIC kalit so'zini ko'rsatishi mumkin, ya'ni kirishni ta'minlash  ko'rsatilgan tur nafaqat barcha mavjud foydalanuvchilarga, balki keyinchalik bazada aniqlanadigan barcha foydalanuvchilarga ham tegishli.

Object_name parametridan ma'lumotlar bazasi nomi, ko'rinish, domen, belgilar to'plami, tekshirish nomi sifatida foydalanish mumkin.

GRANT OPTION parametrlari tufayli GRANT ko'rsatmasida ko'rsatilgan foydalanuvchilar hamma narsani o'tkazish huquqiga ega tomonidan taqdim etilgan  yuqorida ko'rsatilgan ob'ektga nisbatan boshqa foydalanuvchilarga imtiyozlar beriladi, ular o'z navbatida o'z vakolatlarini topshirish uchun xuddi shunday huquqqa ega bo'ladilar. Agar ushbu parametr ko'rsatilmagan bo'lsa, imtiyozni oluvchi o'z huquqlarini boshqa foydalanuvchilarga o'tkaza olmaydi. Shunday qilib, ob'ekt egasi ob'ektga kirish huquqini kim olganligini va unga qanday vakolatlar berilganligini aniq nazorat qilishi mumkin.

Foydalanuvchilarga berilgan imtiyozlarni bekor qilish

SQL tilida imtiyozlarni bekor qilish, tomonidan taqdim etilgan foydalanuvchilar GRANT bayonoti orqali, REVOKE bayonot ishlatiladi. Ushbu operatordan foydalangan holda ilgari ko'rsatilgan foydalanuvchi tomonidan olingan barcha yoki ba'zi imtiyozlar bekor qilinishi mumkin. REVOKE bayonoti quyidagi formatga ega:

<отмена_привилегий>:: \u003d REVOKE (<привилегия>[, ... n] | HAMMA PRIVILEGES) ON ob'ekt_name FROM (<идентификатор_пользователя>  [, ... n] | JAMOAT)

ALL PRIVILEGES kalit so'zi ko'rsatilgan foydalanuvchi uchun barcha imtiyozlar bekor qilinishini anglatadi, tomonidan taqdim etilgan  oldinroq ushbu operatorga kirgan foydalanuvchi tomonidan. Ixtiyoriy GRANT OPTION iborasi GRANT OPTION bilan berilgan barcha imtiyozlarga, GRANT OPTION bilan berilgan, barcha imtiyozlarga imtiyozlardan qat'i nazar, ularni o'tkazish imkoniyatini bekor qilishga imkon beradi.

Agar RESTRICT kalit so'zi bayonotda ko'rsatilgan bo'lsa, REVOKE buyrug'ining muvaffaqiyatli bajarilishi, agar bayonotda sanab o'tilgan imtiyozlar boshqa foydalanuvchilar uchun "tashlab qo'yilgan" imtiyozlarning paydo bo'lishiga olib kelmasa, amalga oshiriladi. CASCADE parametri boshqa foydalanuvchilarga qoldirilishi mumkin bo'lgan barcha imtiyozlarni olib tashlaydi.

"Chap" - bu GRANT OPTION parametridan foydalangan holda bir vaqtning o'zida foydalanuvchiga berilgan imtiyozlar.

Imtiyozning mavjudligi ma'lum ob'ektlarni yaratish uchun zarur bo'lganligi sababli, uni olib tashlash bilan bir qatorda, siz u yoki bu ob'ekt tomonidan tashkil etilgan huquqni yo'qotishingiz mumkin (bunday ob'ektlar "tashlab qo'yilgan" deb nomlanadi). Agar REVOKE bayonotini bajarish natijasida tashlab qo'yilgan ob'ektlar paydo bo'lishi mumkin bo'lsa (masalan, ko'rinishlar), huquq CASCADE kalit so'zini ko'rsatmasa shart bilan bekor qilinadi. Agar CASCADE kalit so'zi bayonotda mavjud bo'lsa, dastlabki REVOKE bayonotini bajarish paytida yuzaga kelgan barcha tashlab qo'yilgan ob'ektlar uchun DROP ko'rsatmalari avtomatik ravishda chiqariladi.

Ko'rsatilgan foydalanuvchiga boshqa foydalanuvchilar tomonidan berilgan imtiyozlarga REVOKE operatori ta'sir ko'rsatmaydi. Shuning uchun, agar boshqa foydalanuvchi ushbu foydalanuvchiga o'chirish huquqini bergan bo'lsa, ko'rsatilgan foydalanuvchi tegishli jadvalga kirish huquqini saqlab qoladi. Masalan, A va E foydalanuvchisiga Mahsulotlar jadvalida INSERT imtiyozlari berilsin. Foydalanuvchi A foydalanuvchiga Mahsulot jadvaliga INSERT imtiyozini, GRANT OPTION BILAN (1-qadam). B foydalanuvchisi ushbu imtiyozni C foydalanuvchisiga o'tkazdi (2 bosqich). Keyin C foydalanuvchisi uni E foydalanuvchisidan oldi (3-bosqich). Keyinchalik, C foydalanuvchisi D foydalanuvchi uchun ushbu imtiyozni berdi (4 bosqich). A foydalanuvchi qachon   imtiyozni bekor qiladi  B foydalanuvchisi uchun INSERT, C foydalanuvchisi uchun ham bekor qilinishi mumkin emas, chunki u ilgari E foydalanuvchisidan olgan edi. Agar E foydalanuvchisi ushbu foydalanuvchiga ushbu imtiyozni bermagan bo'lsa, B foydalanuvchisining imtiyozini o'chirib tashlash C va D foydalanuvchilar uchun imtiyozlarni kaskadli olib tashlashga olib keladi (17.1 jadvalga qarang).

MS SQL Serverda ma'lumotlar bazasi ob'ektlariga kirish huquqini amalga oshirish

MS SQL Server muhitida huquqlar toifalari

SQL Serverga ulanishda foydalanuvchining barcha mumkin bo'lgan xatti-harakatlari ularning hisoblariga, guruhiga yoki ular mansub bo'lgan rolga berilgan huquqlar (imtiyozlar, ruxsatnomalar) bilan belgilanadi.

Huquqlarni uch toifaga bo'lish mumkin.

  • ob'ektlarga kirish huquqi;
  • buyruqni bajarish huquqlari;
  • shubhasiz huquqlar.
   17.1-jadval.
A foydalanuvchisiB foydalanuvchisiFoydalanuvchi CFoydalanuvchi DFoydalanuvchi E
Grant optsiyasi bilan B punktiga GRANT INSERT Haqni olish
B huquqidan foydalanish. E-dan huquqni olish GRANT FOYDALANUVCHILARIGA C CERGA INSTERT
D punktiga GRANT INSERT Haqni olish
INSERT-ni B CASCADE-ga qaytaring Qonunni bekor qilishHuquqning saqlanishiHuquqning saqlanishiHuquqning saqlanishi

Ma'lumotlar bilan ishlash va saqlangan protseduralarni bajarish uchun kirish klassi kerak ob'ektlarga kirish huquqi  ma'lumotlar bazalari. Ob'ektlar bu jadvallar, jadval ustunlari, ko'rinishlar, saqlanadigan protseduralar.

Turli xil ob'ektlar uchun ularga kirish huquqlarining turli xil to'plamlaridan foydalaniladi:

  • SELECT, INSERT, UPDATE, DELETE, REFERENCES - jadval yoki ko'rinish uchun;
  • SELECT, UPDATE - jadval yoki ko'rinishning ma'lum bir ustuni uchun;
  • EXECUTE - saqlangan protsedura va funktsiyalar uchun.

INSERT huquqi jadvalga yoki ko'rinishga yangi qatorlarni qo'shish imkonini beradi va faqat jadval yoki ko'rinish darajasida chiqariladi; uni ustun darajasida chiqarish mumkin emas.

UPDATE huquqi jadval tarkibidagi yoki faqat uning tarkibidagi ma'lumotlarni o'zgartirishga imkon beradigan alohida ustun darajasida chiqariladi.

DELETE huquqi jadval yoki ko'rinishda satrlarni o'chirishga imkon beradi, u faqat jadval yoki ko'rinish darajasida chiqariladi, ammo ustun darajasida ko'rsatilmaydi.

SELECT huquqi ma'lumot olish uchun ruxsat beradi va ularni jadval darajasida ham, alohida ustun darajasida ham ko'rsatish mumkin.

REFERENCES huquqi belgilangan ob'ektga murojaat qilish imkoniyatini beradi. Jadvallar uchun sizga ushbu jadvalning asosiy kalitiga yoki noyob ustuniga ishora qiluvchi tashqi kalitlarni yaratishga imkon beradi.

Huquqlarni berish

Boshqaruv uchun foydalanuvchiga ob'ektlarga kirish huquqi  Ma'lumotlar bazasi buyrug'idan foydalanadi:

<предоставление_привилегий>:: \u003d GRANT (HAMMA [PRIVILEGES] |<привилегия>   [, ... n]) ((((ustun nomi) [, ... n])] ON (jadval_nomasi | ko'rish_nomasi) | ON (jadval_nomasi | ko'rish_nomasi) ((ustun_nomasi [, ... n])] | ON (saqlangan_ nom | tashqi_procedure_name)) TO (foydalanuvchi_nomasi | guruh_nomasi | rol_nomasi) [, ... n]

Parametr<привилегия>

<привилегия>:: \u003d (TANLASH | O'RNATISH | INSERT | YANGILASH | ISHLASH | MA'LUMOTLAR)

GRANT OPTION parametri sizga huquq bergan foydalanuvchiga ob'ektga kirish huquqini boshqa foydalanuvchilarga tayinlashda yordam beradi. Uning ishlatilishi alohida g'amxo'rlikni talab qiladi, chunki bu holda egasi nazoratni yo'qotadi huquqlar berish  boshqa foydalanuvchilarga kirish. Imkoniyatlari bo'lgan foydalanuvchilar sonini cheklash yaxshidir huquqlarni tayinlashni boshqarish.

Ixtiyoriy parametr AS (group_name | rol_name)  foydalanuvchi taqdim etadigan rolda ishtirok etishni belgilashga imkon beradi huquqlar berish  boshqa foydalanuvchilarga.

Saqlangan protsedura uchun berilishi mumkin bo'lgan yagona kirish huquqi uni bajarish huquqidir (EXECUTE). Tabiiyki, bunga qo'shimcha ravishda, saqlangan protseduraning egasi o'z kodini ko'rishi va o'zgartirishi mumkin.

Biror funktsiyani bajarish uchun siz uni bajarish huquqini berishingiz mumkin, bundan tashqari, funktsiyani tegishli ob'yektlar bilan bog'lash qobiliyatini ta'minlaydigan to'g'ri REFERENCES bering. Bunday bog'lanish funktsiyaning buzilishiga olib keladigan ob'ektlarning tuzilishiga o'zgartirish kiritishni oldini oladi.

SQL buyruqlarini bajarishga ruxsat

Ushbu huquqlar sinfi ma'lumotlar bazasida ob'ektlarni yaratish qobiliyatini, ma'lumotlar bazasining o'zi va zaxiralash tartibini bajaradi. Ta'minlash uchun quyidagi buyruqdan foydalanishingiz mumkin   buyruqni bajarish huquqlari  SQL:

<предоставление_права_выполнения>:: \u003d GRANT (HAMMA |<команда>

Parametr<команда>   quyidagi qurilishni anglatadi:

<команда>:: \u003d (MA'LUMOTNI YARATISH | Jadvalni yaratish | KO'RIShNI KO'RSATISh | NAZARATNI YARATISH | YARATISH QOIDALARI | YARATISH TARTIBI | Zaxira Ma'lumotlar bazasi | Zaxira nusxasi | BARCHA

Shunday qilib, siz ma'lumotlar bazasi, jadval, ko'rinish, standart, qoida, saqlanadigan protsedura, ma'lumotlar bazasi va tranzaktsiyalar jurnalining zaxira nusxasini yaratish huquqini berishingiz yoki bir vaqtning o'zida yuqoridagi barcha huquqlarni taqdim etishingiz mumkin.

Yashirin huquqlar

Ba'zi harakatlar aniq ruxsatni talab qilmaydi va odatiy tarzda mavjud. Ushbu amallarni faqat server rollari a'zolari yoki ma'lumotlar bazasidagi ob'ektlarning egalari bajarishi mumkin.

Noaniq huquqlar foydalanuvchiga to'g'ridan-to'g'ri berilmaydi, u faqat muayyan holatlarda ularni oladi. Masalan, foydalanuvchi ma'lumotlar bazasi ob'ekti egasi bo'lishi mumkin, agar u ob'ektni o'zi yaratgan bo'lsa yoki boshqa kimsa unga o'z ob'ekti huquqini bergan bo'lsa. Shunday qilib, ob'ekt egasi avtomatik ravishda ob'ekt bilan, shu jumladan har qanday harakatlarni bajarish huquqini oladi kirishni ta'minlash  ob'ektga boshqa foydalanuvchilarga. Ushbu huquqlar hech qanday joyda ko'rsatilmagan, faqat ob'ektga egalik qilish fakti har qanday harakatlarni amalga oshirishga imkon beradi.

Kirishni rad qilish

SQL Server xavfsizligi ierarxik tuzilishdir va shuning uchun ma'lumotlar bazasi rollariga Windows NT hisoblari va guruhlari, foydalanuvchilar va SQL Server rollari kiradi. Foydalanuvchi, o'z navbatida, bir nechta rollarda qatnashishi mumkin va bir vaqtning o'zida turli rollar uchun turli xil kirish huquqlariga ega. Foydalanuvchi bo'lgan a'zolardan biri ma'lumotlarga kirish huquqiga ega bo'lsa, u avtomatik ravishda xuddi shunday huquqlarga ega bo'ladi. Shunga qaramay, agar ehtiyoj tug'ilsa, foydalanuvchiga ma'lumotlar yoki buyruqlardan foydalanish rad etilishi mumkin, u holda ierarxiyaning har qanday darajasida olingan barcha kirish ruxsati bekor qilinadi. Yuqori darajadagi ruxsatlarga qaramay, kirish taqiqlangan bo'lib qolishi kafolatlanadi.

Uchun kirish taqiqlandi

<запрещение_доступа>:: \u003d DENY (HAMMA | | |)<привилегия>   [, ... n]) ((((ustun_nomasi [, ... n])] ON (jadval_nomasi | ko'rish_nomasi) | ON (jadval_name | ko'rinish_nomasi) [ustun_nomasi [, ... n])] | ON (saqlangan_procedure_name | tashqi_procedure_name)) TO (foydalanuvchi nomi | group_name | rol_name) [, ... n]

CASCADE parametri nafaqat ma'lum bir foydalanuvchining, balki u shunga o'xshash huquqlarni berganlarning ham huquqlarini bekor qilishga imkon beradi.

SQL buyruqlarini bajarilishini taqiqlash uchun quyidagi ibora ishlatiladi:

<запрещение_выполнения>:: \u003d DENY (HAMMA |<команда>[, ... n]) TO (foydalanuvchi nomi | guruh_nomasi | rol_nomasi) [, ... n]

Ruxsat berilmadi

Aniq og'ish  kabi kirishni rad etish  farqi bilan u faqat aniqlangan darajada harakat qiladi. Agar foydalanuvchi ma'lum bir darajada bo'lsa kirish aniq taqiqlangan, u baribir uni ko'rish huquqiga ega bo'lgan rolga a'zo bo'lish orqali ierarxiyaning boshqa darajasida olishi mumkin. Odatiy bo'lib, foydalanuvchidan ma'lumotlarga kirish aniq taqiqlangan. Uchun yashirin kirish taqiqlangan  ma'lumotlar bazasi ob'ektlari uchun quyidagi ob'ektlar ishlatiladi:

<неявное_отклонение_доступа>:: \u003d REVOKE (HAMMA [PRIVILEGES] | |<привилегия>   [, ... n]) ((((ustun_nomasi [, ... n])] ON (jadval_nomasi | ko'rish_nomasi) | ON (jadval_name | ko'rinish_nomasi) [ustun_nomasi [, ... n])] | ON (saqlangan_procedure_name | tashqi_procedure_name)) TO | FROM (foydalanuvchi nomi | group_name | rol_name) [, ... n]

Uchun ravshan og'ish  buyruqlarni bajarishga ruxsat  SQL quyidagi buyruqdan foydalanadi:

<неявное_отклонение_разрешения>:: \u003d REVOKE (HAMMA |<команда>[, ... n]) FROM (foydalanuvchi nomi | group_name | rol_name) [, ... n]

Parametrlarning ma'nosi GRANT va DENY buyruqlarining parametrlariga o'xshashdir. GRANT OPTION FOR parametri huquqni bekor qilish kerak bo'lganda ishlatiladi, tomonidan taqdim etilgan  GRANT buyrug'ining WITH GRANT OPTION parametri. Foydalanuvchi ob'ektga kirish huquqini saqlab qoladi, ammo boshqa foydalanuvchilarga ushbu ruxsatni berish imkoniyatini yo'qotadi.

Kirish qarama-qarshiliklari

Ruxsatnomalar tomonidan taqdim etilgan  rollar yoki guruhlar o'z a'zolari tomonidan meros qilib olinadi. Foydalanuvchi bo'lishi mumkin bo'lsa-da ruxsat berilgan  Bir rolga a'zo bo'lish orqali boshqa darajadagi shaxs ob'ekt bilan ishlashni taqiqlashi mumkin. Bunday holda, paydo bo'ladi kirish ziddiyati.

Ruxsat berilganda kirish ziddiyatlari  SQL Server quyidagi printsipga amal qiladi: ruxsat kirishni ta'minlash  eng past ustuvorlikka ega va yana kirish taqiqlandi  - eng yuqori. Bu shuni anglatadiki, ma'lumotlarga kirish faqat aniq tarzda olinishi mumkin ta'minlash  yo'qligida kirish taqiqlandi  xavfsizlik ierarxiyasining har qanday boshqa darajasida. Agar kirishga aniq ruxsat berilmasa, foydalanuvchi ma'lumotlar bilan ishlay olmaydi.

17.1-misol.  Unga barcha huquqlarni beradigan yangi ma'lumotlar bazasini, ushbu ma'lumotlar bazasi uchun yangi foydalanuvchini yarating.

CREATE DATABASE basa_user ma`lumotlar bazasi ma'muri tomonidan yaratilishi - UserA va parol - 123 'nomli yangi foydalanuvchi yaratish - UserA foydalanuvchi uchun odatiy ma'lumotlar baza_user nomli ma'lumotlar bazasi bo'ladi. sp_addlogin "UserA", "123", "basa_user" - basa_user USE ma'lumotlar bazasiga o'ting basa_user - joriy ma'lumotlar bazasiga qo'shing - (basa_user) foydalanuvchi ismini - userA sp_adduser "UserA" - foydalanuvchini foydalanuvchi bilan ta'minlash - basa_user ma'lumotlar bazasida UserA'ga barcha huquqlar GRANT    17.1-misol. Unga barcha huquqlarni taqdim etgan holda yangi ma'lumotlar bazasini yaratish.

17.2-misol  Rollardan foydalanish.

O'quv rolini yarating va ushbu rolga ikki foydalanuvchi, user1 va user2 qo'shing:

sp_addrole "stud" sp_addrolemember "tishli", "user1" sp_addrolemember "stud", "user2"

O'tkazish roliga va to'g'ridan-to'g'ri foydalanuvchi2-ga huquqlarni bering:

GRANT TANLANG, elementga INSERT kiriting GRANT SELECT, foydalanuvchiga mahsulotga INSERT

Ushbu buyruqlarni bajargandan so'ng user1 va user2 foydalanuvchilari mahsulot jadvaliga yozuvlarni tanlash va qo'shish buyruqlarini bajarishlari mumkin.

Mahsulot roli uchun Mahsulot jadvaliga kiritish huquqini to'xtatib qo'yamiz:

QO'ShIMChA TO'G'RISIDA INSERTNI QO'RING

Oldingi buyruqni bajargandan so'ng, user1 yozuvlarni kiritish huquqini yo'qotadi va user2 ushbu huquqni saqlab qoladi, chunki kiritish huquqi unga aniq berilgan.

Buyruqni ishga tushiring

DENY INSERT-ni tejamkorlik elementiga o'rnatish.

Ushbu buyruq bajarilgandan so'ng ikkala foydalanuvchi ham Mahsulotlar jadvaliga kiritish huquqidan mahrum.

"Ma'lumotlar bazasi serveri" atamasi mijoz-server arxitekturasiga asoslangan butun ma'lumotlar bazasini, shu jumladan server va mijoz qismini nazarda tutishda ishlatiladi. Bunday tizimlar ma'lumotlar bazasini saqlash va ularga kirishni ta'minlash uchun mo'ljallangan. Odatda bitta ma'lumotlar bazasi butunlay bitta tarmoq tugunida saqlanadi va ma'lumotlar bazasi serverida server tomonidan qo'llab-quvvatlanadi, bu taqsimlangan bazalarga oddiy va arzon yondoshishdir, chunki umumiy ma'lumotlar bazasi mahalliy tarmoqning barcha foydalanuvchilari uchun mavjuddir. Ilova dasturidan yoki foydalanuvchidan ma'lumotlar bazalariga kirish tizimning mijoz qismi yordamida amalga oshiriladi. Mijoz va server qismlari o'rtasidagi asosiy til SQL.

SQL - bu ochiq tizimlarda amaldagi standart DBMS interfeysi. Dasturlash qoidalariga rioya qilib, SQL serverlari sinfida mobil ilova ma'lumot tizimlarini yaratishingiz mumkin.

Interfeysi SQL tiliga asoslangan ma'lumotlar bazasi serverlarining afzalliklari va kamchiliklari mavjud.

Afzalliklari: standart ochiq interfeys, ya'ni har qanday yo'naltirilgan MBBT mijoz qismi, uni qachon ishlab chiqqanligidan qat'i nazar, har qanday SQL server bilan ishlashi mumkin.

Kamchiliklari. Mijoz va tizimning server qismlari o'rtasida yuqori darajadagi interfeys mavjud, juda kam sonli DBMS dasturlari mijoz tomonida ishlaydi. Agar mijoz tomonidan kam quvvatli ishlaydigan stantsiya ishlatilsa, bu normal holat. Ammo agar mijoz tarkibiy qismi etarlicha kuchga ega bo'lsa, unda unga katta ma'lumotlar bazasini boshqarish funktsiyalarini tayinlash zarurati tug'iladi. Bu holda ushbu tizimning muammosi bo'lgan serverni bo'shating. Ma'lumotlar bazasini boshqarishning to'g'ri yo'nalishlaridan biri moslashuvchan sozlangan tizim bo'lib, unda funktsiyalar mijoz va foydalanuvchi tizimlari o'rtasida taqsimlanadi.

Masofaviy protsedura qo'ng'iroq protokollarining afzalliklari

    Masofaviy protseduralarni chaqirish mexanizmidan foydalanish funktsiyalarni mijoz va tizimlarning server qismlari o'rtasida taqsimlashga imkon beradi, chunki RPC dasturining matnida odatiy qo'ng'iroqdan farq qilmaydi. Shuning uchun tizimning har qanday tarkibiy qismi server tomonida ham, mijoz tomonida ham joylashishi mumkin.

    RPC mexanizmi o'zaro ishlaydigan kompyuterlar o'rtasidagi farqlarni yashiradi, fizik jihatdan bir xil bo'lmagan mahalliy tarmoq o'zaro ta'sir qiluvchi komponentlarning mantiqiy bir hil tarmog'iga qisqartiriladi. Foydalanish natijasida mos keladigan serverlar va ish stantsiyalarini bir martalik sotib olishga jiddiy g'amxo'rlik qilishning hojati yo'q.

Vazifalarni mijozlar va serverlar o'rtasida taqsimlash

Odatda bugungi kunda DBMS tomonida ma'lumotlar bazasiga to'g'ridan-to'g'ri kirish imkoni bo'lmagan, ammo SQL tilidan foydalanib serverga kiradigan bunday dasturiy ta'minot ishlaydi.

Ba'zi hollarda, mahalliy ma'lumotlar bazasi keshi bilan ishlash uchun tizimning mijoz qismida ba'zi funktsiyalarni kiritish kerak, ya'ni. mijoz ilova tomonidan ishlatiladigan qismi bilan. Zamonaviy texnologiyalardan foydalanib, bu faqat mijoz tomonida ma'lumotlar bazasi serverlarining mahalliy nusxasini yaratish va butun tizimni o'zaro ta'sirli serverlar to'plami sifatida ko'rib chiqish orqali amalga oshiriladi. Boshqa tomondan, ba'zida dastur tizimining ko'p qismini server tomoniga o'tkazishni xohlayman, agar mijozning ish stantsiyalari va serverning imkoniyatlaridagi farq katta bo'lsa, bu server dasturiy ta'minotiga ruxsat bergan taqdirda masofaviy protsedura qo'ng'irog'i yordamida amalga oshirilishi mumkin.

Mijoz va xizmat ko'rsatish kompyuterlari uchun apparat va dasturiy ta'minotga bo'lgan talablar ishlatilayotgan tizim turiga qarab farqlanadi.

Mijoz va xizmat ko'rsatish qismlari o'rtasida bo'linish juda zamonaviy bo'lsa, zamonaviy DBMS-larda bo'lgani kabi, stantsiyalarda ishlaydigan foydalanuvchilar serverda qanday apparat va operatsion tizim ishlayotganiga ahamiyat bermaydilar, agar bu paydo bo'layotgan so'rovlar oqimi bilan taqqoslansa.

Agar mijoz va server o'rtasida funktsiyalarni qayta taqsimlash zarurati tug'ilsa, unda tizimning qaysi operatsiyalaridan foydalanish muhim emas.

Tarqatilgan ma'lumotlar bazalari

Taqsimlangan ma'lumotlar bazasini boshqarish tizimining asosiy vazifasi har qanday tarmoq tugunida ishlaydigan foydalanuvchilar barcha ma'lumotlar bazalariga yagona ma'lumotlar bazasi sifatida kirishlari uchun kompyuter tarmog'ining ba'zi tugunlarida joylashgan mahalliy ma'lumotlar bazalarini integratsiyalash vositalarini taqdim etishdir. Bunda quyidagilar ta'minlanishi kerak:

1) tizimdan foydalanish qulayligi;

2) tarmoq ulanishi buzilgan holda avtonom ishlash imkoniyati;

Tarqatilgan tizimlarning turlari

Bir hil va heterojen ma'lumotlar bazalari mavjud. Bir hil ma'lumotlar bazasida har bir mahalliy ma'lumotlar bazasi bir xil MBBT tomonidan boshqariladi. Turli xil tizimlarda mahalliy ma'lumotlar bazalari hatto turli xil ma'lumotlar modellariga murojaat qilishlari mumkin.

Turli xil SQL yo'naltirilgan tizimlarni integratsiyalash muammosini hozirgi kunda eng muvaffaqiyatli hal qilish. Bunga SQL tilini standartlashtirish va umumiy kuzatuv yordam beradi.

Taqsimlangan ma'lumotlar bazasini boshqarish tizimini yaratish loyihaning asosiy maqsadi quyidagicha shakllantirilishi mumkin: har qanday tarmoq tugunida ishlaydigan foydalanuvchi ushbu ma'lumotlar bazalariga kirish huquqiga ega bo'lishi uchun kompyuter tarmog'ining tugunlarida joylashgan mahalliy ma'lumotlar bazalarini integratsiyalash vositalarini taqdim etish kerak. go'yo ular markazlashtirilgandek, quyidagilar ta'minlanadi:

1) tizimdan foydalanish qulayligi;

2) tarmoqqa ulanish uzilib qolganda avtonom ishlash imkoniyati;

3) yuqori samaradorlik darajasi.

Ushbu muammolarni hal qilish uchun dastlabki so'rovni dekompozitsiya qilish, so'rovni bajarish usulini maqbul tanlash, kelishilgan operatsiyalarni bajarish, taqsimlangan bloklarni sinxronlashtirish, aniqlash va hal etish, tarmoq tugunlarida turli xil nosozliklar yuzaga kelgandan keyin ma'lumotlar bazasini holatini tiklash bo'yicha bir qator zarur dizayn qarorlari qabul qilindi. Tizimdan foydalanish qulayligiga foydalanuvchilar SQL tilining muhitida qolishlari sababli erishiladi. SQL-dan foydalanish imkoniyati ma'lumotlar joylashuvining shaffofligini ta'minlaydi. Tizim foydalanuvchi so'rovida ko'rsatilgan ma'lumotlar ob'ektlarining joriy manzilini avtomatik ravishda aniqlaydi. Xuddi shu dastur, shu jumladan SQL dasturini turli xil tarmoq tugunlarida bajarish mumkin. Bundan tashqari, tarmoqning har bir tugunida, so'rovni tuzish bosqichida, taqsimlangan tizimda ma'lumotlarning joylashishiga qarab, so'rovlarni bajarishning eng maqbul rejasi tanlanadi. Tarmoq tugunlarining avtonomligini ta'minlash quyidagicha ta'minlanishi mumkin: har bir mahalliy ma'lumotlar bazasi boshqalardan mustaqil ravishda boshqariladi, yangi foydalanuvchilarni avtomatik ravishda ulash, tizimning avtonom qismining versiyasini o'zgartirish va hk. Tizim shunday tuzilganki, u ob'ektlarni nomlash yoki qulfni aniqlash uchun markazlashtirilgan xizmatni talab qilmaydi.

Shaxsiy tugunlar boshqa tarmoq tugunlarida bajariladigan operatsiyalar haqida global ma'lumotga muhtoj emas. Kirish mumkin bo'lgan ma'lumotlar bazalari bilan ishlash alohida tarmoq tugunlari va aloqa liniyalarining ishlamay qolishi bilan davom etishi mumkin. Tizimning yuqori samaradorligiga erishish uchun ikkita asosiy usul qo'llaniladi. Birinchidan, so'rov oldin kompilyatsiya qilinadi. Ushbu jarayon davomida taqsimlangan katalogda so'rovda ishlatiladigan ma'lumotlar bazasi ob'ektlari nomlari bo'yicha qidiruv amalga oshiriladi va nomlar ichki identifikatorlarga almashtiriladi; kompilyatsiya qilingan foydalanuvchining ma'lumotlar bazalarida tegishli operatsiyalarni bajarish uchun foydalanish huquqlarini tekshirish va so'rovlarni bajarish uchun eng maqbul mahalliy rejalar tanlab olinadigan va tegishli tarmoq tugunlariga taqsimlanadigan eng maqbul global so'rovni bajarish rejasini tanlash. mashina kodlarida kirish modullarini yaratish. Natijada, kompilyatsiya bosqichida so'rovlarning haqiqiy bajarilishidan oldin ko'plab harakatlar amalga oshiriladi. Shu tarzda ishlangan amaliy dastur, shu jumladan SQL-ko'rsatmalar, kelajakda qo'shimcha xarajatlarsiz ko'p marta bajarilishi mumkin.

Ikkinchidan, tizim samaradorligini oshirish vositasi masofaviy aloqalarni mahalliy ma'lumotlar bazalariga o'tkazish qobiliyatidir.

Tarqatilgan so'rovlarni tuzish

SQL so'rovlari bajarilishidan oldin tuzilishi mumkin. So'rovlarni tuzish odatiy an'anaviy dasturlash tilida yozilgan dasturni oldindan tuzish bosqichida, SQL so'rovlarini qo'shgan holda yoki SQL tilidagi ko'rsatmalardan foydalangan holda tranzaktsiyalarni bajarish paytida amalga oshirilishi mumkin. Foydalanuvchi nuqtai nazaridan kompilyatsiya jarayoni quyidagi natijalarga olib keladi: har bir SQL izohi uchun mashina kodlarida dastur yaratiladi, ularning chaqiruvlari manba ilova matniga joylashtiriladi, ammo haqiqatda so'rovlarni kompilyatsiya qilish jarayoni tarmoqning murakkab o'zaro ta'siri tufayli ancha murakkablashadi. operatsiya aslida bajarilganda. SQL so'rovlarini kompilyatsiya qilish jarayoni boshlanadigan tarmoqning asosiy tugunini va qo'shimcha tugunlarni (uni bajarish jarayonida ushbu tugunlarni) chaqiramiz. Eng jiddiy darajada kompilyatsiya jarayonini quyidagi bosqichlarga bo'lish mumkin.

    Tarmoqning asosiy tugmasi SQL bayonotini daraxt shaklida so'rovning ichki ko'rinishini qurish bilan tahlil qiladi. Asosiy tugunning mahalliy katalogidan va qo'shimcha tugunlarning masofaviy kataloglaridan olingan ma'lumotlar asosida so'rovda paydo bo'lgan ob'ektlarning nomlari ularning tizim identifikatorlari bilan almashtiriladi.

    Asosiy tugunda so'rovni bajarishning global rejasi tuziladi, u so'rovning haqiqiy bajarilishi paytida faqat tugunlarning o'zaro ta'sir tartibini hisobga oladi. Global reja mos ravishda o'zgartirilgan so'rovlar daraxti shaklida ko'rsatiladi.

    Agar qo'shimcha tugunlar global so'rovni bajarish rejasida qatnashsa, u qismlarga bo'linadi, ularning har biri bitta tugunda bajarilishi mumkin. Masalan, berilgan shartga muvofiq munosabatlarni lokal filtrlash, bunda so'rovning tegishli qismlari tegishli qo'shimcha tugunlarga yuboriladi.

Global so'rovlarni bajarish rejasida ishtirok etadigan har bir tugunda, asosiy yoki ikkilamchi, yakuniy bosqichi amalga oshiriladi. Ushbu bosqich so'rovlarni kompilyatsiya qilish jarayonining oxirgi ikki bosqichini o'z ichiga oladi: optimallashtirish va mashina kodlarini ishlab chiqarish, kompilyatsiya amalga oshirilayotgan foydalanuvchining tegishli harakatlarni tekshirish huquqlari. Ma'lumotlar bazasi taqdimotlari qayta ishlanadi, so'rovning qayta ishlangan qismini mahalliy optimallashtirish mavjud indekslarga muvofiq amalga oshiriladi va kod yaratiladi.

Ma'lumotlar bazasi foydalanuvchilarini qo'shish

Ma'lumotlar bazasi manbalari

Foydalanuvchi Windows foydalanuvchi qayd yozuvi yoki SQL Server kirishidan foydalanib ma'lumotlar bazasi tizimiga kirishi mumkin. Keyingi kirish va ma'lum bir ma'lumotlar bazasi bilan ishlash uchun foydalanuvchi bazasida foydalanuvchi hisobiga ega bo'lishi kerak. Har bir shaxsiy ma'lumotlar bazasi bilan ishlash uchun siz ushbu maxsus ma'lumotlar bazasi uchun foydalanuvchi hisobiga ega bo'lishingiz kerak. Ma'lumotlar bazasi foydalanuvchi hisob qaydnomasi mavjud Windows foydalanuvchi hisob qaydnomasi, Windows guruhi (foydalanuvchi a'zosi bo'lgan), login nomi yoki rol bilan taqqoslanishi mumkin.

Siz ma'lumotlar bazasi foydalanuvchilarini Management Studio yoki Transact-SQL ko'rsatmalaridan foydalanib boshqarishingiz mumkin. Ushbu ikkala usul ham quyidagi bo'limlarda ko'rib chiqiladi.

Ma'lumotlar bazasi foydalanuvchilarini Management Studio bilan boshqarish

Management Studio-dan foydalangan holda ma'lumotlar bazasi foydalanuvchisini qo'shish uchun, Server Explorer oynasidagi server tugunini va undagi ma'lumotlar bazalari papkasini, ushbu papkada kerakli ma'lumotlar bazasini va ulardagi xavfsizlik papkasini kengaytirish kerak. Users papkasida sichqonchaning o'ng tugmachasini bosing va kontekst menyusidan New User-ni tanlang. Ma'lumotlar bazasi foydalanuvchisi - yangi dialog oynasi ochiladi, unda siz foydalanuvchi ismini kiritasiz va tegishli login nomini kiriting Login:

Bu erda siz shuningdek ushbu foydalanuvchi uchun standart sxemani tanlashingiz mumkin.

Transact-SQL bayonotlari bilan ma'lumotlar bazasi xavfsizligini boshqarish

Mavjud ma'lumotlar bazasiga foydalanuvchini qo'shish uchun foydalaning uSER qo'llanmasini yarating. Ushbu ko'rsatma uchun sintaksis quyidagicha:

Foydalanuvchi foydalanuvchisi_Name Sintaksis konventsiyalarini yarating

User_name parametri foydalanuvchi tomonidan ma'lumotlar bazasida identifikatsiya qilinadigan nomni belgilaydi va foydalanuvchi tomonidan kiritilgan kirish parametri kirish parametrida ko'rsatilgan. Cert_name va key_name parametrlari mos ravishda sertifikat va assimetrik kalitni belgilaydi. Va nihoyat, parametrda DEFAULT_SCHEMA BILAN  ma'lumotlar bazasi serveri ushbu ma'lumotlar bazasi foydalanuvchisi uchun ob'ektlarning nomlarini aniqlash uchun qidiruvni boshlaydigan birinchi sxemani ko'rsatadi.

CREATE USER buyrug'idan foydalanish quyidagi misolda ko'rsatilgan:

FOYDALANISH SampleDb; Kirish Vasya uchun foydalanuvchi Vasya yarating Vasya; DEFAULT_SCHEMA BILAN KIRISH UCHUN ISHLAB CHIQARuvchi Alexni yarating \u003d poco;

Ikkinchi misol bo'yicha ko'rsatma kompyuteringizda muvaffaqiyatli bajarilishi uchun avval Aleksandr foydalanuvchi uchun Windows hisob qaydnomasini yaratib, ProfessorWeb domeni (server) o'rniga server nomini ko'rsatishingiz kerak.

Ushbu misolda birinchi CREATE USER so'zi Vasya foydalanuvchisi uchun Windows hisob qaydnomasida Vasya ma'lumotlar bazasi foydalanuvchisini yaratadi. Vasya uchun standart sxema - bu dbo, chunki DEFAULT_SCHEMA parametrida hech qanday qiymat ko'rsatilmagan. Ikkinchi CREATE foydalanuvchisi Alex ma'lumotlar bazasining yangi foydalanuvchisini yaratadi. Ushbu foydalanuvchi uchun odatiy sxema poco-sxema bo'ladi. (Siz DEFAULT_SCHEMA-ni ma'lumotlar bazasida mavjud bo'lmagan sxema qiymatiga belgilashingiz mumkin.)

Har bir ma'lumotlar bazasi o'ziga xos foydalanuvchilarga ega. Shuning uchun, foydalanuvchi hisobi bo'lishi kerak bo'lgan har bir ma'lumotlar bazasi uchun CREATE USER buyrug'ini bajarish kerak. Bundan tashqari, ma'lum bir ma'lumotlar bazasi uchun SQL Server kirishida faqat bitta ma'lumotlar bazasi foydalanuvchisi bo'lishi mumkin.

Ko'rsatmalardan foydalanish ALTER FOYDALANUVCHI  ma'lumotlar bazasi foydalanuvchi nomini o'zgartirish, foydalanuvchi odatiy sxemasini o'zgartirish yoki boshqa login nomi bilan foydalanuvchini aniqlash mumkin. CREATE USER buyrug'i singari, foydalanuvchiga u yaratilishidan oldin odatiy sxemani tayinlash mumkin.

Mavjud ma'lumotlar bazasidan foydalanuvchini olib tashlash uchun ko'rsatmadan foydalaning FOYDALANUVChINI YO'Q. Himoyalangan ob'ektlarga (ma'lumotlar bazasi ob'ektlariga) ega bo'lgan foydalanuvchi o'chirilmaydi.

Ma'lumotlar bazasi sxemalari

Tizimdagi har bir ma'lumotlar bazasida quyidagi standart sxemalar mavjud.

Ma'lumotlar bazalari (shu jumladan MySQL tizimi) jadvallar ko'rinishida ma'lumotlarni saqlash uchun mo'ljallangan ob'ektdir. Boshqa odamlarning ma'lumotlar bazalari serverdagi har bir foydalanuvchi uchun mavjud bo'lmasligi uchun, ushbu ma'lumotlar bazalari uchun foydalanuvchilar tizimi mavjud. Har qanday ma'lumotlar bazasiga kirishning o'zi ma'mur (yoki vakolatli foydalanuvchi) tomonidan boshqa foydalanuvchiga berilishi mumkin va u to'liq yoki ma'lum darajada cheklangan bo'lishi mumkin. Aniqrog'i, ushbu erkinlik darajasi imtiyozlarda ("huquqlar" yoki "ruxsatnomalar") ifodalangan.

MySQL foydalanuvchilari huquqlari

MySQL ma'lumotlar bazasi tizimida bir nechta imtiyozlar mavjud, ular quyida tavsif bilan keltirilgan. Oxirgi imtiyozlar - bu faqat murojaat uchun aniq ko'rsatilgan ma'mur darajasidagi imtiyozlar. To'liq huquqlar / imtiyozlar haqida ma'lumot MySQL dasturchi hujjatlarida mavjud:

YARATISH  - yangi ma'lumotlar bazalari va jadvallarni yaratishga imkon beradi

Damla  - ma'lumotlar bazalari yoki jadvallarni o'chirishga imkon beradi

INSERT  - jadvalga satrlar qo'shishga imkon beradi.

YANGILIKLAR  - jadval satrlarining tarkibini o'zgartirishga imkon beradi. ALTER bilan adashtirmaslik kerak, bu sizga jadvallarning tuzilishini (satrlar / ustunlar soni, ustun turlari) o'zgartirishga imkon beradi.

O'chirish  - INSERTdan farqli ravishda - jadvaldan satrlarni o'chirishga imkon beradi.

ALTER  - jadvallarning tuzilishini o'zgartirishga imkon beradi. CREATE va INSERT imtiyozlarini talab qiladi.

GRANT TARTIBI  - ma'lum bir foydalanuvchiga muayyan huquqlarni tayinlash imkonini beradi (shuningdek tanlang). Faqat tayinlangan shaxsning o'zi ega bo'lgan huquqlarni berish / tanlash mumkin.

QULF TABLARI - jadvalni sun'iy ravishda o'zgartirish vaqti (ma'muriyat) uchun, uning ichidagi ma'lumotlar tabiiy ravishda o'zgarmasligi uchun (ish jarayonida) qulflanadi.

Adabiyotlar  - tashqi kalit yordamida jadvallar o'rtasida aloqani yaratishga imkon beradi.

Hodisa  - rejalashtiruvchi uchun vazifalarni yaratish / o'zgartirish / o'chirish huquqini beradi

TRIGGER  - siz DELETE, UPDATE yoki amalga oshirayotganda (ma'lum jadvallarga bog'langan) triggerlarni yaratish / o'zgartirish / o'chirish imkonini beradi. INSERT  qo'shimcha harakatlarni bajarish.

INDEX  - imtiyoz jadvalga (dan) indekslarni qo'shish / o'chirish huquqini beradi. Indekslarning o'zi qo'lda tayinlanadi va simlarni qidirishga vaqtni tejashga imkon beradi.

MUSTAQIL JINOYATLARNI yarating  - seans davomida vaqtinchalik jadvallar yaratishga imkon beradi.

KO'RING  - jadval shaklida ba'zi bir vakolatxonalarni yaratishga imkon beradi, aslida u yagona sifatida mavjud emas va faqat boshqa jadvallarning ma'lumotlarini o'z ichiga oladi. Masalan, ushbu ko'rinishda uchta jadvaldan ma'lum bir guruhlangan ma'lumotlarni to'plash mumkin (SELECT operatoridan foydalanib) va aslida to'plangan ma'lumotlar faqat ushbu 3 jadval ma'lumotlariga murojaat qiladi va shuningdek o'z jadvaliga muhtoj bo'lmagan birlashma bo'ladi.

KO'RING  - CREATE VIEW-dan foydalanib yaratilgan qaysi so'rovni (qaysi ma'lumotlardan iborat) tekshirishga imkon beradi

ROUTINE yarating  - tayyorlangan SQL buyruqlari to'plami bo'lgan protsedurani yaratishga imkon beradi.

ALTER ROUTINE  - CREATE tomonidan yaratilgan protsedurani o'zgartirishga imkon beradi ROUTINE.

BOSHLASH  - tayyor protseduralarni chaqirishga imkon beradi.

FILE  - MySQL tizimining o'zi kirish huquqiga ega bo'lgan serverdagi har qanday faylga o'qish huquqini beradi va MySQL yozish huquqiga ega kataloglarda faylni yaratish huquqini beradi.

TABLESPACE yarating  (admin) - jadval maydonlarini yaratishga / o'zgartirishga / o'chirishga imkon beradi. Bu bo'shliqning o'zi mantiqiy va ma'lumotlar bazasi tuzilishi yoki sxemasi bilan bog'liq emas. Jismoniy muhitda ma'lumotlar bazasi ob'ektlarining joylashishini e'lon qiladi va ma'lumotlar bazasini optimallashtirish uchun ishlatiladi.

Foydalanuvchini yarating  (admin) - ma'lumotlar bazasi foydalanuvchilarini yaratish / o'zgartirish / qayta nomlash / o'chirishga imkon beradi.

QOIDALAR  (admin) - serverda ishlaydigan oqimlar (jarayonlar) to'g'risidagi ma'lumotlarga kirishga imkon beradi.

Proksi-server  (admin) - boshqa foydalanuvchi sifatida tizimga kirishga imkon beradi. Ma'mur tomonidan talab qilingan foydalanuvchi uchun kirish huquqlarini tekshirish / tuzatish uchun ishlatiladi.

O'QING (admin) - MySQL keshini tozalaydigan FLUSH so'rovidan foydalanishga imkon beradi

QO'ShIMChA Mijoz  (admin) - SHOW MASTER STATUSINI KO'RING, STATUS KO'RSATISH va BINARY LOGNI KO'RSATIShga imkon beradi

QILISH QUL  (admin) - ushbu imtiyoz serverning asosiy serveriga qul sifatida ulanishi uchun serverning ma'lumotlar bazasi serveri foydalanuvchilari uchun zarurdir. Ushbu imtiyozsiz, server serverlari asosiy serverdan ma'lumotlar bazasi va jadval yangilanishlarini talab qila olmaydi.

MA'LUMOTLARNI KO'RING  (admin) - SHOW DATABASES iborasini bajarishga imkon beradi. Ushbu operatorga ega bo'lishda ushbu imtiyozga ega bo'lmagan foydalanuvchilar faqat o'zlariga tegishli bo'lgan ma'lumotlar bazalarini ko'ra oladilar.

SHUNDAY  (admin) - imtiyoz MySQL serverini o'chirib qo'ygan SHUTDOWN buyrug'ini bajarishga imkon beradi.

SUPER  (admin) - ko'plab operatsiyalarni amalga oshirish huquqini beradigan imtiyoz:

  • boshqa foydalanuvchilarga tegishli bo'lgan jarayonlarni bajarish imkonini beradi
  • global tizim o'zgaruvchilarini o'zgartirish
  • jurnalni yoqish / o'chirish
  • tizim o'zgaruvchilari uchun o'qilgan ruxsatlarga ega bo'lsa ham yangilanishlar qilish
  • qul serverlarida replikatsiyani boshlash / to'xtatish
  • va hokazo

HAMMA  (ma'mur) - ushbu imtiyozni olgan foydalanuvchi avtomatik ravishda imtiyoz darajasi doirasidagi barcha huquqlarga (imtiyozlar berish kontekstiga ko'ra mumkin bo'lgan imtiyozlar) beriladi. Faqat imtiyoz berilmaydi GRANT TARTIBI  bu holda.

Boshqarish panelini joylashtirishda MySQL foydalanuvchilariga huquqlarni berish

  • Directadmin
  • kpanel
  • ISPmanager
  • Vebuzo

Directadmin

DirectAdmin bosh sahifasida, menyu ostidagi foydalanuvchi darajasidan Sizning hisobingiz  bo'limga o'ting MySQL-ni boshqarish:

Bu erda bosish orqali ushbu ma'lumotlar bazasi uchun yangi foydalanuvchi qanday yaratishni bilib olamiz Yangi ma'lumotlar bazasi foydalanuvchisini yarating, va mavjudini unga bog'lab qo'ying. Shuni ta'kidlash kerakki, foydalanuvchilarni boshqarish uchun maxsus interfeys mavjud emas. U faqat ma'lumotlar bazasida harakat qilish orqali mavjud. Foydalanuvchi huquqlarini berish uchun - havolani bosing imtiyozlarni o'zgartirish:

Imtiyozlar sahifasida biz foydalanuvchiga ma'lum ma'lumotlar bazasiga berishni va saqlashni xohlagan imtiyozlarni tanlang. Holat paneli sizga nima va kimga berilganligini eslatib turadi:

Shundan so'ng siz saqlashni tasdiqlash sahifasiga o'tasiz. Barcha huquqlar berilgan.

kpanel

CPanel asosiy sahifasida biz bo'limni topishimiz kerak Ma'lumotlar bazalari  ga boring MySQL ma'lumotlar bazalari:

Bu menyuda MySQL ma'lumotlar bazalari, ma'lumotlar bazasi foydalanuvchilari va ularning huquqlari bilan bog'liq barcha manipulyatsiyalar amalga oshiriladi.

Agar bizda ma'lumotlar bazasi yoki foydalanuvchi bo'lmasa, biz ularni sahifaning tegishli bo'limlarida yaratamiz:

Bo'lim Joriy ma'lumotlar bazalari  yangilanadi:

Foydalanuvchi yaratish:

Bo'lim Hozirgi foydalanuvchilar  yangilanadi:

Muayyan ma'lumotlar bazasiga ma'lum bir foydalanuvchiga huquqlarni tayinlash uchun sahifadagi bo'limni topishimiz kerak Ma'lumotlar bazasiga foydalanuvchini qo'shish  va kerakli foydalanuvchini kerakli ma'lumotlar bazasiga qo'shing:

Foydalanuvchini ma'lumotlar bazasiga qo'shgandan so'ng, imtiyozlarni tayinlash uchun dialog oynasi ochiladi:

"Barcha huquqlar" tugmachasi qo'llanmaning boshida tavsiflangan BARChA imtiyozga teng va foydalanuvchiga barcha MySQL server darajasida foydalanuvchi ma'lum bir guruhga tegishli bo'lgan foydalanuvchiga tegishli huquqlarni beradi.

O'zgarishlarni tasdiqlaganingizdan so'ng, siz ko'rsatilgan huquqlar berilganligini tasdiqlagan sahifaga yo'naltirilasiz va bo'lim MySQL ma'lumotlar bazasida va foydalanuvchilarni boshqarish sahifasida yangilanadi. Joriy ma'lumotlar bazalari:

Bajarildi Foydalanuvchi ma'lumotlar bazasiga tayinlangan.

ISPmanager Lite 5

ISPmanager-ga foydalanuvchi sifatida kirishda siz unga o'tishingiz kerak Asboblar -> Ma'lumotlar bazalarichap menyudan.

Keyin ochilgan ma'lumotlar bazasini boshqarish interfeysida kerakli ma'lumotlar bazasini tanlang va menyuga o'ting Foydalanuvchilar  ma'lumotlar bazasi foydalanuvchisini boshqarish interfeysiga o'tish. Agar ma'lumotlar bazasi bo'lmasa, tugmachani bosish orqali siz yangisini yaratishingiz mumkin Qo'shing.

Shuni ta'kidlash kerakki, yangi ma'lumotlar bazasini yaratishda darhol ushbu bazaga tayinlanadigan yangi foydalanuvchi yaratish mumkin bo'ladi. Yoki mavjud ma'lumotlar bazasiga avtomatik ravishda tayinlanadigan mavjud foydalanuvchini tanlashingiz mumkin.

Ma'lumotlar bazasini boshqarish interfeysida bizga hozirgi ISPmanager hisob qaydnomasidagi ushbu ma'lumotlar bazasining barcha foydalanuvchilarining ro'yxati taqdim etiladi. Huquqlarni tahrirlash uchun biz huquqlarni tayinlagan muayyan foydalanuvchini tanlang va menyuga o'ting Tahrirlash

Shundan so'ng, biz ushbu foydalanuvchiga berilishi mumkin bo'lgan barcha huquqlarni ko'ramiz:

Odatiy bo'lib, foydalanuvchi va ma'lumotlar bazasini yaratishda barcha huquqlar beriladi. Biz kerakli narsalarni o'zgartiramiz va natijalarni saqlaymiz. Shundan so'ng siz ma'lumotlar bazasi foydalanuvchisini boshqarish sahifasiga qaytarilasiz.

Vebuzo

Webuzo ikkita paneldan iborat: administrator va foydalanuvchi. Foydalanuvchi paneliga o'ting va asosiy sahifada tanlang Ma'lumotlar bazalarini boshqarish

Ochilgan sahifada biz:

  • mavjud ma'lumotlar bazalari ro'yxatini ko'ring [ Ma'lumotlar bazasi];
  • yangi ma'lumotlar bazasini yaratish [ Ma'lumotlar bazasini yaratish];
  • mavjud ma'lumotlar bazasi foydalanuvchilarining ro'yxatini ko'ring [ Ma'lumotlar bazasidan foydalanuvchi (lar)];
  • ma'lumotlar bazasi foydalanuvchisini yaratish va uni ma'lum bir ma'lumotlar bazasiga tayinlash [ Ma'lumotlar bazasiga foydalanuvchi qo'shish]

Agar maqsadli ma'lumotlar bazasi mavjud bo'lmasa, ma'lumotlar bazasini yaratish-ga o'ting va yangi ma'lumotlar bazasini yarating:

Agarda maqsadli ma'lumotlar bazasi allaqachon mavjud bo'lsa, u holda ma'lumotlar bazasini boshqarishda biz borishimiz kerak Ma'lumotlar bazasiga foydalanuvchi qo'shish  va yangi ma'lumotlar bazasi foydalanuvchisini yarating yoki ma'lumotlar bazasi bilan bog'lash uchun mavjud bo'lganini ko'rsating:

Ma'lumotlar bazasiga foydalanuvchi qo'shilganda, ushbu foydalanuvchiga huquqlarni tayinlashingizni so'rab yangi oyna ochiladi. Biz kerakli huquqlarni tanlaymiz va tugmachadagi o'zgarishlarni tasdiqlaymiz O'zgarishlarni yuboring.

Agar huquqlar muvaffaqiyatli o'zgartirilsa, joriy oyna paydo bo'ladi Ma'lumotlar bazasi imtiyozlari yangilandi. Vazifa tugadi.

Sizga maqola yoqdimi? Do'stlar bilan baham ko'ring: