uy - Yangi boshlanuvchilar uchun
Microsoft sql foydalanuvchi qo'shish. MS SQL ma'lumotlar bazasi foydalanuvchisini yaratish

Microsoft SQL Serverda ma'lumotlar bazasi ma'muri hisoblarni SQL Server misoliga qo'shadi va bu hisoblar SQL Server misolida alohida ma'lumotlar bazalarida foydalanuvchilarga ko'rsatiladi. Jadvallar va ob'yektlar sinflarini yaratuvchi ma'lumotlar bazasi foydalanuvchilari ma'lumotlar bazasida ob'ektlarni va ushbu ob'ektlar yaratiladigan sxemani yaratish uchun tegishli ruxsatlarga ega bo'lishi kerak. ArcGIS-da foydalanilganda, sxema nomi ma'lumotlar bazasi foydalanuvchi nomiga mos kelishi kerak.

Buning uchun geoprocessing vositasi yoki skriptdan foydalanishingiz mumkin Ma'lumotlar bazasi foydalanuvchisini yaratish quyidagi operatsiyalarni bajarish uchun:

  • SQL Server misoliga hisob yarating yoki qo'shing.
  • Belgilangan hisobga mos keladigan foydalanuvchi yarating.
  • Belgilangan ma'lumotlar bazasida foydalanuvchi uchun xaritalash sxemasini yarating.
  • Belgilangan ma'lumotlar bazasida jadvallar, ob'ektlar sinflari yoki ko'rinishlarni yaratish uchun foydalanuvchiga kirish huquqini bering.

Ma'lumot yarata oladigan foydalanuvchi qo'shing.

Asbobni ArcGIS for Desktop’dan ishga tushirishingiz yoki jadvallar, xususiyat sinflari va ko‘rinishlarni yarata oladigan ma’lumotlar bazasi foydalanuvchisini yaratish uchun Python skriptida asbobni chaqirishingiz mumkin.

Asbobni ishga tushirish uchun SQL Server misolida tizim administratori huquqlariga ega hisob qaydnomasi yordamida maʼlumotlar bazasiga ulanishingiz kerak Ma'lumotlar bazasi foydalanuvchisini yaratish asbob.

Agar siz Windows hisob qaydnomasi bilan geoma'lumotlar bazasi foydalanuvchisini yaratmoqchi bo'lsangiz, vositani ishga tushirishdan oldin tegishli hisob allaqachon mavjud bo'lishi kerak.

Asbobdan foydalanish Ma'lumotlar bazasi foydalanuvchisini yaratish

  1. ArcMap yoki ArcCatalog-ni ishga tushiring.
  2. SQL Server misolida tizim administratori huquqlariga ega hisob qaydnomasi yordamida maʼlumotlar bazasiga yoki geomaʼlumotlar bazasiga ulaning.
  3. Asbobni oching Ma'lumotlar bazasi foydalanuvchisini yaratish.

    Asbob Ma'lumotlarni boshqarish to'plamining Gema'lumotlar bazasini boshqarish asboblar to'plamida joylashgan.

  4. Maydonda ma'lumotlar bazasi ulanishingizni belgilang Kirish ma'lumotlar bazasi ulanishi.
  5. SQL Server autentifikatsiyasi bilan hisob yaratish yoki Windows autentifikatsiyasi bilan mavjud hisob qaydnomasidan foydalanishni tanlang.
    • SQL Server autentifikatsiyasiga ega foydalanuvchi yaratish uchun belgilanmagan qoldiring. Esda tutingki, sukut bo'yicha SQL Server nusxalari faqat Windows autentifikatsiyasidan foydalanadi. Agar namunangiz SQL Server yoki Windows autentifikatsiyasidan foydalanishga sozlanmagan bo'lsa, siz ma'lumotlar bazasida autentifikatsiya qilingan foydalanuvchi yarata olmaysiz.
    • Tekshirish Operatsion tizim yordamida autentifikatsiyaga ega foydalanuvchi yarating (Operatsion tizim autentifikatsiya qilingan foydalanuvchini yaratish) Windows autentifikatsiyasi bilan mavjud hisob qaydnomasidan foydalanish.
  6. Asbob tomonidan yaratiladigan ma'lumotlar bazasi foydalanuvchisining ismini kiriting.

    Agar siz SQL Server autentifikatsiyasi bilan hisob yaratishni tanlasangiz, siz kiritgan nom ham hisob uchun ishlatiladi.

  7. Ma'lumotlar bazasi foydalanuvchi parolini kiriting.
  8. Agar sizda allaqachon foydalanuvchi qo'shmoqchi bo'lgan rolingiz aniqlangan bo'lsa, uni belgilang.
  9. Asbobni ishga tushirish uchun OK tugmasini bosing.

Python skriptini ishga tushiring

