FOYDLANUVCHILARNI BOSHQARISH Olimboyeva Nilufar va Qo’chqorov Marat Reja: 1. 2. 3. 4. 5. 6. 7. 8. Sql Server Autentifikasiya Autentifikasiya rejimlari Sxema Management Studio bilan xavfsizlikni boshqarish Transact-SQL instruksiyalari orqali xavfsizlikni boshqarish Ma`lumotlar bazasi foydalanuvchilarini qo'shish Sql Server Rollar Foydalanuvchi avtorizatsiyasi Sql Server Autentifikasiya • Database Engine komponentining xavfsizligi tizimi ikki xil xavfsizlik tizim ostisidan iborat: Windows xavfsizlik tizimlari; SQL Server xavfsizlik tizimlari. • Windows xavfsizlik tizimi operatsion tizim darajasida xavfsizlikni belgilaydi, ya'ni. foydalanuvchilarning Windows logini yordamida Windowsga kirish usuli. • SQL Server xavfsizlik tizimi ma`lumotlar bazasi tizimi darajasida talab qilinadigan qo'shimcha xavfsizlikni belgilaydi. Ya'ni SQL Server ma`lumotlar bazasiga SQL Server logini bilan ulanish usuli. Autentifikasiya rejimlari • Windows rejimida foydalanuvchilardan faqat Windows loginlari bilan ma`lumotlar bazalariga ulanishni talab qilinadi. • Aralash rejimda foydalanuvchilarga Windows autentifikatsiyasi yoki SQL Server autentifikatsiyasi yordamida ma`lumotlar bazasi tizimiga ulanish imkoni beriladi. Sxema • Sxema - bu bitta egasiga ega bo'lgan va bitta nom maydonini tashkil etadigan ma`lumotlar bazasi ob`yektlari to'plamidir. (Bitta sxemadagi ikkita jadval bir xil nomga ega bo'lolmaydi.) Database Engine komponenti prinsipial(principal) tushunchasi yordamida nomlangan sxemalarni qo`llab-quvvatlaydi. CREATE SCHEMA instruksiyasi • USE SampleDb; • GO • • CREATE VIEW view_Product • GO • AS SELECT Number, Name • CREATE SCHEMA poco AUTHORIZATION Vasya • FROM Product; • • GO • GO • GRANT SELECT TO Alex; • CREATE TABLE Product ( • Number CHAR(10) NOT NULL UNIQUE, • Name CHAR(20) NULL, • Price MONEY NULL); • • DENY UPDATE TO Alex; ALTER SCHEMA instruksiyasi • ALTER SCHEMA obyektlarni sxemalarini o`zgartiradi. ALTER SCHEMA instruksiyasi quyidagi sintaksisga ega: • ALTER SCHEMA schema_name TRANSFER object_name • • ALTER SCHEMA instruksiyasidan foydalanish quyidagi misolda keltirilgan: • USE AdventureWorks2012; • • ALTER SCHEMA HumanResources TRANSFER Person.ContactType; DROP SCHEMA instruksiyasi • DROP SCHEMA instruksiyasi ma`lumotlar bazasidan sxemani o’chirib tashlash uchun ishlatiladi. Sxemada biron bir ob`yekt bo'lmasa, shunda uni o'chirish mumkin. Agar sxemada ob`yektlar bo'lsa, DROP SCHEMA instruksiyasini bajarishga urinish muvaffaqiyatsizlikka uchraydi. Management Studio bilan xavfsizlikni boshqarish • Management Studio-dan foydalangan holda yangi loginni yaratish uchun Object Explorer-dagi Server Security bandini oching, so’ng “Logins” ustida sichqonchani o’ng tugmasini bosing, kontekst menyusidan New Login-ni tanlang. Login – New dialog oynasi ochiladi: ……… Transact-SQL instruksiyalari orqali xavfsizlikni boshqarish • Database Engine komponenti xavfsizligini boshqarish uchun uchta Transact-SQL operatorlari ishlatiladi: CREATE LOGIN, ALTER LOGIN va DROP LOGIN. CREATE LOGIN operatori SQL Serverda yangi Login nomini yaratadi. Ushbu operator uchun sintaksis quyidagicha: • CREATE LOGIN login_name • { WITH option_list1 | • FROM {WINDOWS [ WITH option_list2 [,...] ] • | CERTIFICATE certname | ASYMMETRIC KEY key_name }} • login_name parametri yaratish uchun Login nomini belgilaydi. Ushbu operator sintaksisida ko`rib turganingizdek, WITH bandi Login uchun bir yoki bir nechta parametrlarni sozlashni taqdim etishi mumkin, yoki siz FROM bandida tegishli Login bilan bog'liq sertifikat, assimetrik kalit yoki Windows foydalanuvchi logini ko`rsatishingiz mumkin. • Option_list1 ro`yxati bir nechta parametrlarni o`z ichiga oladi, ulardan eng muhimi, ushbu Login uchun parolni ko`rsatadigan parol parametri. (Boshqa mumkin bo'lgan variantlar: DEFAULT_DATABASE, DEFAULT_LANGUAGE va CHECK_EXPIRATION.) • FROM bandi quyidagi parametrlardan birini o`z ichiga olishi mumkin: WINDOWS parametri • Ushbu Login mavjud Window foydalanuvchi logini bilan bog'liqligini bildiradi. Sertifikat parametri • Ushbu tizimga ulanish uchun sertifikat nomini bildiradi. ASIMMETRIC KEY parametri • Ushbu tizimga ulanish uchun asimmetrik kalit nomini belgilaydi. • Quyidagi misol "12345!" Paroli bilan "appUser" loginini yaratadi: • USE SampleDb; • • CREATE LOGIN appUser WITH PASSWORD = '12345!'; • Quyidagi misol "appUser" loginini yaratadi va uni xuddi shu foydalanuvchi nomi bilan mavjud Windows foydalanuvchi logini bog’laydi: • USE SampleDb; • • CREATE LOGIN [otm\appUser] FROM WINDOWS; • ALTER LOGIN Transact-SQL operatori - ma`lum bir Login-ni o`zgartiradi. Ushbu operatoridan foydalanib siz joriy parolni va uning amal qilish muddatini, kirish parametrlarini, asosiy ma`lumotlar bazasini va asosiy tilni o`zgartirishingiz mumkin. Bundan tashqari, ma`lum bir Login-ni yoqishingiz yoki to’xtatib qo'yishingiz mumkin. • Mavjud loginni o’chirisb tashlash uchun DROP LOGIN operatori ishlatiladi. Management Studio-dan foydalanib ma`lumotlar bazasi foydalanuvchilarini boshqarish • Management Studio-dan foydalanib ma`lumotlar bazasi foydalanuvchisini qo'shish uchun Object Explorer oynasidagi Server bandi va unda Ma`lumotlar bazalari papkasini ochib, ushbu papkada kerakli ma`lumotlar bazasini ochib va undan keyin Security papkasini oching. Users bandi ustida sichqonchaning o'ng tugmasini bosing va kontekst menyusidan Yangi foydalanuvchi(New User)-ni tanlang. Ma`lumotlar bazasi foydalanuvchisi – yangi(Database User - New) dialog oynasi ochiladi, unda siz foydalanuvchi nomini kiritasiz va tegishli Login nomini tanlaysiz: Transact-SQL operatorlari yordamida ma`lumotlar bazasi foydalanuvchilarini boshqarish • CREATE USER operatori foydalanuvchini joriy ma`lumotlar bazasiga qo'shish uchun ishlatiladi. Ushbu operator uchun sintaksis quyidagicha: • CREATE USER user_name • [FOR {LOGIN login |CERTIFICATE cert_name | ASYMMETRIC KEY key_name}] • [WITH DEFAULT_SCHEMA = schema_name] … • ALTER USER operatori bilan ma`lumotlar bazasi foydalanuvchi nomini o`zgartirishingiz, foydalanuvchi asosiy sxemasini o`zgartirishingiz yoki boshqa Login nomi bilan bog’lashingiz mumkin. • DROP USER operatori foydalanuvchini joriy ma`lumotlar bazasidan o’chirib tashlash uchun ishlatiladi. Sql Server Rollar • Ma`lumotlar bazasi rolining a'zolari quyidagilardan biri bo'lishi mumkin: Windows guruhlari va loginlari; SQL Server loginlari boshqa rollar. • Database Engine komponenti xavfsizligi arxitekturasi maxsus ma`lum huquqlarga ega bo'lgan bir nechta tizim rollarini taqdim etadi. Foydalanuvchi tomonidan belgilangan rollardan tashqari, oldindan aniqlangan rollarning ikki turi mavjud: server rollari va ma`lumotlar bazasi rollari. Mavjud server rollari Mavjud server roli Tavsif Sysadmin Ma`lumotlar bazasi tizimida xohlagan amalni bajara oladi. Serveradmin Server parametrlarini sozlaydi Setupadmin Replikatsiyani o'rnatadi va murakkab protseduralarni boshqaradi securityadmin Log jurnallarini o`qish, login va foydalnauvchilarni, huquqlarni boshqaradi processadmin Tizim jarayonlarini boshqaradi Dbcreator Ma`lumotlar bazasini yaratadi va o`zgartiradi Diskadmin Ma`lumotlar bazasi fayllarini boshqaradi • Mavjud server rollariga ikki usul bilan a’zo bo’lish va olib tashlanishi mumkin: Management Studio muhitidan foydalanish; Transact-SQL operatorlaridan foydalanish. Sa logini • Sa login - tizim ma'murining logini. SQL Server 2005 dan oldingi versiyalarida rollar bo'lmagan, sa login tizim administrator vazifalari uchun barcha mumkin bo'lgan huquqlarni taqdim etadi. SQL Serverning yangi versiyalarida Login faqat teskari muvofiqlik(ya’ni oldingi versiyalar bilan ishlay olish) uchun kiritilgan. Ushbu Login har doim sysadmin mavjud server rolining a'zosi bo'lib, uni ushbu roldan o'chirib bo'lmaydi. • Sa logini ma`lumotlar bazasiga kirishning boshqa usuli bo'lmagan taqdirda ishlatilishi kerak. Mavjud ma`lumotlar bazasi rollari Mavjud ma`lumotlar bazasi roli Tavsif db_owner Ma`lumotlar bazasida deyarli barcha amallarni bajara oladigan foydalanuvchilar db_accessadmin Boshqa foydalanuvchilarni qo'shishi va o’chirib tashlashi mumkin bo'lgan foydalanuvchilar db_datareader Ma`lumotlar bazasidagi barcha foydalanuvchi jadvallaridagi ma`lumotlarni ko`rish imkoniyatiga ega bo'lgan foydalanuvchilar db_datawriter Ma`lumotlar bazasidagi barcha foydalanuvchi jadvallarga ma`lumotlarni qo'shish, o`zgartirish yoki o'chirishga huquqiga ega foydalanuvchilar db_ddladmin Ma`lumotlar bazasida DDL operatorlarini bajara oladigan foydalanuvchilar db_securityadmin Xavfsizlik huquqlari bilan bog'liq ma`lumotlar bazasidagi barcha amallarni boshqarishi mumkin bo'lgan foydalanuvchilar db_backupoperator Ma`lumotlar bazasini zaxira nusxasini yaratadigan foydalanuvchilar db_denydatareader Ma`lumotlar bazasida bironta ma`lumotni ham ko`ra olmaydigan foydalanuvchilar db_denydatawriter Ma`lumotlar bazasidagi bironta ma`lumotni ham o`zgartira olmaydigan foydalanuvchilar Ma`lumotlar bazasining public roli • Yuqoridagi jadvalda keltirilgan mavjud ma`lumotlar bazasi rollaridan tashqari, public mavjud ma`lumotlar bazasi roli ham mavjud. Ma`lumotlar bazasining public roli - bu barcha ma`lumotlar bazasi foydalanuvchilari a'zo bo'lgan alohida rol. Bu ma`lumotlar bazasi foydalanuvchilari uchun barcha standart huquqlarni o`z ichiga oladi. Public roli ma`lumotlar bazasi foydalanuvchilari uchun barcha standart huquqlarni beradi va ularni o'chirib bo'lmaydi. Foydalanuvchilar, guruhlar yoki rollarga ushbu rolga a'zolik tayinlanishi mumkin emas, chunki ular boshlang’ich holda uusbu rolga ega. Foydalanuvchi avtorizatsiyasi • Ma`lumotlar bazasi ob`yektlarida faqat vakolatli foydalanuvchilar instruksiyalarini bajarishi yoki operasiyalarni bajarishi mumkin. Ruxsatsiz foydalanuvchining ushbu vazifalardan birini bajarishga urinishi muvaffaqiyatsizlikka uchraydi. Avtorizatsiya vazifalarini bajarish uchun quyidagi uchta Transact-SQL operatorlaridan foydalaniladi: GRANT, DENY va REVOKE. • Himoyalanadigan ob`yektlar - bu avtorizatsiya tizim ostisi tomonidan tartibga solinadigan resurslar. Himoyalanadigan ob`yektlarning uchta asosiy klassi mavjud: server, ma`lumotlar bazasi va sxema. Ular o`z navbatida Login, ma`lumotlar bazasi foydalanuvchilari, jadvallar va saqlangan protseduralar kabi boshqa himoyalangan ob`yektlarni o`z ichiga oladi. Huquq Qo`llanilishi Tavsif SELECT Jadvallar va ularning ustunlari, sinonimlari, ko`rinishlar va ularning ustunlari, jadval qaytaruvchi funksiyalar Qatorlarni olish (o`qish) huquqini ta'minlaydi. Ushbu huquqni kerakli ustunlarni ro`yxatlash orqali bir yoki bir nechta ustunlarni o`qishni cheklash mumkin. (Agar ustunlar ro`yxati bo'lmasa, huquq jadvalning barcha ustunlariga qo`llaniladi) INSERT Jadvallar va ularning ustunlari, sinonimlari, ko`rinishlar va ularning ustunlari Ustunlarga qiymat qo’shish huquqini belgilaydi UPDATE Jadvallar va ularning ustunlari, sinonimlari, ko`rinishlar va ularning ustunlari Qatorlarni o`zgartirish huquqini ta'minlaydi. Ushbu huquqni kerakli ustunlarni ro`yxatlash orqali bir yoki bir nechta ustunlarni o`qishni cheklash mumkin. (Agar ustunlar ro`yxati bo'lmasa, huquq jadvalning barcha ustunlariga qo`llaniladi) DELETE Jadvallar va ularning ustunlari, sinonimlari, ko`rinishlar va ularning ustunlari Ustunlardagi qiymatlarni o’chirish huquqini ta’minlaydi REFERENCES Foydalanuvchi tomonidan aniqlangan funksiyalar (SQL va CLR funksiyalar), jadvallar va ularning ustunlari, sinonimlari, ko`rinishlar va ularning ustunlari Agar foydalanuvchi ushbu jadvalda SELECT huquqiga ega bo'lmasa, asosiy jadvaldagi tashqi kalitlari ustunlariga murojaat qilish imkoniyatini beradi EXECUTE Saqlangan protseduralar (SQL va CLR), UDF (SQL va CLR), sinonimlari Saqlangan protsedurani yoki foydalanuvchi tomonidan aniqlangan funksiyani(UDF) bajarish huquqini ta'minlaydi CONTROL Saqlangan protseduralar (SQL va CLR), UDF (SQL va CLR), sinonimlari Obyekt egasining huquqlariga o'xshash huquqlarni taqdim etadi; huquqni qabul qiluvchida himoyalangan ob`yekt nisbatan deyarli barcha huquqlari bor. CONTROL huquqi berilgan prinsipal ushbu himoyalangan ob`yektga huquqni boshqalarga berish berish huquqiga ega. ALTER Saqlangan protseduralar (SQL va CLR), foydalanuvchi tomonidan niaqlangan funksiyalar (SQL va CLR), jadvallar, ko`rinishlar Himoyalangan ob`yektlarning xususiyatlarini (egalikdan tashqari) o`zgartirish huquqini ta'minlaydi. TAKE OWNERSHIP Saqlangan protseduralar (SQL va CLR), foydalanuvchi tomonidan niaqlangan funksiyalar (SQL va CLR), jadvallar, ko`rinishlar U himoyalangan ob`yekt egasi bo'lishi huquqini ta'minlaydi DENY instruksiyasi • DENY instruksiyasi foydalanuvchini belgilangan ob`yektlarda ko`rsatilgan amallarni bajarishiga yo'l qo'ymaydi. Boshqacha qilib aytganda, ushbu operator foydalanuvchi Logini uchun mavjud bo'lgan huquqlarni olib tashlaydi, shuningdek foydalanuvchini kelajakda olishi mumkin bo'lgan guruh yoki rol a'zoligi orqali huquqni olishiga to'sqinlik qiladi. Ushbu operator quyidagi sintaksisga ega: • DENY {ALL [PRIVILEGES] } | permission_list • [ON [class::] securable] TO principal_list • [CASCADE] [ AS principal ] REVOKE instruksiyasi • REVOKE instruksiyasi ilgari berilgan yoki rad etilgan huquqni olib tashlaydi. Ushbu instruksiya quyidagi sintaksisga ega: • REVOKE [GRANT OPTION FOR] • { [ALL [PRIVILEGES] ] | permission_list ]} • [ON [class:: ] securable ] • FROM principal_list [CASCADE] [ AS principal ] Management Studio yordamida huquqlarni boshqarish ETIBORINGIZ UCHUN RAXMAT!