Skript yordamida foydalanuvchi yaratish uchun quyidagi amallarni bajaring:

  1. ArcGIS mijoz kompyuteringizda matnli fayl yarating va quyidagi skriptni faylga nusxalang.

    """ Nomi: create_database_user.py Tavsif: Ma'lumotlar bazasi foydalanuvchisiga ulanish ma'lumotlarini taqdim eting. Foydalanish uchun create_database_user.py -h yoki create_database_user.py --help yozing. """ # Import tizimi modullari import arcpy import os import optparse import sys # Foydalanish va versiyani tahlil qilish = optparse . OptionParser (foydalanish = "usage: %prog " , version = "%prog 1.0 for 10.1" ) #Yordamni aniqlang va variantlarni tahlil qilish . add_option ("--DBMS" , dest = "Ma'lumotlar bazasi_turi" , turi = "tanlov" , tanlovlar = [ "SQLSERVER" , "ORACLE" , "POSTGRESQL" , "" ], standart = "" , yordam = "Korxona ma'lumotlar bazasi turi: SQLSERVER, ORACLE yoki POSTGRESQL.") tahlil qiluvchi. add_option ("-i" , dest = "Instance" , type = "string" , default = "" , help = "DBMS instance name") parser . add_option("-D" , dest = "Ma'lumotlar bazasi" , turi = "string" , standart = "yo'q" , yordam = "Ma'lumotlar bazasi nomi: Oracle uchun shart emas") tahlil qiluvchi. add_option ("--auth" , dest = "Account_authentication" , type = "tanlov" , options = [ "DATABASE_AUTH" , "OPERATING_SYSTEM_AUTH" ], standart = "DATABASE_AUTH" , yordam = "Autentifikatsiya turi opsiyalari (katta-kichik harflarni hisobga olgan holda): DATABASE_AUTH, OPERATING_SYSTEM_AUTH. Standart=DATABASE_AUTH") tahlil qiluvchi. add_option ("-U" , dest = "Dbms_admin" , type = "string" , standart = "" , help = "DBMS administrator foydalanuvchisi") parser . add_option ("-P" , dest = "Dbms_admin_pwd" , turi = "string" , standart = "" , help = "DBMS administrator paroli" ) parser . add_option ("--utype" , dest = "user_type" , type = "tanlov" , tanlovlar = [ "DATABASE_USER" , "OPERATING_SYSTEM_USER" ], standart = "DATABASE_USER" , yordam = "Autentifikatsiya turi opsiyalari (katta-kichik harflarni hisobga olgan holda): DATABASE_USER, OPERATING_SYSTEM_USER. Standart=DATABASE_USER") tahlil qiluvchi. add_option ("-u" , dest = "dbuser" , type = "string" , standart = "" , help = "ma'lumotlar bazasi foydalanuvchi nomi") parser . add_option ("-p" , dest = "dbuser_pwd" , type = "string" , standart = "" , help = "ma'lumotlar bazasi foydalanuvchi paroli") parser . add_option ("-r" , dest = "rol" , type = "string" , standart = "" , yordam = "foydalanuvchiga beriladigan rol") tahlil qiluvchi. add_option ("-t", dest = "Tablespace" , type = "string" , default = "" , help = "Tablespace name") # Variant uchun qiymat kiritilganligini tekshiring harakat qilib ko'ring: (variantlar, args) = parser. parse_args() #Tizim argumentlari (variantlar) kiritilmaganligini tekshiring agar len (sys. argv ) == 1 : chop etish " %s : xato: %s \n " % (sys. argv [ 0 ], "Hech qanday buyruq variantlari berilmagan" ) parser . print_help () sys. chiqish (3) # Fazoviy ma'lumotlar bazasi ulanishi uchun foydalanish parametrlari ma'lumotlar bazasi_turi = imkoniyatlari. Ma'lumotlar bazasi_turi. upper() misol = variantlar. Namuna ma'lumotlar bazasi = variantlar. Ma'lumotlar bazasi. pastki () account_authentication = imkoniyatlari . Account_authentication. upper() dbms_admin = variantlar. Dbms_admin dbms_admin_pwd = imkoniyatlari. Dbms_admin_pwd dbuser = imkoniyatlari. dbuser dbuser_pwd = imkoniyatlari. dbuser_pwd jadval maydoni = imkoniyatlari. Tablespace user_type = imkoniyatlari. user_type role = imkoniyatlari. roli agar (ma'lumotlar bazasi_turi == "SQLSERVER" ): database_type = "SQL_SERVER" agar ( database_type == "" ): chop etish (" \n %s : xato: \n %s \n " % (sys. argv [ 0 ] , "DBMS turi (--DBMS) ko'rsatilishi kerak.")) tahlil qiluvchi. print_help () sys. chiqish (3 ) agar (ma'lumotlar bazasi_turi == "SQL_SERVER" ): agar ( account_authentication == "DATABASE_AUTH" va dbms_admin == "" ): chop etish (" \n %s : xato: %s \n " % (sys. argv) [0], "DBMS ma'muri ma'lumotlar bazasi autentifikatsiyasi bilan ko'rsatilishi kerak"))sys. chiqish (3 ) agar ( account_authentication == "OPERATING_SYSTEM_AUTH" va dbms_admin != "" ): chop etish (" \n Ogohlantirish: %s \n " % ( "Operatsion tizim autentifikatsiyasidan foydalanishda ko'rsatilgan ma'lumotlar bazasi ma'muriga e'tibor bermaslik...")) else : if ( dbuser . low () == "" ): chop etish (" \n %s : xato: %s \n " % (sys . argv [ 0 ], "Ma'lumotlar bazasi foydalanuvchisi ko'rsatilishi kerak."))sys. chiqish (3 ) agar ( dbms_admin == "" ): chop etish (" \n %s : xato: %s \n " % (sys. argv [ 0 ], "DBMS ma'muri ko'rsatilishi kerak!"))sys. chiqish (3 ) agar ( user_type == "DATABASE_USER" va (dbuser == "" yoki dbuser_pwd == "" )): chop etish (" \n %s: xato: \n %s \n " % (sys. argv) [0], "Ma'lumotlar bazasi autentifikatsiya qilingan foydalanuvchini yaratish uchun foydalanuvchi nomi va parolni ko'rsatish kerak!")) tahlil qiluvchi. print_help () sys. chiqish (3) # Joriy mahsulot litsenziyasini oling product_license = arcpy. ProductInfo() # Kerakli litsenziya darajasini tekshiradi agar mahsulot_litsenziyasi. upper() == "ARCVIEW" yoki product_license . yuqori () == "Dvigatel" : chop etish (" \n " + product_license + " litsenziya topildi!" + "Korporativ geoma'lumotlar bazasida yoki ma'lumotlar bazasida foydalanuvchi yaratish uchun ArcGIS for Desktop Standard yoki Advanced, Geodatabase Update kengaytmali ArcGIS Engine yoki ArcGIS for Server litsenziyasi talab qilinadi.")sys. Chiqish( "Ma'lumotlar bazasi foydalanuvchisini yaratishdan oldin ArcGISga qayta avtorizatsiya qiling.") else : chop etish (" \n " + product_license + "Litsenziya mavjud! Yaratishda davom etmoqda...") arcpy. AddMessage ("++++++++++") # Mahalliy o'zgaruvchilar instance_temp = instance . almashtiring (" \\ " , "_" ) instance_temp = instance_temp . almashtiring ("/" , "_" ) instance_temp = instance_temp . almashtiring (":" , "_" ) Conn_File_NameT = instance_temp + "_" + ma'lumotlar bazasi + "_" + dbms_admin agar os. atrof-muhit. get ("TEMP" ) == Yo'q : temp = "c:\\temp" boshqa : temp = os . atrof-muhit. agar os bo'lsa ("TEMP") oling. atrof-muhit. get ("TMP" ) == Yo'q : temp = "/usr/tmp" boshqa : temp = os . atrof-muhit. olish ( "TMP" ) Connection_File_Name = Conn_File_NameT + ".sde" = temp + os. sep + Conn_File_NameT + ".sde" # .sde faylini tekshiring va agar mavjud bo'lsa, uni o'chiring arcpy. env. overwriteOutput = Agar os bo'lsa rost. yo'l. mavjud ( Ulanish_fayl_nomi_to'liq_yo'l): os. olib tashlash ( Ulanish_fayl_nomi_to'liq_yo'l) urinib ko'ring: chop etish (" \n Ma'lumotlar bazasi ulanish fayli yaratilmoqda...\n") # Jarayon: Ma'lumotlar bazasiga ulanish faylini yaratish... # Foydalanish: tashqarida_fayl_joylashuvi, tashqari_fayl_nomi, DBMS_TYPE, instnace, ma'lumotlar bazasi, hisob_autentifikatsiyasi, foydalanuvchi nomi, parol, saqlash_foydalanuvchi nomi_parol (to'g'ri bo'lishi kerak) #arcpy.CreateDatabaseConnection_management(temp , Ulanish_fayl_nomi, ma'lumotlar bazasi_turi, misol, ma'lumotlar bazasi, hisob_autentifikatsiyasi, dbms_admin, dbms_admin_pwd, "TRUE") arcpy. DatabaseConnection_management yaratish(out_folder_path = temp , out_name = Connection_File_Name , database_platform = ma'lumotlar bazasi_turi , instance = instance , ma'lumotlar bazasi = ma'lumotlar bazasi , account_authentication = account_authentication , username = dbms_admin , password = dbms_admin_pwd , save_user_pwd (TRUE oralig'ida saqlang.) ) : arcpy da "000565" bo'lsa. GetMessage(i): #Ma'lumotlar bazasi ulanishi muvaffaqiyatli bo'lganligini tekshiring arcpy. AddReturnMessage (i) arcpy. AddMessage (" \n +++++++++" ) arcpy . AddMessage ("Chiqish!") arcpy . AddMessage ("++++++++++ \n " ) sys . chiqish (3) boshqa: arcpy. AddReturnMessage (i) arcpy. AddMessage ("+++++++++ \n " ) chop etish ( "Ma'lumotlar bazasi foydalanuvchisi yaratilmoqda... \n " ) arcpy . CreateDatabaseUser_management(input_workspace= Ulanish_fayl_nomi_to'liq_yo'l, user_authentication_type = user_type , foydalanuvchi_nomi= dbuser, user_password= dbuser_pwd, roli= roli, jadval maydoni_nomi= stol maydoni) uchun i ichida diapazon(arcpy. GetMessageCount()): arcpy. AddReturnMessage(i) arcpy. AddMessage("+++++++++ \n" ) bundan mustasno: uchun i ichida diapazon(arcpy. GetMessageCount()): arcpy. AddReturnMessage(i) #Opsiya uchun qiymat kiritilmaganligini tekshiring bundan mustasno Tizimdan chiqish kabi e: agar e. kod == 2 : tahlil qiluvchi. foydalanish = "" chop etish(" \n" ) tahlil qiluvchi. chop_yordam() tahlil qiluvchi. Chiqish(2 )

    Skriptni kompyuterda ishlatishingiz mumkin Ish stoli uchun ArcGIS(Standart yoki ilg'or), Server uchun ArcGIS(Standart yoki Kengaytirilgan) yoki Gemaʼlumotlar bazasini yangilash kengaytmasi bilan ArcGIS Engine.

  2. Faylni kengaytma bilan saqlang .py.
  3. SQL Server namunangiz va yaratmoqchi bo'lgan foydalanuvchi uchun mos variant va ma'lumotlarni belgilab, skriptni ishga tushiring.

    Quyidagi misolda yaratilgan skript nomi create_database_user.py. SQL Server ssi5 misolida SQL Server autentifikatsiyasiga ega hisob qaydnomasi (gisd_owner) yaratildi va gisdata ma'lumotlar bazasida tegishli sxema va foydalanuvchi yaratildi. Foydalanuvchi rolga qo'shilmagan.

    create_database_user.py --DBMS SQL_SERVER -i ssi5 -D gisdata --auth DATABASE_AUTH -U sa -P !nocopy! --utype DATABASE_USER -u gisd_owner -p T3mpPass

    Ishora:

    Kirish -h yoki --Yordam sintaksis yordamini ko'rsatish uchun buyruq satrida.

Sizning ma'lumotlar bazangiz endi jadval yaratishi mumkin bo'lgan foydalanuvchini o'z ichiga oladi.

Ma'lumotlar egasi ma'lumotlar bazasida yoki geoma'lumotlar bazasida jadvallar yaratishning bir necha usullari mavjud. ArcGIS yordamida jadvallarni yaratish haqida ma'lumot olish uchun geoma'lumotlar bazasiga ma'lumotlar to'plamini qo'shishning umumiy ko'rinishiga qarang.

Ma'lumotlar to'plami mavjudligi sababli uning egasi boshqa foydalanuvchilarga ma'lumotlarga kirish huquqini berishi mumkin. Ko'rsatmalar uchun Ma'lumotlar to'plamlariga kirish ruxsatlarini berish va bekor qilish bo'limiga qarang.

SQL Server vositalari yordamida hisob qaydnomalari va foydalanuvchilarni yaratish

Agar siz ushbu vosita tomonidan taqdim etilgan huquqlardan farq qiladigan foydalanuvchi yaratmoqchi bo'lsangiz Ma'lumotlar bazasi foydalanuvchisini yaratish, yoki unga to'g'ridan-to'g'ri berilgan huquqlarga ega bo'lmasa, buning uchun SQL Server vositalaridan foydalanishingiz mumkin. ArcGIS bilan foydalanish uchun shaxsiy hisoblaringizni va foydalanuvchilaringizni yaratishda bir nechta narsalarni yodda tutishingiz kerak:

  • Ma'lumotlarni yaratadigan barcha ma'lumotlar bazasi foydalanuvchilari ma'lumotlar bazasi sxemasiga ega bo'lishi kerak. Ushbu sxema foydalanuvchi nomi bilan bir xil bo'lishi kerak.
  • Siz alohida Windows hisob qaydnomalaridan foydalanish o'rniga SQL Serverga Windows guruhiga kirish huquqini berishingiz mumkin, bu hisoblarni yaratish va boshqarishni osonlashtiradi. Windows guruhining barcha a'zolari SQL Serverga ulanishi mumkin. Guruhga berilgan server, ma'lumotlar bazasi yoki ma'lumotlar to'plamiga kirish huquqlari guruhning har bir a'zosiga avtomatik ravishda qo'llaniladi. Biroq, barcha guruh a'zolari tomonidan yaratilgan ma'lumotlarni saqlash uchun bitta sxema yarata olmaysiz. Geomaʼlumotlar bazasida maʼlumotlarni yaratuvchi guruhdagi har bir foydalanuvchi maʼlumotlar saqlanadigan oʻz sxemasiga ega boʻlishi kerak. SQL Server birinchi marta guruh a'zosi ma'lumotlarni yaratishga harakat qilganda ma'lumotlar bazasida foydalanuvchi va sxema yaratadi. Bu avtomatik ravishda sodir bo'ladi; Sxema va foydalanuvchini qo'lda yaratishga hojat yo'q.

Hisoblar, foydalanuvchilar va sxemalarni yaratish uchun SQL Server vositalaridan foydalanish bo'yicha ko'rsatmalar uchun Microsoft SQL Server hujjatlariga qarang.

O'nlab yillar davomida ma'lumotlar bazasiga kirish uchun ruxsat berish jarayonini boshqarishga yordam berish uchun ma'lumotlar bazalarida foydalanuvchi rollarini aniqlash mumkin edi, ammo misol darajasida har doim to'qqizta sobit rol mavjud edi (yoki sakkizta, agar siz SQL Server 2000 dan oldingi versiyadan foydalansangiz - bulkadmin roli SQL Server 2005 da kiritilgan). Endi, SQL Server 2012-ning paydo bo'lishi bilan, nihoyat, maxsus yoki moslashtirilgan server rollarini yaratish mumkin.

Ko'p yillar davomida ushbu funksiyaning mavjud emasligi SQL Server ma'murlari uchun bosh og'rig'i manbai bo'lib kelgan. Agar sizga misol darajasida bir nechta foydalanuvchi yoki guruhlarga huquqlar berish va bu huquqlarni sinxronlashtirish kerak bo'lsa, nima qilgan bo'lardingiz? Aytaylik, siz ko'p sonli foydalanuvchilarga tizim holatini ko'rish huquqini bermoqchisiz, shunda ular ishlab chiqish markazlarida blokirovka ma'lumotlarini ko'rishlari mumkin. Har bir foydalanuvchi yoki domen guruhiga alohida huquqlar berish kerak edi.

Agar barcha loginlar domenga kirish bo'lsa, vaqtinchalik yechim bor edi: bunday huquqlarga muhtoj bo'lgan barcha foydalanuvchilarni o'z ichiga olish uchun domen guruhini yaratishingiz mumkin (agar siz bir nechta serverlarda huquqlar berishingiz kerak bo'lsa, har bir server uchun alohida guruhlar yaratishingiz kerak bo'ladi). Siz ushbu guruhga foydalanuvchilarni qo'shishingiz, ushbu domen guruhi bilan bog'langan login yaratishingiz va keyin guruhga serverda server holatini ko'rish huquqini berishingiz mumkin. Ammo buni juda ehtiyotkorlik bilan qilish kerak edi. Aks holda, ilgari bunday huquqlarga ega bo'lmagan foydalanuvchilarga kirish huquqini berish mumkin edi. Hatto foydalanuvchilarga ularga berilmasligi kerak bo'lgan huquqlarni berish mumkin edi.

T/SQL yordamida rol yaratish

T/SQL, SQL Server Management Studio va Windows PowerShell yordamida serverda maxsus rol yaratishning ko'plab usullari mavjud. Agar siz T/SQL yordamida maxsus server rolini yaratmoqchi bo'lsangiz, uchta buyruqdan foydalanishingiz kerak: "Server rolini yaratish" bayonoti maxsus server rolini yaratadi, Server rolini o'zgartirish iborasi foydalanuvchini rolga qo'shadi va nihoyat, Grant bayonoti rolga kerakli huquqlarni beradi.

Ushbu uchta bayonotdan foydalanish ViewServerState nomli maxsus server rolini yaratadigan quyidagi kodda tasvirlangan. SomeFakeLogin foydalanuvchisi rolga qo'shiladi va rolga Server holatini ko'rish huquqi beriladi. Boshqa foydalanuvchilarga ushbu huquqni berish uchun ularni Alter Server Role bayonoti yordamida tayyor rolga qo'shing.

GO FOYDALANISH SERVER ROLINI AVTORIZATSIYASINI CREATE CREATE GO SERVER ROLINI O‘ZGARTIRISH BO‘LGAN A’ZO QO‘SHISH GO BOSHLASH UCHUN SERVER DAVLATINI KO‘RING.

Foydalanuvchini roldan olib tashlash uchun Server rolini o'zgartirish iborasidan foydalaning. Bunday holda, a'zo qo'shish va a'zoni tashlab yuborish parametrlari qo'llaniladi:

SERVER ROLINI O'ZGARTIRISh

SQL Serverning ko'p nusxalarida bir yoki bir nechta maxsus server rollarini o'rnatishingiz kerak bo'lganda, bir nechta variant mavjud. Siz har bir serverga alohida ulanishni va ularda maxsus server rollarini yaratishni yoqtirmasligingiz mumkin. Bitta variant - SQL Server Management Studio konsolidan foydalanish. Bu bir vaqtning o'zida bir nechta misollarda T/SQL skriptlarini ishga tushirish imkonini beradi.

Tashkilotingizdagi barcha SQL Server misollariga yangi maxsus server rollarini o'rnatish uchun SQL Server Windows PowerShell komponentlaridan ham foydalanishingiz mumkin. (Ushbu vazifani bajarish uchun Windows PowerShell-dan foydalanishning ko'plab variantlari mavjud, ammo ular ushbu maqola doirasidan tashqarida.)

SQL Server Management Studio konsoli

Vazifani SQL Server Management Studio GUI yordamida osongina bajarish mumkin. Maxsus server rolini yaratish uchun Object Explorer yordamida misolga ulaning. Object Explorer-da tugunga o'ting<misol_nomi>>Xavfsizlik/server rollari. Server rollarini o'ng tugmasini bosing va Yangi server rolini tanlang. Ochilgan yangi server roli oynasida Server roli nomi maydonida rol nomini, Egasi maydonida rol egasini belgilang, so'ngra a'zolarga berilishi kerak bo'lgan ob'ektlar va ruxsatlarni belgilang. roli ( guruch. 1).

Guruch. 1. Rol taqdim etishi kerak bo'lgan huquqlarni belgilang

Umumiy sahifada ish tugagach, aʼzolar sahifasiga oʻting ( guruch. 2) va ushbu maxsus server rolining bir qismi bo'lishi kerak bo'lgan SQL Server loginlarini belgilang.

Guruch. 2. Rol a'zolarini aniqlash

A'zolar sahifasida rol a'zolarini aniqlagandan so'ng, A'zolar sahifasiga o'ting. Bu maxsus server roli a'zo bo'lishi kerak bo'lgan server rollarini belgilaydi. Agar siz ushbu sahifada rolni tanlasangiz, siz yaratgan maxsus server roliga a'zo bo'lgan foydalanuvchilar ham tanlangan rol huquqlariga ega bo'ladilar.

Agar siz maxsus rol yaratsangiz va uni serveradmin sobit server roliga a'zo qilsangiz ( guruch. 3), yangi yaratilgan foydalanuvchi rolining barcha a'zolari ham serveradmin roli huquqlariga ega bo'ladi. Domen guruhlari yoki ma'lumotlar bazasi rollarini joylashtirishda bo'lgani kabi, foydalanuvchilarga ular ega bo'lmasligi kerak bo'lgan huquqlarni bermaslik uchun rollarni joylashtirishda juda ehtiyot bo'lish kerak.

Guruch. 3. Maxsus rollar boshqa server rollariga kiritilishi mumkin

T/SQL-dan foydalangan holda rollarni joylashtirishni tashkil qilish uchun sizga Ro'yxatdan o'tishni qo'shish parametri bilan Server rolini o'zgartirish bayonoti kerak bo'ladi. Misol uchun, ViewServerState maxsus server rolini o'rnatish boshqaruvchisi sobit server rolining a'zosi qilish uchun sozlash boshqaruvchisi sobit server rolini tahrirlashingiz kerak.

SERVER ROLINI O'ZGARTIRISh A'ZO QO'SHISH KETISH

Maxsus server rollari ko'p foydalanuvchilarga ega bo'lishi mumkin. Ushbu huquqlarni boshqarishni osonlashtirish uchun maxsus server roliga berilishi mumkin bo'lgan o'nlab misol darajasidagi huquqlar mavjud. Bundan tashqari, kichik DBA uchun rol yaratishingiz mumkin, unga ma'mur huquqlarining hammasi emas, balki ba'zilari beriladi. Siz to'liq ma'muriy huquqlarni bermasdan AlwaysOn ma'lumotlar bazasiga o'tishni (SQL Server ichida amalga oshirilishi kerak) amalga oshirish huquqini beruvchi AlwaysOnAdmin guruhini yaratishingiz mumkin.

Maxsus server rollari juda qulay bo'lgan ko'plab vaziyatlar mavjud. Ular ma'murning ishini sezilarli darajada osonlashtiradi. Ushbu guruhlar, shuningdek, foydalanuvchilarga tasodifan berilmasligi kerak bo'lgan huquqlarni berish ehtimolini kamaytirish orqali SQL Server nusxalaringiz xavfsizligini yaxshilashga yordam beradi.

Eslatma, barcha tasvirlangan harakatlar serverda, huquqlar bilan bajarilishi kerak Administrator. Agar serverga jismoniy kirish imkoningiz bo'lmasa ( SQL Server), yoki masofaviy ish stoliga kirish yoki sizning hisobingiz ruxsatnomalari foydalanuvchilarni boshqarishga, jumladan, yangi foydalanuvchilarni yaratishga imkon bermasa, bu erda muhokama qilingan muammoni o'zingiz hal qila olmaysiz. Agar shunday bo'lsa, yordam uchun tizim administratoringizga murojaat qiling.

Agar sizda muntazam virtual xosting bo'lsa, u holda hosting kompaniyangizning texnik yordamiga murojaat qilmasdan, ma'lumotlar bazasi foydalanuvchilarini mustaqil ravishda boshqara olmaysiz.

Yugurish Microsoft SQL Server Management Studio va serverga ulaning.

Ro'yxatda "Ob'ekt brauzeri"(agar ko'rsatilmasa, F8 tugmasini bosing) jildni oching "Xavfsizlik". Jildni o'ng tugmasini bosing "Kirish nomlari", paydo bo'lgan menyuda tanlang "Kirish yaratish...".

Ko'rsatilgan oynada, maydonda "Kirish nomi" loginingizni kiriting. Masalan: "sariq" (tirnoqsiz). Keyin autentifikatsiya turini tanlang. Standart qiymat "Windows autentifikatsiyasi", bu degani ulanganda SQL Server hisobidan foydalaniladi Windows. Qoida tariqasida, bu usul uzoq serverlarda qo'llanilmaydi. Tanlang "SQL Server autentifikatsiyasi". Bobda "Parol", har qanday parolni kiriting, eng muhimi, keyinroq foydalanuvchiga o'tishi uchun uni yozib qo'ying. Agar parol yo'qolsa, uni istalgan vaqtda o'zgartirish mumkin.

Variantni yoqilgan qoldirishni unutmang "Parol siyosatidan foydalanishni talab qilish". Boshqa variantlar: "Parolni cheklash muddatini o'rnatish" Va "Foydalanuvchi keyingi kirishda parolini o'zgartirishi kerak", sizning ixtiyoringiz bilan foydalaning, lekin serverga ulanishda keraksiz muammolarni yaratmaslik uchun ular odatda o'chirib qo'yiladi.

Xuddi shu oynada, eng pastki qismida, tanlang standart ma'lumotlar bazasi. Aynan shu ma'lumotlar bazasi foydalanuvchi serverga ulangandan keyin ochiladi. bosing "Kelishdikmi" hisob yaratish uchun.


Hisob yaratildi, lekin bu hammasi emas. Endi siz hisobni jadvallarga bog'lashingiz kerak. Aslida, buni hisob yaratishda qilish mumkin edi, ammo bu yordamchini yozish paytida, SQL Server 2008 Negadir men yaratilayotgan hisob va jadvallar (in 2005 bunday nosozlik kuzatilmadi).

Hisobni ma'lum jadvallar bilan bog'lash va foydalanuvchi huquqlarini aniqlash uchun jildni kengaytiring "Kirish nomlari" Ob'ekt brauzerida. Ro'yxatda yaratilgan hisobni toping va ustiga sichqonchaning o'ng tugmachasini bosing, menyuni tanlang "Xususiyatlar".


Ko'rsatilgan oynada bo'limga o'ting "Foydalanuvchi xaritasi". Yuqori ro'yxatda ushbu hisob yordamida ishlash mumkin bo'lgan jadvallarni tanlang. Pastki ro'yxatdan huquqlarni tanlang. Odatda etarli "db_owner".


Shundan so'ng, tugmani bosing "Kelishdikmi". Endi siz kirish uchun yaratilgan hisobdan foydalanishingiz mumkin SQL Server.

12.07.2016 Tim Ford

Ma'lumotlar bazasi ma'muri xavfsizlik to'g'risida nimani bilishi kerak: shartlar tushuntirishi va amaliyotdagi ob'ektlarning umumiy ko'rinishi

SQL Server xavfsizligi va ishonchli autentifikatsiya

Microsoft SQL Serverda ikki turdagi xavfsizlik sxemalari mavjud: SQL Server xavfsizligi va ishonchli autentifikatsiya (Windows autentifikatsiyasi deb ham ataladi). SQL Server xavfsizligi standart login foydalanuvchi nomi va parol birikmasidir va ishonchli autentifikatsiya SQL Server nusxasiga ulanishga urinayotgan qurilmaning domen autentifikatsiya protsedurasi tomonidan tasdiqlanganligini va bu tekshirish natijalari nusxasiga uzatilishini nazarda tutadi. SQL Server: domen SQL Server namunasi foydalanuvchi hisobiga ishonadigan xost sifatida qabul qilinadi - avval tekshirilgan.

SQL Server xavfsizlik mexanizmi orqali SQL Serverga ulanishga urinayotgan foydalanuvchilar va ilovalar maqsadli SQL Serverda yaratilgan foydalanuvchi nomi va parolni taqdim etishi kerak. Ishonchli autentifikatsiya yordamida ulanishda siz faqat ishonchli autentifikatsiya ishlatilganligini bildirish uchun ulanish qatorida bayroqni o'rnatishingiz kerak. Bunday holda, oxirgi foydalanuvchi yoki ilova xizmati hisobi hisobga olish ma'lumotlari xavfsizlik belgisi sifatida yuboriladi. Agar SQL Serverda mos keladigan foydalanuvchi nomi mavjud bo'lsa, kirish huquqi beriladi.

Ismlar va foydalanuvchilar

SQL Server misoliga kirishning ikki darajasi mavjud: server (yoki misol) foydalanuvchi hisoblari va ma'lumotlar bazasi foydalanuvchilari. Hisob qaydnomalaridan foydalanib, serverlar tashqi foydalanuvchiga (ushbu maqolada "foydalanuvchi" atamasi SQL Serverga ulanishga urinayotgan har qanday dastur, xizmat, API va hokazolarni bildiradi) SQL Server nusxasiga dastlabki ulanishni amalga oshirish imkonini beradi. SQL-ga asoslangan xavfsizlik bilan bu foydalanuvchi nomi va parolni talab qiladi. Ishonchli autentifikatsiya holatida bu domen hisobi.

Ushbu foydalanuvchi hisoblarini yaratishning ikkita usuli mavjud: Transact-SQL (https://msdn.microsoft.com/en-us/library/ms189751.aspx? f=255&MSPPError=-2147217396) yoki GUI orqali. Hisob qaydnomalarini yaratish uchun T-SQL-dan foydalanish tartibi yaxshi hujjatlashtirilgan va rasmiy Microsoft SQL Server hujjatlariga murojaat qilish yaxshidir. Hozircha, grafik interfeysda hisob qaydnomasini qanday yaratishni ko'rib chiqamiz. Foydalanuvchi hisoblarini yaratish uchun dialog oynasini ishga tushirish uchun Object Explorer-da SQL Server Management Studio (SSMS) da SQL Server misoliga ulaning va keyin Security\Logins tugunini kengaytiring. Kirish-ni o'ng tugmasini bosing va kontekst menyusidan Yangi kirish-ni tanlang (1-rasm).

Siz 2-rasmda ko'rsatilgan hisob sozlamalari dialog oynasini ko'rasiz. Xuddi shu oynada foydalanuvchi nomingizni o'zgartirishingiz mumkin.

Bu hisob sozlamalarini yaratish (va o'zgartirish) uchun Umumiy yorlig'i. U ilgari tasvirlangan ikkita xavfsizlik sxemasidan farq qiladi. Umumiy yorlig'ida siz quyidagilarni o'rnatishingiz mumkin:

  • Kirish nomi. Autentifikatsiya qilish uchun ishlatiladi. Windows yoki ishonchli autentifikatsiyada siz DOMAIN\LOGIN formatida nomni ko'rsatishingiz kerak, bu erda LOGIN foydalanuvchi autentifikatsiya qilayotgan domendagi foydalanuvchi nomidir. Agar SQL Server nusxasi boshqa domenda joylashgan bo'lsa, u holda ushbu domen va SQL Server domeni o'rtasida ishonch aloqasi talab qilinadi.
  • Parol. SQL Server autentifikatsiyasi bilan parol matn maydoni yoqiladi va siz ham foydalanuvchi nomini, ham tegishli parolni kiritasiz.
  • Parol siyosati va amal qilish muddati. Parol va amal qilish muddati siyosati katakchalari SQL Server autentifikatsiya rejimida ham tanlanadi va SQL Serverni o'z ichiga olgan domendagi Active Directory-da amalda bo'lgan siyosatlar qo'llaniladi. SQL Server foydalanuvchi nomini belgilash orqali siz ro'yxatdan o'tgandan so'ng foydalanuvchilarga parollarini o'zgartirishga ruxsat berishingiz mumkin. Natijada, ma'lumotlar bazasi ma'muri oxirgi foydalanuvchining hisob nomiga kirish huquqiga ega emas.
  • Sertifikatlar, kalitlar, hisobga olish ma'lumotlari. Ushbu boshlang'ich maqolasida biz sertifikatlar, kalitlar va hisobga olish ma'lumotlarini ko'rib chiqmaymiz.
  • Standart ma'lumotlar bazasi SQL Serverga ulanish o'rnatilgandan so'ng, ikki bosqich amalga oshiriladi: autentifikatsiya (agar Windows yoki Ishonchli autentifikatsiya ishlatilsa, foydalanuvchining domeni hisobga olish ma'lumotlari uchun foydalanuvchi nomi mavjud bo'lishi kerak yoki foydalanuvchi nomi/parol kombinatsiyasi SQL Server misoliga o'tkazilishi kerak). Bu birinchi to'siq. Ikkinchisi, tasdiqlangan foydalanuvchi nomi standart ma'lumotlar bazasida bog'langan foydalanuvchi ob'ektiga ega - ma'lumotlar bazasi dastlab identifikatsiyadan so'ng foydalanuvchi nomi konteksti sifatida sozlangan. Birinchi to'siqdan o'tgan bo'lsa ham, standart ma'lumotlar bazasida mos keladigan ma'lumotlar bazasi foydalanuvchisi bo'lmasa, ulanish o'rnatilmaydi va tegishli yozuv SQL xatolar jurnaliga yoziladi. Ammo istisnolar mavjud: agar foydalanuvchining server roli juda muhim bo'lsa, har bir ma'lumotlar bazasida sukut bo'yicha unga yashirin huquqlarni o'rnatish zarur bo'lsa, unda standart ma'lumotlar bazasida mos keladigan foydalanuvchi bo'lishi shart emas. Biroq, men o'zimdan oldinda ketyapman, chunki biz hali ma'lumotlar bazasi foydalanuvchilari yoki server rollarini ko'rib chiqmaganmiz. GUI-da standart ma'lumotlar bazasini tanlaganingizda, bog'langan ma'lumotlar bazasi foydalanuvchisi yaratilmasligini ta'kidlash kifoya. Siz shunchaki standart ma'lumotlar bazasi qanday bo'lishi kerakligini aniqlaysiz. Buni qilganingizda, bog'langan ma'lumotlar bazasi foydalanuvchisini yaratish uchun "Kirish yaratish" dialog oynasining "Foydalanuvchi xaritasi" yorlig'idan foydalanasiz.

3-rasmda ko'rsatilgan keyingi yorlig'iga o'tamiz Server rollari. Ushbu sahifada siz yangi foydalanuvchi uchun istalgan SQL Server (namuna) darajasidagi rollarni tanlashingiz mumkin. Server rollari huquqlar to'plami bo'lib, ular himoyalanuvchilar deb ham ataladi, ular to'plamga to'planadi, shuning uchun har bir himoyalanuvchiga alohida huquqlarni belgilashingiz shart emas. Odatiy bo'lib, har bir hisob umumiy rolning a'zosi bo'lib, u SQL Server nusxasiga asosiy ulanishni o'rnatish imkonini beradi. Maqolaning qolgan qismida Microsoft SQL Serverga kiritilgan har bir server roli ko'rib chiqiladi.

SQL Server Management Studio'da Login yaratish dialog oynasining keyingi sahifasi foydalanuvchi hisobini xaritalash uchun mo'ljallangan. Har bir hisob bir yoki bir nechta ma'lumotlar bazasida foydalanuvchiga ega bo'lishi mumkin. Ushbu sahifada siz yangi hisob bilan bog'langan ma'lumotlar bazasi foydalanuvchilarini yaratishingiz mumkin. Buning uchun siz quyidagi ma'lumotlarni taqdim etishingiz kerak.

  • Ma'lumotlar bazasi. Hisob uchun bog'langan foydalanuvchi yaratmoqchi bo'lgan ma'lumotlar bazasi yonidagi katakchani belgilang.
  • Foydalanuvchi nomi Foydalanuvchi obyekti nomi hisob nomiga mos kelishi shart emas va buni qanday o‘zgartirish mumkinligini keyinroq ko‘rsatamiz.
  • Standart sxema Har bir ma'lumotlar bazasi foydalanuvchisi standart sxemaga tayinlanishi kerak. Sxema - bu ma'lumotlar bazasidagi boshqa ob'ektlardan mantiqiy (lekin jismoniy jihatdan shart emas) ajratilgan ma'lumotlar bazasi ob'ektlari to'plami. Siz foydalanuvchi yoki foydalanuvchilar guruhiga berilgan sxemadagi barcha ob'ektlarga huquqlar berishingiz mumkin, masalan, Buxgalteriya hisobi (yoki buxgalteriya ilovasi xizmati hisobi) dan barcha foydalanuvchilarga Billing sxemasidagi barcha ob'ektlarga ma'lum huquqlarni berishingiz mumkin, lekin ularga kirish huquqini bermaysiz. boshqa foydalanuvchilarga ob'ektlar. Ma'lumotlar bazasi foydalanuvchisiga standart sxemani tayinlaganingizda, ushbu sxemadagi ob'ektlarga murojaat qilishda ma'lumotlar bazasiga T-SQL qo'ng'iroqlarida sxema nomini kiritishning hojati yo'q. Bu shuningdek, agar foydalanuvchiga ob'ektlar yaratish huquqi berilgan bo'lsa, ob'ektlarni yaratishda sxema nomini ko'rsatmaguningizcha, ular sukut bo'yicha ushbu sxemada yaratiladi. Keyinchalik maqolada biz sxemalar tushunchasiga to'xtalamiz.
  • Ma'lumotlar bazasi roliga a'zolik Xuddi misol yoki server darajasida bo'lgani kabi, har bir ma'lumotlar bazasida rollarga to'plangan oldindan belgilangan huquqlar to'plami mavjud. Microsoft SQL Server bilan birga keladigan ma'lumotlar bazasi rollarini biroz keyinroq ko'rib chiqamiz.

SQLCRUISE\skipper foydalanuvchi hisobi uchun misol dialog oynasini ko'rib chiqamiz (4-rasmga qarang).

Ushbu misolda SQLCRUISE\skipper foydalanuvchisiga standart ma'lumotlar bazasiga (qutqaruv qayig'iga) huquqlar beriladi, bunda bog'langan foydalanuvchi nomi oddiygina skipper hisoblanadi. Standart sxema faqat skipper_only. Ushbu hisob qaydnomasi uchun foydalanuvchilar yaratiladigan boshqa ikkita ma'lumotlar bazasi foydalanuvchi nomidagi kabi bir xil foydalanuvchi nomidan foydalanadi (odatda identifikatsiya qilish qulayligi uchun) va standart sxema dbo bo'lib, u Microsoft SQL Serverda barcha foydalanuvchi tomonidan belgilangan standart hisoblanadi. ob'ektlar. Bu haqda batafsil ma'lumot keyingi bo'limda taqdim etiladi. Qutqaruv kemasi ma'lumotlar bazasida biz faqat umumiy ma'lumotlar bazasi roliga a'zolikni ta'minlaymiz, bu sizga ma'lumotlar bazasiga qo'shimcha ruxsatlarsiz ulanish imkonini beradi.

Keyingi sahifa, Securables, server yoki misol darajasida himoyalanuvchilarni taqdim etadi. Yuqorida ta'kidlab o'tilganidek, himoyalanuvchilar ob'ektlarga berilgan ruxsatlardir. Xavfsiz ob'ektlar odatda quyidagi hollarda taqdim etiladi:

  • belgilangan rol juda keng (hisob uchun ko'plab boshqa huquqlar);
  • Belgilangan rol yoki rollar to'plami hisob uchun zarur bo'lgan barcha huquqlarni to'liq qamrab olmaydi.

Bizning misolimizda men umumiy server rolida SQLCRUISE\skipper a'zoligini berdim va unga server darajasida mavjud bo'lgan har qanday ob'ekt ta'riflarini ko'rishga ruxsat berdim (5-rasmga qarang).

Nihoyat, biz Status sahifasiga o'tamiz. Ushbu sahifada siz foydalanuvchiga kirishga ruxsat berishingiz yoki rad etishingiz mumkin (odatda Grant tanlangan - ruxsat berish). Shuning uchun siz hisob yaratishingiz, huquqlar berishingiz, bog'langan foydalanuvchilarni yaratishingiz va keyin kirishni bekor qilishingiz mumkin. Mavjud foydalanuvchi uchun ushbu oynaga qaytishingiz va SQL Server misoliga kirishni bekor qilishingiz mumkin. Hisobni yoqish va o'chirish xuddi shu tarzda sodir bo'ladi (6-ekranga qarang). Nihoyat, biz foydalanuvchining hisob holatini ko'rishimiz va noto'g'ri parol bilan kirish uchun juda ko'p muvaffaqiyatsiz urinishlar tufayli hisob bloklanganligini ko'rishimiz mumkin.

SQL_Cruise ma'lumotlar bazasida tblFoo nomli faqat bitta jadval mavjud bo'lsa va joriy ma'lumotlar bazasi konteksti SQL_Cruise ma'lumotlar bazasi bo'lsa, har bir variant muvaffaqiyatli ishlaydi. Biroq, SQL_Cruise ma'lumotlar bazasini o'z ichiga olgan SQL Server nusxasida qaysi ma'lumotlar bazasiga ulanganligingizdan qat'i nazar, faqat birinchi variant to'g'ri ishlaydi. Ikkinchi variant, agar siz SQL_Cruise ma'lumotlar bazasiga ulangan bo'lsangiz, tblFoo-ga ega bo'lgan sxemalar sonidan qat'i nazar, amalga oshiriladi, chunki siz dbo sxemasini ko'rsatgansiz. Uchinchi variant xato xabarini hosil qiladi (8-rasmga qarang), agar SQL_Cruise ma'lumotlar bazasida tblFoo bilan bir nechta sxemalar mavjud bo'lsa, men dbo.tblFoo jadvalini va user.tblFoo jadvalini yaratgan 4-listda ko'rsatilganidek.

Ha, bu to'g'ri - ob'ekt mavjud, lekin siz noto'g'ri ob'ekt nomi xato xabarini olasiz. Bunday nomdagi ob'ekt mavjud emasligiga hech qachon oldindan ishonch hosil qilmang. Xabar sintaksis muammosini ko'rsatishi mumkin.

Ruxsat etilgan rollar Microsoft SQL Server bilan server va ma'lumotlar bazasi darajasida mavjud. Biroq, agar siz ko'p foydalanuvchilarga bir xil ruxsatlarni belgilashingiz kerak bo'lgan vaziyatlar yuzaga kelsa, o'zingizning rollaringizni yaratishingiz mumkin. Maxsus rollarni yaratish sizga ushbu huquqlarni faqat bir marta belgilash imkonini beradi: rolni yaratganingizda, har bir foydalanuvchi yoki har bir foydalanuvchi hisob qaydnomasi asosida emas (ma'lumotlar bazasi yoki server rollariga qarab). Vaqtni tejashga qo'shimcha ravishda, u bir nechta foydalanuvchi yoki hisob qaydnomalariga huquqlarni belgilashda nomuvofiqlikni yo'q qiladi.

Microsoft tomonidan taqdim etilgan server rollari va ma'lumotlar bazasi rollarining to'liq ro'yxati bo'ylab harakatlanish uchun giperhavolalardan foydalaning. Kelgusi maqolalar, biz asosiy mavzulardan chuqurroq mavzularga o'tishni boshlaganimizda, rollarni qanday yaratish, ushbu rollarga foydalanuvchilar yoki hisoblarni qo'shish va server va ma'lumotlar bazasi darajasidagi rollar bilan huquqlarni qanday bog'lashni o'z ichiga oladi.

Microsoft SQL Server xavfsizligi juda muhim mavzu. U o'zining teranligi, shuningdek, terminologiyasining o'ziga xosligi bilan ajralib turadi. Umid qilamanki, men turli atamalarni tushuntirish va amaliyotda qo'llaniladigan ob'ektlar haqida umumiy ma'lumot berish maqsadiga erishdim. Biz ushbu boshlang'ich darajadagi maqolalarda yana bir nechta mavzularni ko'rib chiqamiz, lekin men tez orada ushbu postdan kelib chiqadigan murakkabroq muammolarni ko'rib chiqaman. Har doimgidek, o'quvchilarga e'tiborlari uchun minnatdorchilik bildiraman va sharhlaringizni kutaman. Umid qilamanki, ushbu maqola yangi boshlanuvchilar ma'lumotlar bazasi ma'murlariga SQL sirlarini o'zlashtirishga yordam beradi.

Listing 1. GUIda qilingan sozlamalarga mos keladigan kod

FOYDALANISH GO DEFAULT_DATABASE BILAN WINDOWSDAN LOGIN YARATISH= FOYDALANISH GO KIRISH UCHUN FOYDALANUVCHI YARASH DEFAULT_SCHEMA BILAN FOYDALANUVCHI O‘GRISH= SCHEMA YARATISH AVTORIZASYONASINI KETISH FOYDALANING. KIRISH UCHUN FOYDALANUVCHI YARATISH FOYDALANUVCHINI DEFAULT_S CHEMA BILAN O‘ZGARTIRISh= GO GO GRANT KO'RISHNI KETISH uchun har qanday ta'rifni ishlating

Listing 2. Tizim va ma'lumotlar bazasi foydalanuvchilari haqida ma'lumot

ism , sid , principal_id , type_desc , default_ma'lumotlar bazasi_nomini sys.server_principals FROM TANGLASH QERDA nomi = "professor"; lifeboat.sys.database_principals FROM nomi , sid , principal_id , type_desc , default_schema_name NI TANLASH QERDA nomi = "professor";

Listing 3. Jadval ustunlari va satrlarini tanlash uchun so'rov namunasi

1-VARIANT: FQDN -============================================= ============ ============================== SQL_Cruise.dbo.tblFoo dan * TANLASH; -================================================== === ======================== - 2-VARIANT: ism sxema orqali aniqlangan -============= == ================================================ ===== ======= dbo.tblFoo dan * TANLASH; -================================================== === ======================== - 3-VARIANT: faqat ob'ekt nomi -============== === =============================================== ====== ===== tblFoo dan * TANLASH; Listing 4. Bir nechta sxemalar bilan jadvallar yaratish USE GO CREATE SCHEMA AVTORIZATION GO CREATE TABLE dbo.tblFoo (id INT); JADVAL YARATISH .tblFoo (id INT); tblFoo dan * TANLASH;


SQL Server xavfsizligi asoslari


5 ta javob

Savolingizga asoslanib, foydalanuvchi va login o'rtasidagi farq haqida biroz chalkashib ketgan bo'lishingiz mumkin deb o'ylayman. Login - bu umuman SQL Serverdagi hisob - serverga kirishi mumkin bo'lgan va parolga ega bo'lgan shaxs. Foydalanuvchi ma'lum bir ma'lumotlar bazasiga kirish huquqiga ega bo'lgan kirishdir.

Login yaratish oson va ma'lum bir ma'lumotlar bazasiga kirish uchun foydalanuvchi hisobini yaratishdan oldin (aniq) bajarilishi kerak:

PAROL BILAN NewAdminName LOGIN YARATING = "ABCD" GO

Siz e'lon qilgan login yordamida db_owner imtiyozlariga ega foydalanuvchini shunday yaratasiz:

Ma'lumotlar bazasidan foydalaning; AGAR MAVJUD BO'LMAGAN O'TISH (Sys.database_principals dan * TANLASH QERDA nomi = N"NewAdminName") LOGIN EXEC sp_addrolemember N"db_owner", N"NewAdminName" END UCHUN FOYDALANUVCHI YARATISHNI BOSHLASH; BOSH

Endi loginlar men yuqoridagiga qaraganda bir oz ko'proq suyuqlikdir. Masalan, ma'lumotlar bazasi o'rnatilganda Windows Administrator hisobi uchun foydalanuvchi hisobi avtomatik ravishda yaratiladi (ko'pgina SQL Server o'rnatishlarida). Ko'pgina hollarda men ma'lumotlar bazasini boshqarayotganimda foydalanaman (u barcha imtiyozlarga ega).

Biroq, agar siz SQL Serverga ilova orqali kirmoqchi bo'lsangiz, serverni "Aralash rejim" (Windows va SQL login) uchun sozlashingiz va yuqorida ko'rsatilgandek Login yaratishingiz kerak. Keyin ilovangiz uchun zarur bo'lgan narsaga asoslanib, ushbu SQL kiritish uchun "GRANT" imtiyozlarini olasiz. Qoʻshimcha maʼlumot olish uchun qarang.

YANGILANISH: Aaron hisobingizga belgilangan rolni tayinlash uchun sp_addsrvrolemember dan foydalanishga ishora qiladi. Bu yaxshi fikr - imtiyozlarni qo'lda berishdan ko'ra tezroq va osonroq. Agar siz uni topsangiz, ko'plab havolalarni ko'rasiz. Biroq, siz hali ham login va foydalanuvchi o'rtasidagi farqni tushunishingiz kerak.

Butun server yoki ma'lum bir ma'lumotlar bazasi uchun to'liq administrator huquqlari? Menimcha, boshqalar ma'lumotlar bazasi uchun javob berishdi, lekin server uchun:

FOYDALANISH; KETISH MyNewAdminUser PAROL BILAN LOGIN YARATISH = N"abcd", CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF; GO EXEC sp_addsrvrolemember @loginame = N"MyNewAdminUser", @rolename = N"sysadmin";

Siz foydalanayotgan SQL Server Express versiyasiga qarab CHECK_ parametrlarini qoldirishingiz kerak bo'lishi mumkin (bu ma'lumotni savolingizga kiritish deyarli har doim yaxshi fikr).

Agar siz umumiy skript yaratmoqchi bo'lsangiz, uni foydalanuvchi nomi va ma'lumotlar bazasi nomi bilan almashtirgan holda Execute bayonoti bilan qilishingiz mumkin.

@userName ni varchar(50) sifatida e'lon qiling; @defaultDataBaseName ni varchar(50) sifatida e'lon qiling; @LoginCreationScript ni varchar(max) sifatida e'lon qiling; @UserCreationScript ni varchar(max) sifatida e'lon qiling; @TempUserCreationScript ni varchar(max) sifatida e'lon qiling; @defaultDataBaseName = "ma'lumotlar1" o'rnating; set @userName = "domen\userName"; set @LoginCreationScript ="DEFAULT_DATABASE BILAN WINDOWSDAN LOGIN [(userName)] YARATING =(dataBaseName)" @UserCreationScript =" FOYDALANISH (dataBaseName) LOGIN [(userEXtarName") uchun foydalanuvchini [(userName)] yaratish [;adlemeda spp." "", ""(foydalanuvchi nomi)""; EXEC sp_addrolemember ""db_datawriter"", ""(foydalanuvchi nomi)""; Sxema bo'yicha bajarishga ruxsat bering:: dbo TO [(userName)];" /*Login yaratish*/ set @LoginCreationScript=Oʻzgartirish(Almashtirish(@LoginCreationScript, "(userName)", @userName), "(dataBaseName)", @defaultDataBaseName) set @UserCreationScript =Replace(@UserCreationScript, "(userName)" , @userName) Execute(@LoginCreationScript) /*Foydalanuvchi yaratish va rollarni belgilash*/ set @TempUserCreationScript =Replace(@UserCreationScript, "(dataBaseName)", @defaultDataBaseName) Execute(@TempUserCreationScript) set @TempUserCreationScript(@TempUserCreationScript) @TempUserCreationCreplaceUset "(dataBaseName)", "db2") Execute(@TempUserCreationScript) set @TempUserCreationScript =Replace(@UserCreationScript, "(dataBaseName)", "db3") Execute(@TempUserCreationScript)

Siz foydalanishingiz mumkin:

LOGIN YARATISH PAROL BILAN = " "; BOSH

Siz ham foydalanishingiz mumkin:

Ruxsat berish [ ,...n ] ON SCHEMA:: schema_name

Siz foydalanuvchilarga tayinlagan sxema uchun ruxsatlarni sozlash uchun.

O'tgan hafta men o'z sahifamga Microsoft SQL Server 2014 Developer Edition-ni o'rnatdim va darhol ilgari hech qachon ko'rmagan muammoga duch keldim.

Men SQL Serverning turli versiyalarini ko'p marta o'rnatdim va bu odatda og'riqsiz jarayon. Serverni o'rnating, boshqaruv konsolini ishga tushiring, bu juda oddiy. Biroq, ushbu o'rnatishni tugatgandan so'ng, SSMS yordamida serverga kirishga harakat qilganimda, quyidagiga o'xshash xatolik yuz berdi:

SQL Serverga kirish xatosi 18456 "Foydalanuvchi uchun tizimga kirish amalga oshirilmadi... (Microsoft SQL Server, xato: 18456)" Agar tizimga kirishda noto'g'ri parol kiritgan bo'lsam, bu xatolikdan foydalandim - lekin bu faqat aralash rejimdan foydalanayotganimda ( Windows va SQL autentifikatsiyasi). Bunday holda, server faqat Windows autentifikatsiyasi bilan tuzilgan va foydalanuvchi hisobi meniki edi. O'rnatish vaqtida nega mening foydalanuvchini SYSADMIN roliga qo'shmaganiga hali ham ishonchim komil emas; Ehtimol, men bir qadamni o'tkazib yubordim va uni qo'shishni unutdim. Har holda, barcha umidlar yo'qolmadi.

Agar SQL Serverda boshqa hisob qaydnomasi bilan tizimga kira olmasangiz, buni tuzatish usuli CLI orqali tarmoqqa kirishni qo'shishdir. Buning uchun siz tizimga kirgan shaxsiy kompyuteringiz uchun Windows administratori bo'lishingiz kerak.

MSSQL xizmatini to'xtating. Administrator sifatida ishga tushirish buyrug'i yordamida buyruq satrini oching. SQL Server EXE fayli saqlanadigan papkaga o'ting; SQL Server 2014 uchun standart "C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Binn". Quyidagi buyruqni bajaring: "sqlservr.exe -m". Bu SQL Serverni bitta foydalanuvchi rejimida ishga tushiradi. Ushbu buyruq satridan chiqqaningizdan so'ng, boshqasini oching, 2 va 3-bosqichlarni takrorlang. Ikkinchi buyruq satri oynasida "SQLCMD -S Server_Name\Instance_Name" ni ishga tushiring. Ushbu oynada har biridan keyin Enter tugmasini bosing: 1

WINDOWS 2DAN LOGIN [domen nomi\foydalanuvchi nomi] YARATING. SQL Server jarayonini tugatish uchun sizdan Y tugmasini bosishingiz so'raladi.

MSSQL xizmatini qayta ishga tushiring. Mana shu! Endi siz onlayn login yordamida tizimga kirishingiz mumkin.



 


O'qing:



Chap menyuni oching cayo coco

Chap menyuni oching cayo coco

Kayo Koko oroli - Kubaning markazidagi kurort oroli. Kayo Koko orolining joylashuvi to'g'ridan-to'g'ri Canal Viejo ro'parasida joylashgan ...

Nima uchun bizga radioaloqa va radiostansiyalar kerak?

Nima uchun bizga radioaloqa va radiostansiyalar kerak?

Ba'zilar yangi iPhone, boshqalari mashina, boshqalari esa radiosi uchun ehtiyot qismlar to'plami va yangi dinamikni orzu qiladi. Yaqinda bir vaqt bor edi...

Kendall va Spearman darajali korrelyatsiya koeffitsientlari Kendall darajali korrelyatsiya koeffitsienti misoli

Kendall va Spearman darajali korrelyatsiya koeffitsientlari Kendall darajali korrelyatsiya koeffitsienti misoli

Ekspert baholarini taqdim etish va dastlabki ishlov berish Amalda baholashning bir necha turlari qo'llaniladi: - sifatli (ko'pincha-kamdan-kam hollarda,...

Dasturlash funktsiyalari

Dasturlash funktsiyalari

Ishning maqsadi: 1) funktsiyalarni tavsiflash qoidalarini o'rganish; 2) C++ tilida dastur yozishda funksiyalardan foydalanish malakalarini egallash.Nazariy...

tasma tasviri RSS