SQL നിയന്ത്രണ നിർമ്മാണങ്ങൾ. നിശ്ചിത ഡാറ്റാബേസ് റോളിന്റെ വിവരണം. നമുക്ക് അതെല്ലാം ഒരുമിച്ച് വെക്കാം

SQL സ്റ്റാൻഡേർഡ് രണ്ട് പ്രസ്താവനകൾ നിർവചിക്കുന്നു: യഥാക്രമം പ്രത്യേകാവകാശങ്ങൾ നൽകുന്നതിനും പിൻവലിക്കുന്നതിനുമുള്ള GRANT, REVOKE.

പ്രിവിലേജ് ഗ്രാന്റ് സ്റ്റേറ്റ്‌മെന്റിന് ഇനിപ്പറയുന്ന ഫോർമാറ്റ് ഉണ്ട്:

ഗ്രാന്റ് (<список действий>| എല്ലാ പ്രത്യേകാവകാശങ്ങളും)

ഓൺ<имя_объекта>

അത് (<имя_пользователя>| പൊതു)

ഇവിടെ പ്രവർത്തനങ്ങളുടെ ലിസ്റ്റ് ഒരു നിശ്ചിത തരം ഒബ്‌ജക്റ്റിലെ പ്രവർത്തനങ്ങളുടെ പൊതുവായ സാധുവായ ലിസ്റ്റിൽ നിന്നുള്ള ഒരു കൂട്ടം പ്രവർത്തനങ്ങളെ നിർവചിക്കുന്നു.

ഈ തരത്തിലുള്ള ഒബ്‌ജക്‌റ്റുകൾക്കായി അനുവദിച്ചിരിക്കുന്ന എല്ലാ പ്രവർത്തനങ്ങളും അനുവദനീയമാണെന്ന് ALL PRIVILEGES പാരാമീറ്റർ സൂചിപ്പിക്കുന്നു.

<имя_объекта>- ഒരു നിർദ്ദിഷ്ട വസ്തുവിന്റെ പേര് വ്യക്തമാക്കുന്നു: പട്ടിക, കാഴ്ച, സംഭരിച്ച നടപടിക്രമം, ട്രിഗർ.

<имя_пользователя>അല്ലെങ്കിൽ ഈ പ്രത്യേകാവകാശങ്ങൾ ആർക്കൊക്കെ നൽകണമെന്ന് PUBLIC നിർണ്ണയിക്കുന്നു.

ഗ്രാന്റ് ഓപ്‌ഷൻ പാരാമീറ്റർ ഓപ്‌ഷണൽ ആണ് കൂടാതെ അവകാശങ്ങൾ മാത്രമല്ല ഉള്ള ഒരു മോഡ് നിർവചിക്കുന്നു നിർദ്ദിഷ്ട പ്രവർത്തനങ്ങൾ, മാത്രമല്ല ഈ അവകാശങ്ങൾ മറ്റ് ഉപയോക്താക്കൾക്ക് കൈമാറാനുള്ള അവകാശവും. ഈ സാഹചര്യത്തിൽ, ഉപയോക്താവിന് അവന്റെ അനുവദനീയമായ പ്രവർത്തനങ്ങളുടെ പരിധിയിൽ മാത്രമേ അവകാശങ്ങൾ കൈമാറാൻ കഴിയൂ.

നമുക്ക് ഒരു ഉദാഹരണം നോക്കാം, നമുക്ക് യൂസർ1, യൂസർ2, യൂസർ3 എന്നിങ്ങനെ തികച്ചും അദ്വിതീയമായ പേരുകളുള്ള മൂന്ന് ഉപയോക്താക്കൾ ഉണ്ടെന്ന് പറയാം. അവരെല്ലാം ഒരേ ഡാറ്റാബേസിന്റെ ഉപയോക്താക്കളാണ്.

ഉപയോക്താവ് Tab1 ഒബ്‌ജക്‌റ്റ് സൃഷ്‌ടിച്ചു, അവൻ ഈ ഒബ്‌ജക്‌റ്റിന്റെ ഉടമയാണ് കൂടാതെ മറ്റ് ഉപയോക്താക്കൾക്ക് ഈ ഒബ്‌ജക്‌റ്റിനൊപ്പം പ്രവർത്തിക്കാനുള്ള അവകാശങ്ങൾ കൈമാറാനും കഴിയും. ഉപയോക്താവ്2 എന്നത് Tab1-ൽ ഡാറ്റ നൽകേണ്ട ഒരു ഓപ്പറേറ്ററാണെന്നും (ഉദാഹരണത്തിന്, പുതിയ ഓർഡറുകളുടെ ഒരു പട്ടിക), നൽകിയ ഡാറ്റ പതിവായി അവലോകനം ചെയ്യേണ്ട ഒരു ഡിപ്പാർട്ട്മെന്റ് മാനേജരാണ് user3 എന്നും പറയാം.

പട്ടിക തരത്തിലുള്ള ഒരു ഒബ്‌ജക്റ്റിന്, പ്രവർത്തനങ്ങളുടെ പൂർണ്ണമായ സാധുവായ ലിസ്റ്റ് നാല് പ്രവർത്തനങ്ങളുടെ ഒരു കൂട്ടമാണ്: തിരഞ്ഞെടുക്കുക, ചേർക്കുക, ഇല്ലാതാക്കുക, അപ്‌ഡേറ്റ് ചെയ്യുക. ഈ സാഹചര്യത്തിൽ, അപ്ഡേറ്റ് പ്രവർത്തനം നിരവധി നിരകളിലേക്ക് പരിമിതപ്പെടുത്താം.

ടൈപ്പ് ടേബിളിന്റെ ഒബ്‌ജക്‌റ്റിനായുള്ള പ്രിവിലേജ് അസൈൻമെന്റ് സ്റ്റേറ്റ്‌മെന്റിന്റെ പൊതുവായ ഫോർമാറ്റിന് ഇനിപ്പറയുന്ന വാക്യഘടന ഉണ്ടായിരിക്കും:

ഗ്രാന്റ് ([.INSERT][.DELETE][.UPDATE

(<список столбцов>)]) ഓൺ<имя_таблицы>

TO(<имя_пользователя>| പൊതു)

ഈ സാഹചര്യത്തിൽ, ഇനിപ്പറയുന്ന അസൈൻമെന്റുകൾ നിർവഹിക്കേണ്ടത് ആവശ്യമാണ്:

ഈ അസൈൻമെന്റുകൾ അർത്ഥമാക്കുന്നത്, Tab1 റിലേഷനിൽ പുതിയ വരികൾ മാത്രം നൽകാനുള്ള അവകാശം user2 ന് ഉണ്ടെന്നും കൂടാതെ Tab1 പട്ടികയിലെ എല്ലാ വരികളും കാണാനുള്ള അവകാശം user3 ന് ഉണ്ടെന്നുമാണ്.

ഒരു പരിഷ്ക്കരണ പ്രവർത്തനത്തിന് ആക്സസ് അവകാശങ്ങൾ നൽകുമ്പോൾ, ഉപയോക്താവിന് മാറ്റാൻ കഴിയുന്ന നിരകൾ നിങ്ങൾക്ക് വ്യക്തമാക്കാം. നൽകിയിരിക്കുന്ന സേവനങ്ങളുടെ വിലയിൽ മാറ്റം വരുത്താൻ ഡിപ്പാർട്ട്മെന്റ് മാനേജർക്ക് അവകാശമുണ്ടെന്ന് നമുക്ക് അനുമാനിക്കാം. ടാബ്1 പട്ടികയിലെ SENA കോളത്തിൽ വില വ്യക്തമാക്കിയിട്ടുണ്ടെന്ന് നമുക്ക് അനുമാനിക്കാം. അപ്പോൾ user3 ന് ഒരു പ്രത്യേകാവകാശം നൽകുന്നതിനുള്ള പ്രവർത്തനം മാറുകയും ഇതുപോലെ കാണപ്പെടുകയും ചെയ്യാം:

ഗ്രാന്റ് തിരഞ്ഞെടുക്കുക, അപ്ഡേറ്റ് ചെയ്യുക (സേന)

ഞങ്ങളുടെ ഉപയോക്താവ് ഉപയോക്താവ്1 അനുമാനിക്കുകയാണെങ്കിൽ, ഉപയോക്താവിന് ഉപയോക്താവ് 4-ന്റെ അഭാവത്തിൽ പകരം വയ്ക്കാൻ കഴിയുമെന്ന് കരുതുന്നുവെങ്കിൽ, സൃഷ്ടിച്ച ടാബ് 1-ൽ പ്രവർത്തിക്കാനുള്ള എല്ലാ അവകാശങ്ങളും ഈ ഉപയോക്താവിന് നൽകാനാകും.

എല്ലാ പ്രത്യേകാവകാശങ്ങളും നൽകുക

ഗ്രാന്റ് ഓപ്‌ഷനോടെ

ഈ സാഹചര്യത്തിൽ, user1 ഒബ്‌ജക്റ്റിന്റെ ഉടമയുടെ അഭാവത്തിൽ Tab1 പട്ടികയ്‌ക്കൊപ്പം പ്രവർത്തിക്കാൻ ഉപയോക്താവിന് ഉപയോക്താവിന് പ്രത്യേകാവകാശങ്ങൾ നൽകാനാകും. അതിനാൽ, ഒരു പുതിയ ഉപയോക്തൃ ഓപ്പറേറ്റർ ഉപയോക്താവ് 5 പ്രത്യക്ഷപ്പെടുകയാണെങ്കിൽ, കമാൻഡ് ഉപയോഗിച്ച് പട്ടികയിലേക്ക് പുതിയ വരികൾ നൽകാനുള്ള അവകാശം അദ്ദേഹത്തിന് നൽകാം:

അധികാരങ്ങൾ കൈമാറ്റം ചെയ്യുമ്പോൾ, ഒരു ഒബ്‌ജക്‌റ്റിലെ പ്രവർത്തനങ്ങളുടെ സെറ്റ് പരിമിതമാണെങ്കിൽ, ഈ അധികാരങ്ങൾ കൈമാറുന്ന ഉപയോക്താവിന് മറ്റൊരു ഉപയോക്താവിന് തന്റെ പവർ അല്ലെങ്കിൽ ഈ പവറിന്റെ ഒരു ഭാഗം മാത്രമേ കൈമാറാൻ കഴിയൂ. അതിനാൽ, user4-ന് ഇനിപ്പറയുന്ന അധികാരങ്ങൾ നൽകിയിട്ടുണ്ടെങ്കിൽ:

ഗ്രാന്റ് തിരഞ്ഞെടുക്കുക, അപ്ഡേറ്റ് ചെയ്യുക, ഇല്ലാതാക്കുക

ഗ്രാന്റ് ഓപ്‌ഷനോടെ

അപ്പോൾ ഉപയോക്താവിന് 5 എന്ന ഉപയോക്താവിന് ഡാറ്റ നൽകുന്നതിനുള്ള അനുമതികൾ നൽകാൻ ഉപയോക്താവിന് ഉപയോക്താവിന് കഴിയില്ല, കാരണം ഈ പ്രവർത്തനം അദ്ദേഹത്തിന് അനുവദനീയമായവയുടെ പട്ടികയിൽ ഉൾപ്പെടുത്തിയിട്ടില്ല.

പട്ടികകളിൽ പ്രവർത്തിക്കാനുള്ള അവകാശങ്ങൾ നേരിട്ട് നൽകുന്നതിനു പുറമേ, ഒരു നിർദ്ദിഷ്‌ട ഉപയോക്താവിന് പ്രവർത്തിക്കാൻ ആവശ്യമായ കോളങ്ങൾ മാത്രം ഉൾക്കൊള്ളുന്ന കാഴ്ചകൾ സൃഷ്‌ടിക്കുകയും ഉപയോക്താവിന് ഈ കാഴ്‌ചയ്‌ക്കൊപ്പം പ്രവർത്തിക്കാനുള്ള അവകാശങ്ങൾ നൽകുകയും ചെയ്യുക എന്നതാണ് ഡാറ്റാ പരിരക്ഷയുടെ ഫലപ്രദമായ രീതി.

കാഴ്‌ചകൾക്ക് സംഗ്രഹ അന്വേഷണങ്ങളുമായി പൊരുത്തപ്പെടാൻ കഴിയുന്നതിനാൽ, ഈ കാഴ്‌ചകളിൽ പരിഷ്‌ക്കരണ പ്രവർത്തനങ്ങൾ അനുവദനീയമല്ല, അതിനാൽ അത്തരം കാഴ്‌ചകൾക്കായുള്ള സാധുവായ പ്രവർത്തനങ്ങളുടെ ഗണം SELECT പ്രവർത്തനത്തിലേക്ക് പരിമിതപ്പെടുത്തിയിരിക്കുന്നു. കാഴ്‌ചകൾ അടിസ്ഥാന പട്ടികയിൽ നിന്നുള്ള ഒരു തിരഞ്ഞെടുപ്പുമായി പൊരുത്തപ്പെടുന്നുവെങ്കിൽ, അത്തരം ഒരു കാഴ്‌ചയ്‌ക്ക് എല്ലാ 4 പ്രവർത്തനങ്ങളും സാധുവായിരിക്കും - തിരഞ്ഞെടുക്കുക, ചേർക്കുക, അപ്‌ഡേറ്റ് ചെയ്യുക, ഇല്ലാതാക്കുക.

മുമ്പ് അസൈൻ ചെയ്ത പ്രത്യേകാവകാശങ്ങൾ അസാധുവാക്കാൻ, SQL സ്റ്റാൻഡേർഡ് REVOKE സ്റ്റേറ്റ്മെന്റ് നിർവചിക്കുന്നു. റിവോക്ക് പ്രിവിലേജ് ഓപ്പറേറ്റർക്ക് ഇനിപ്പറയുന്ന വാക്യഘടനയുണ്ട്:

പിൻവലിക്കുക (<список операций>| എല്ലാ പ്രത്യേകാവകാശങ്ങളും)

ഓൺ<имя_объекта>

നിന്ന് (<список пользователей | PUBLIC }

(കാസ്കേഡ് | നിയന്ത്രണം)

CASCADE അല്ലെങ്കിൽ RESTRICT ഓപ്‌ഷനുകൾ എങ്ങനെ പ്രത്യേകാവകാശങ്ങൾ അസാധുവാക്കണമെന്ന് നിർണ്ണയിക്കുന്നു. പ്രത്യേകാവകാശം അനുവദിച്ചപ്പോൾ ഗ്രാന്റ് സ്റ്റേറ്റ്‌മെന്റിൽ നേരിട്ട് പരാമർശിച്ച ഉപയോക്താവിന്റെ മാത്രമല്ല, ഗ്രാന്റ് ഓപ്ഷൻ ഉപയോഗിച്ച് ആ ഉപയോക്താവ് പ്രത്യേകാവകാശങ്ങൾ നൽകിയ എല്ലാ ഉപയോക്താക്കളുടെയും പ്രത്യേകാവകാശങ്ങൾ CASCADE ഓപ്‌ഷൻ റദ്ദാക്കുന്നു.

ഉദാഹരണത്തിന്, ഓപ്പറേഷൻ ഉപയോഗിക്കുമ്പോൾ

എല്ലാ പ്രത്യേകാവകാശങ്ങളും അസാധുവാക്കുക

ഉപയോക്താവിന്4 കാസ്കേഡ്

ഉപയോക്തൃ user5 ന്റെ പ്രത്യേകാവകാശങ്ങളും, യൂസർ4 പ്രിവിലേജുകൾ ഏൽപ്പിക്കാൻ കൈകാര്യം ചെയ്യുന്നതും റദ്ദാക്കപ്പെടും.

RESTRICT ഓപ്‌ഷൻ, REVOKE സ്റ്റേറ്റ്‌മെന്റിൽ നേരിട്ട് പരാമർശിച്ചിരിക്കുന്ന ഉപയോക്താവിന് മാത്രമേ അസാധുവാക്കൽ പ്രത്യേകാവകാശങ്ങൾ പരിമിതപ്പെടുത്തുന്നു. എന്നാൽ നിങ്ങൾക്ക് പ്രത്യേകാവകാശങ്ങൾ നൽകിയിട്ടുണ്ടെങ്കിൽ, ഈ ഓപ്പറേറ്റർ എക്സിക്യൂട്ട് ചെയ്യില്ല. അതിനാൽ, ഉദാഹരണത്തിന്, പ്രവർത്തനം:

എല്ലാ പ്രത്യേകാവകാശങ്ങളും അസാധുവാക്കുക

ഉപയോക്താവിന്4 പരിമിതപ്പെടുത്തുക

ഉപയോക്താവ്4 തന്റെ അധികാരത്തിന്റെ ഒരു ഭാഗം ഉപയോക്താവ് user5 ന് കൈമാറിയതിനാൽ എക്സിക്യൂട്ട് ചെയ്യില്ല.

REVOKE സ്റ്റേറ്റ്‌മെന്റ് ഉപയോഗിച്ച്, ഒരു നിർദ്ദിഷ്‌ട ഒബ്‌ജക്‌റ്റിൽ പ്രവർത്തിക്കുന്നതിന് മുമ്പ് നിയുക്തമാക്കിയ എല്ലാ അല്ലെങ്കിൽ ചില പ്രത്യേകാവകാശങ്ങളും നിങ്ങൾക്ക് അസാധുവാക്കാനാകും. അതേ സമയം, പ്രിവിലേജ് അസാധുവാക്കൽ ഓപ്പറേറ്ററുടെ വാക്യഘടനയുടെ വിവരണത്തിൽ നിന്ന്, ഒരേസമയം നിരവധി ഉപയോക്താക്കളിൽ നിന്നോ ഒരു മുഴുവൻ പൊതു ഗ്രൂപ്പിൽ നിന്നോ ഒരു ഓപ്പറേറ്റർ ഉപയോഗിച്ച് നിങ്ങൾക്ക് പ്രത്യേകാവകാശങ്ങൾ എടുത്തുകളയാൻ കഴിയുമെന്ന് വ്യക്തമാണ്.

അതിനാൽ, REVOKE ഓപ്പറേറ്ററുടെ ശരിയായ ഉപയോഗം ഇതായിരിക്കും:

ഉപയോക്താവ്2, user4 കാസ്‌കേഡ്

മറ്റ് വസ്തുക്കളുമായി പ്രവർത്തിക്കുമ്പോൾ, GRANT, REVOKE പ്രസ്താവനകളിൽ ഉപയോഗിക്കുന്ന പ്രവർത്തനങ്ങളുടെ ലിസ്റ്റ് മാറുന്നു.

ഡിഫോൾട്ടായി, സംഭരിച്ച ഒരു നടപടിക്രമം പ്രവർത്തിപ്പിക്കുന്നതിന് (എക്‌സിക്യൂഷൻ ചെയ്യുന്നതിന്) യോജിച്ച പ്രവർത്തനം PUBLIC ഗ്രൂപ്പിലെ എല്ലാ അംഗങ്ങൾക്കും നൽകിയിരിക്കുന്നു.

നിങ്ങൾക്ക് ഈ അവസ്ഥ മാറ്റണമെങ്കിൽ, സംഭരിച്ച നടപടിക്രമം സൃഷ്ടിച്ചതിന് ശേഷം നിങ്ങൾ ഒരു റിവോക്ക് സ്റ്റേറ്റ്മെന്റ് എഴുതണം

പബ്ലിക് കാസ്‌കേഡിലേക്ക്

ഇപ്പോൾ നിങ്ങൾക്ക് user4-ന് പുതിയ അവകാശങ്ങൾ നൽകാം

ഒരു നിശ്ചിത ഡാറ്റാബേസിൽ പട്ടികകൾ സൃഷ്‌ടിക്കാനും പരിഷ്‌ക്കരിക്കാനും ഒരു സിസ്റ്റം അഡ്മിനിസ്‌ട്രേറ്റർ ഒരു നിശ്ചിത ഉപയോക്താവിനെ അനുവദിച്ചേക്കാം. തുടർന്ന് അദ്ദേഹത്തിന് ഗ്രാന്റ് സ്റ്റേറ്റ്മെന്റ് ഇനിപ്പറയുന്ന രീതിയിൽ എഴുതാം:

ഗ്രാന്റ് ക്രിയേറ്റ് ടേബിൾ ആൾട്ടർ ടേബിൾ ഡ്രോപ്പ് ടേബിൾ

ഈ സാഹചര്യത്തിൽ, user1-ന് DB_LIB ഡാറ്റാബേസിൽ പട്ടികകൾ സൃഷ്‌ടിക്കാനോ പരിഷ്‌ക്കരിക്കാനോ ഇല്ലാതാക്കാനോ കഴിയും, എന്നാൽ ഈ ഡാറ്റാബേസിൽ ടേബിളുകൾ സൃഷ്‌ടിക്കാനോ പരിഷ്‌ക്കരിക്കാനോ മറ്റ് ഉപയോക്താക്കളെ അനുവദിക്കാൻ കഴിയില്ല, കാരണം അദ്ദേഹത്തിന് ഡെലിഗബിൾ അല്ലാത്ത അനുമതി ലഭിച്ചിട്ടുണ്ട്.

ചില DBMS-കളിൽ, ഒരു ഡാറ്റാബേസ് സൃഷ്ടിക്കാനുള്ള അവകാശം ഉപയോക്താവിന് നൽകിയേക്കാം. ഉദാഹരണത്തിന്, MS SQL സെർവറിൽ സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർഈ സെർവറിൽ സ്വന്തം ഡാറ്റാബേസ് സൃഷ്‌ടിക്കുന്നതിനുള്ള അവകാശം ഉപയോക്തൃ main_user-ന് നൽകാനാകും. ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിച്ച് ഇത് ചെയ്യാൻ കഴിയും:

ഗ്രാന്റ് സൃഷ്ടിക്കുക ഡാറ്റാബേസ്

ശ്രേണിയുടെ തത്വത്തെ അടിസ്ഥാനമാക്കി, ഉപയോക്താക്കൾക്ക് മെയിൻ_ഉപയോക്താവിന്, സ്വന്തമായി ഒരു ഡാറ്റാബേസ് സൃഷ്‌ടിച്ചതിനാൽ, മറ്റ് ഉപയോക്താക്കൾക്ക് ഈ ഡാറ്റാബേസിലെ ഏതെങ്കിലും ഒബ്‌ജക്റ്റുകൾ സൃഷ്‌ടിക്കാനോ മാറ്റാനോ ഉള്ള അവകാശങ്ങൾ ഇപ്പോൾ നൽകാനാകും.

സിംഗിൾ-ബേസ് ആർക്കിടെക്ചറിനെ പിന്തുണയ്ക്കുന്ന ഡിബിഎംഎസുകളിൽ, അത്തരം അനുമതികൾ അനുവദനീയമല്ല. ഉദാഹരണത്തിന്, Oracle DBMS-ൽ സെർവറിൽ ഒരു ഡാറ്റാബേസ് മാത്രമേ സൃഷ്ടിക്കപ്പെട്ടിട്ടുള്ളൂ, എന്നാൽ ഉപയോക്താക്കൾക്ക് സബ്‌സ്‌കീമ തലത്തിൽ പ്രവർത്തിക്കാൻ കഴിയും (ഡാറ്റാബേസ് പട്ടികകളുടെയും അനുബന്ധ ഒബ്‌ജക്റ്റുകളുടെയും ഭാഗം). അതിനാൽ, സിസ്റ്റം പ്രിവിലേജുകൾ എന്ന ആശയം അവിടെ അവതരിപ്പിക്കപ്പെടുന്നു. അവയിൽ ധാരാളം ഉണ്ട്, 80 വ്യത്യസ്ത പ്രത്യേകാവകാശങ്ങൾ.

ഈ ഡാറ്റാബേസിനുള്ളിൽ ഒബ്‌ജക്‌റ്റുകൾ സൃഷ്‌ടിക്കാൻ ഒരു ഉപയോക്താവിനെ അനുവദിക്കുന്നതിന്, ഒന്നോ അതിലധികമോ ഉപയോക്താക്കൾക്ക് അസൈൻ ചെയ്യാവുന്ന സിസ്റ്റം പ്രിവിലേജ് എന്ന ആശയം ഉപയോഗിക്കുന്നു. അവ പ്രവർത്തനങ്ങൾക്കും ഒരു പ്രത്യേക തരം ഒബ്‌ജക്റ്റിനും വേണ്ടി മാത്രമാണ് നൽകുന്നത്. അതിനാൽ, സിസ്റ്റം അഡ്‌മിനിസ്‌ട്രേറ്റർ ഉപയോക്താവിന് പട്ടികകൾ സൃഷ്‌ടിക്കാനുള്ള അവകാശം നൽകിയിട്ടുണ്ടെങ്കിൽ (പട്ടിക സൃഷ്‌ടിക്കുക), പട്ടികയ്‌ക്കായി ഒരു ട്രിഗർ സൃഷ്‌ടിക്കുന്നതിന്, അയാൾക്ക് മറ്റൊരു സിസ്റ്റം പ്രത്യേകാവകാശം നൽകണം ട്രിഗർ സൃഷ്‌ടിക്കുക. ഒറാക്കിളിലെ സംരക്ഷണ സംവിധാനം ഏറ്റവും ശക്തമായ ഒന്നായി കണക്കാക്കപ്പെടുന്നു, എന്നാൽ ഇതിന് ഒരു പോരായ്മയുണ്ട് - ഇത് വളരെ സങ്കീർണ്ണമാണ്. അതിനാൽ, ഒറാക്കിളിലെ അഡ്മിനിസ്ട്രേഷന്റെ ചുമതലയ്ക്ക് ആക്സസ് അവകാശങ്ങളെ പിന്തുണയ്ക്കുന്നതിനുള്ള തത്വങ്ങളുടെയും ഈ കഴിവുകളുടെ ഭൗതിക നിർവ്വഹണത്തിന്റെയും രണ്ട് അർത്ഥശാസ്ത്രത്തെക്കുറിച്ചും നല്ല അറിവ് ആവശ്യമാണ്.

റിക്ക് ഡോബ്സൺ, പിഎച്ച്.ഡി. S. A. ലെഡനേവിന്റെ സെലക്ടീവ് വിവർത്തനം

വിഷ്വൽ ബേസിക് ഫോർ ആപ്ലിക്കേഷനുകളിൽ (VBA) SQL ഡിസ്ട്രിബ്യൂട്ടഡ് മാനേജ്മെന്റ് ഒബ്ജക്റ്റ്സ് (SQL-DMO) ലൈബ്രറി ഉപയോഗിച്ച് ആക്സസ് ഉപയോഗിച്ച് SQL സെർവർ സുരക്ഷ എങ്ങനെ കൈകാര്യം ചെയ്യാമെന്ന് ഈ ലേഖനം വിശദീകരിക്കുന്നു.

ആമുഖം

ഈ ലേഖനം പ്രധാനമായും എഡിപി പ്രോജക്റ്റുകളുടെ ഡെവലപ്പർമാരെ ലക്ഷ്യം വച്ചുള്ളതാണ്. SQL സെർവർ സുരക്ഷയുമായി ബന്ധപ്പെട്ട 2 കാര്യങ്ങൾ നിങ്ങൾക്ക് പരിചിതമായിരിക്കാം. ഒന്നാമതായി, ജെറ്റിലെ പോലെ സുരക്ഷ ഒരു ഓപ്ഷനല്ല. രണ്ടാമതായി, SQL സെർവറിന്റെ സുരക്ഷാ മോഡൽ ആക്‌സസിന്റെ സുരക്ഷാ മോഡലിൽ നിന്ന് വ്യത്യസ്തമാണ്. SQL സെർവർ സുരക്ഷയെക്കുറിച്ച് നിങ്ങൾക്ക് ഏകദേശ ധാരണയുണ്ടെങ്കിൽപ്പോലും, നിങ്ങളുടെ പ്രോജക്റ്റിന്റെ ഉറവിടങ്ങൾ പരിരക്ഷിക്കുന്നതിന് അത് എങ്ങനെ ക്രമീകരിക്കാമെന്ന് ഈ ലേഖനം നിങ്ങളെ പഠിപ്പിക്കും.

ഈ ലേഖനം SQL സെർവർ അഡ്മിനിസ്ട്രേറ്റർമാർക്കും ഉപയോഗപ്രദമാകും. ആക്‌സസ് ഉപയോഗിച്ച് സെർവർ സുരക്ഷ നിയന്ത്രിക്കാൻ ഇവിടെ വാഗ്ദാനം ചെയ്യുന്ന പരിഹാരങ്ങൾ അവരെ സഹായിക്കും. എന്റർപ്രൈസ് മാനേജറിന്റെ ഗ്രാഫിക്കൽ ടൂളുകൾ ഉപയോഗിക്കാതെയോ ക്വറി അനലൈസറിൽ നിന്ന് ട്രാൻസാക്റ്റ് SQL (T-SQL) സ്‌ക്രിപ്റ്റുകൾ പ്രവർത്തിപ്പിക്കാതെയോ സെർവർ സുരക്ഷ എങ്ങനെ കൈകാര്യം ചെയ്യാമെന്ന് മനസിലാക്കാൻ ഈ ലേഖനം അഡ്മിനിസ്ട്രേറ്റർമാരെ സഹായിക്കും. ആക്‌സസ് ഉപയോഗിച്ച് സെർവർ സുരക്ഷ എങ്ങനെ നിയന്ത്രിക്കാമെന്ന് മനസിലാക്കുന്നതിലൂടെ, അഡ്‌മിനിസ്‌ട്രേറ്റർക്ക് വേഗത്തിലുള്ള പരിഹാരം സൃഷ്‌ടിക്കുന്നതിനുള്ള ഓപ്‌ഷനുണ്ട്.

സുരക്ഷയെക്കുറിച്ച് ലേഖനത്തെ രണ്ട് ഭാഗങ്ങളായി തിരിക്കാം SQL സെർവർ 7.0, എസ്‌ക്യുഎൽ സെർവർ 2000. എസ്‌ക്യുഎൽ സെർവർ സുരക്ഷ എന്ന ആശയത്തോടെയാണ് ഇത് ആരംഭിക്കുന്നത്, ആക്‌സസ് ഉപയോഗിച്ച് സുരക്ഷ എങ്ങനെ കൈകാര്യം ചെയ്യാം എന്നതിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നു. സെർവർ ഒബ്‌ജക്‌റ്റുകൾ ഉപയോഗിക്കുന്നതിനുള്ള അവകാശങ്ങൾ വ്യക്തമായി നിർവചിച്ചിട്ടുള്ള ഉപയോക്താക്കളുടെ വിവിധ ഗ്രൂപ്പുകളുള്ള മൾട്ടി-യൂസർ ആപ്ലിക്കേഷനുകൾ വികസിപ്പിക്കുന്നതിന് ഈ വിവരങ്ങൾ മതിയാകും. Microsoft Visual Basic® for Applications (VBA) ഉപയോഗിച്ച് SQL-DMO (SQL Distributed Management Objects) ഒബ്ജക്റ്റുകൾ കൈകാര്യം ചെയ്യുന്നതിനെ അടിസ്ഥാനമാക്കിയുള്ള സോഫ്റ്റ്‌വെയർ സൊല്യൂഷനുകൾ ലേഖനത്തിന്റെ രണ്ടാം ഭാഗം പ്രദർശിപ്പിക്കുന്നു. മൈക്രോസോഫ്റ്റ് ഓഫീസ് ഒബ്‌ജക്റ്റ് നിർമ്മാണ മോഡലിന് സമാനമായ ഒരു ശ്രേണിപരമായ ഒബ്‌ജക്റ്റ് നിർമ്മാണ മോഡൽ SQL-DMO-യ്‌ക്ക് ഉള്ളതിനാൽ, SQL-DMO ഒബ്‌ജക്റ്റുകൾ, പ്രോപ്പർട്ടികൾ, രീതികൾ, സുരക്ഷയെ സംബന്ധിച്ച ഇവന്റുകൾ എന്നിവയെക്കുറിച്ച് കൂടുതലറിയുക മാത്രമാണ് വേണ്ടത്. കൂടാതെ, ഡാറ്റാബേസ് സെക്യൂരിറ്റി മെനുവിൽ നിന്ന് ലഭ്യമല്ലാത്തതിനാൽ, ആക്‌സസ് 2002 പ്രോഗ്രാമർമാർക്ക് VBA-യിലെ സുരക്ഷാ കോൺഫിഗറേഷൻ ഫംഗ്‌ഷനുകൾ പ്രോഗ്രാം ചെയ്യാതെ ചെയ്യാൻ കഴിയില്ല.

SQL സെർവർ സുരക്ഷാ ആശയം

ഈ വിഭാഗത്തിൽ 4 പ്രധാന ഭാഗങ്ങൾ അടങ്ങിയിരിക്കുന്നു. ആമുഖം പ്രാമാണീകരണത്തിന്റെ ഒരു വിവരണത്തോടെ ആരംഭിക്കുന്നു - സെർവർ ഡാറ്റാബേസ് ആക്സസ് ചെയ്യുന്നതിനുള്ള അവകാശത്തിനായി ഒരു ഉപയോക്താവിനെ പരിശോധിക്കുന്ന പ്രക്രിയ. എന്റർപ്രൈസ് മാനേജർ ഉപയോഗിച്ച്, SQL സെർവർ രണ്ട് തരം പ്രാമാണീകരണം നൽകുന്നു. വിഭാഗത്തിന്റെ ആദ്യഭാഗം അവ തമ്മിലുള്ള വ്യത്യാസങ്ങളും സമാനതകളും കാണിക്കുന്നു.

അടുത്തതായി, സെർവറിലേക്ക് കണക്റ്റുചെയ്യാൻ സേവിക്കുന്ന ഒരു അംഗീകൃത ഉപയോക്താവിന്റെ ആശയത്തെക്കുറിച്ച് ഞങ്ങൾ സംസാരിക്കുന്നു. അംഗീകൃത ഉപയോക്താക്കളെ ലോഗിൻ എന്ന് വിളിക്കുന്നു. രണ്ട് തരം ലോഗിനുകൾ രണ്ട് SQL സെർവർ പ്രാമാണീകരണ മോഡലുകളുമായി പൊരുത്തപ്പെടുന്നു. സെർവറിലേക്കുള്ള ആക്സസ് അവകാശങ്ങൾക്ക് ലോഗിനുകൾ ഉത്തരവാദികളാണ്.

മൂന്നാം ഭാഗം ഉപയോക്താക്കളുടെ ആശയം അവതരിപ്പിക്കുന്നു. ഡാറ്റാബേസ് ഉപയോക്താക്കളെ വിശേഷിപ്പിക്കുന്ന ഒരു ആശയമായി SQL സെർവർ ഉപയോക്താക്കളുടെ ആശയം സംവരണം ചെയ്യുന്നു. സാധാരണഗതിയിൽ, ഒരു സെർവറിൽ നിരവധി ലോഗിനുകളുണ്ട്, ഓരോ ലോഗിനും നിരവധി ഉപയോക്താക്കളുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു - ലോഗിൻ ആക്സസ് ചെയ്യാൻ അനുവദിക്കുന്ന ഓരോ ഡാറ്റാബേസിനും ഒന്ന്. ലോഗിനുകളും ഉപയോക്താക്കളും ഒരു കൂട്ടം അനുമതികളെ വിവരിക്കുന്ന നിശ്ചിത റോളുകളിൽ ഉൾപ്പെടാം. യഥാക്രമം ഫിക്സഡ് സെർവർ റോളുകളിലും ഫിക്സഡ് ഡാറ്റാബേസ് റോളുകളിലും അംഗത്വം കൈകാര്യം ചെയ്യുന്നതിലൂടെ ലോഗിനുകളുടെയും ഉപയോക്താക്കളുടെയും പെരുമാറ്റം നിങ്ങൾക്ക് നിയന്ത്രിക്കാനാകും.

ഉപയോക്തൃ-നിർവചിച്ച ഡാറ്റാബേസ് റോളുകളെ കുറിച്ച് ഭാഗം 4 സംസാരിക്കുന്നു.

പ്രാമാണീകരണം

SQL സെർവറിന്റെയും ഉപയോക്താവുമായി ബന്ധപ്പെട്ട ചില ഡാറ്റാബേസിന്റെയും ഒരു സന്ദർഭത്തിൽ ഒരു ഉപയോക്താവിനെ അംഗീകരിക്കുന്ന പ്രക്രിയയാണ് പ്രാമാണീകരണം. സെർവറിലെ ഉപയോക്താവിന്റെ അവകാശങ്ങൾ വിവരിക്കുന്ന ഒരു ലോഗിനുമായി അംഗീകാരം ബന്ധപ്പെട്ടിരിക്കുന്നു. അധികാരം ഒരു കോട്ടയുടെ താക്കോൽ പോലെ പ്രവർത്തിക്കുന്നു. താക്കോൽ പൂട്ടിന് അനുയോജ്യമാണെങ്കിൽ, ആ ലോക്ക് ഉപയോഗിച്ച് വാതിൽ പൂട്ടിയ മുറിയിലെ എല്ലാ കാര്യങ്ങളിലേക്കും പ്രവേശനം നേടുന്നതിന് വ്യക്തി അത് ഉപയോഗിക്കുന്നു. ഒരു SQL സെർവറിന് സാധാരണയായി വ്യത്യസ്ത കീകളുള്ള നിരവധി ലോക്കുകൾ ഉണ്ട്. ഓരോ കീയും സെർവറിൽ സ്ഥിതി ചെയ്യുന്ന വ്യത്യസ്ത ഡാറ്റാബേസുകളിലേക്ക് ആക്സസ് നൽകുന്നു.

SQL സെർവർ രണ്ട് തരം പ്രാമാണീകരണത്തെ പിന്തുണയ്ക്കുന്നു: SQL സെർവർ, Microsoft Windows® (അല്ലെങ്കിൽ Windows NT® SQL സെർവർ 7.0 ഉള്ളത്). ഈ രണ്ട് തരങ്ങൾ ആരാണ് ലോഗിൻ പരിശോധന നടത്തുന്നതെന്ന് നിർണ്ണയിക്കുന്നു: SQL സെർവർ അല്ലെങ്കിൽ വിൻഡോസ്. വിൻഡോസ് ആധികാരികതയോടെ, ഉപയോക്താക്കൾ വിശ്വസിച്ചു അക്കൗണ്ടുകൾ SQL സെർവർ ആക്സസ് ചെയ്യാൻ. ഈ അക്കൗണ്ടുകൾ Windows പരിശോധിച്ചുറപ്പിച്ചതാണ്, എന്നാൽ SQL സെർവറിന് അക്കൗണ്ട് പേര് "അറിയാം". ഒരു പാസ്‌വേഡ് മാത്രം നൽകി വിൻഡോസിലേക്കും SQL സെർവറിലേക്കും ലോഗിൻ ചെയ്യാൻ വിൻഡോസ് പ്രാമാണീകരണം ഉപയോക്താക്കളെ അനുവദിക്കുന്നു. SQL സെർവർ പ്രാമാണീകരണം ഉപയോഗിച്ച്, SQL സെർവർ തന്നെ അംഗീകാരം നൽകുന്നു. ഏതെങ്കിലും തരത്തിലുള്ള ആധികാരികതയോടെ, SQL സെർവർ അംഗീകൃത ലോഗിനുകൾ അറിഞ്ഞിരിക്കണം.

ഒന്നും രണ്ടും തരത്തിൽ ഗുണങ്ങളും ദോഷങ്ങളുമുണ്ട്, എന്നാൽ വിൻഡോസ് പ്രാമാണീകരണമാണ് അഭികാമ്യം. വിൻഡോസിന് കൂടുതൽ സങ്കീർണ്ണമായ ഒരു അംഗീകാര നടപടിക്രമമുണ്ട്, കൂടാതെ ഇത് അക്കൗണ്ടുകൾ കൈകാര്യം ചെയ്യുന്നതിൽ നിന്ന് SQL സെർവർ അഡ്മിനിസ്ട്രേറ്ററെ മോചിപ്പിക്കുന്നു. മറുവശത്ത്, SQL സെർവറിനെ പിന്തുണയ്ക്കുന്ന എല്ലാ ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളും വിൻഡോസ് പ്രാമാണീകരണത്തെ പിന്തുണയ്ക്കുന്നില്ല. ഉദാഹരണത്തിന്, Microsoft Office 2000, Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) എന്നിവയ്‌ക്കൊപ്പം ഇൻസ്റ്റോൾ ചെയ്ത Microsoft Data Engine (MSDE) ഓഫീസ് XP-യിൽ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ട്: ഇവ രണ്ടും Windows 98-ൽ പ്രവർത്തിക്കും, അത് Windows പ്രാമാണീകരണത്തെ പിന്തുണയ്ക്കുന്നില്ല. അല്ലെങ്കിൽ Windows 95-ൽ പ്രവർത്തിക്കുന്ന SQL സെർവർ 7.0, MSDE എന്നിവ. കൂടുതൽ ആഗോള വിൻഡോസ് അഡ്മിനിസ്ട്രേറ്റർ തലത്തിലേക്കാൾ ഡിബിഎ തലത്തിൽ ഡാറ്റാബേസ് ഉറവിടങ്ങളിലേക്കുള്ള ആക്‌സസ് നിയന്ത്രിക്കാനുള്ള കഴിവ് ചില ഓർഗനൈസേഷനുകൾ തിരഞ്ഞെടുത്തേക്കാം.

ഏതൊരു SQL സെർവർ ഉദാഹരണത്തിനും എന്റർപ്രൈസ് മാനേജറിൽ സജ്ജീകരിക്കാൻ കഴിയുന്ന രണ്ട് പ്രാമാണീകരണ തരങ്ങളിൽ ഏതെങ്കിലും ഉണ്ടായിരിക്കാം (ഈ ലേഖനത്തിൽ ഞാൻ മൂന്നാമത്തെ തരം പിന്നീട് വിവരിക്കും). SQL സെർവർ ഡോക്യുമെന്റേഷൻ ഒരു SQL സെർവറിലേക്കുള്ള മിക്സഡ് മോഡ് കണക്ഷൻ എന്ന പദം നിർവചിക്കുന്നു, ഇത് വിൻഡോസ്, SQL സെർവർ പ്രാമാണീകരണത്തെ പിന്തുണയ്ക്കുന്നു. സെർവർ വിൻഡോസ് പ്രാമാണീകരണത്തെ മാത്രമേ പിന്തുണയ്ക്കുന്നുള്ളൂ എങ്കിൽ, സെർവറിന് ഒരു വിൻഡോസ് (അല്ലെങ്കിൽ വിൻഡോസ് എൻടി) പ്രാമാണീകരണ തരം ഉണ്ട്. സ്ഥിരസ്ഥിതിയായി, ഒരു മിക്സഡ് ആധികാരികത തരത്തിലാണ് MSDE ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്നത്. മറുവശത്ത്, MSDE 2000, സ്ഥിരസ്ഥിതിയായി വിൻഡോസ് ആധികാരികതയോടെ ഇൻസ്റ്റാൾ ചെയ്യുന്നു. എന്റർപ്രൈസ് മാനേജർ ഉപയോഗിക്കുന്ന ഡവലപ്പർമാർക്കും അഡ്മിനിസ്ട്രേറ്റർമാർക്കും ഗ്രാഫിക്കൽ ടൂളുകൾ ഉപയോഗിച്ച് പ്രാമാണീകരണ തരം മാറ്റാൻ കഴിയും. കൂടാതെ, സെർവർ പ്രാമാണീകരണ തരം മാറ്റാൻ ഏത് ആപ്ലിക്കേഷനും SQL-DMO ലൈബ്രറി ഉപയോഗിക്കാം.

ലോഗിനുകളും നിശ്ചിത സെർവർ റോളുകളും

എഡിപി പ്രോജക്റ്റിൽ പരമ്പരാഗത ജെറ്റ് സൊല്യൂഷനുകൾക്ക് സമാനമായ ഒരു ഡാറ്റാബേസ് വിൻഡോ അടങ്ങിയിരിക്കുന്നു. എന്നിരുന്നാലും, ഒരു ജെറ്റ് ഡാറ്റാബേസിൽ നിന്ന് വ്യത്യസ്തമായി ഒരു OLE DB കണക്ഷൻ വഴി ADP പ്രോജക്റ്റ് സെർവറിലേക്ക് കണക്ട് ചെയ്യുന്നു. ഒരു ADP പ്രോജക്റ്റിൽ, ലോഗിൻ തരം ഡാറ്റ ലിങ്ക് പ്രോപ്പർട്ടീസ് ഡയലോഗ് ബോക്സിൽ വ്യക്തമാക്കിയിരിക്കുന്നു. ഈ ഡയലോഗ് വിളിക്കാൻ: ഡാറ്റാബേസ് വിൻഡോയിൽ നിന്ന്, ഫയൽ മെനു തിരഞ്ഞെടുക്കുക, മെനുവിൽ നിന്ന് കണക്ഷൻ തിരഞ്ഞെടുക്കുക.

OLE DB വഴി പ്രോജക്റ്റ് കണക്റ്റുചെയ്യുന്ന ഡാറ്റാബേസ് സെർവർ, ലോഗിൻ, ഡാറ്റാബേസ് എന്നിവ തിരഞ്ഞെടുക്കാൻ കണക്ഷൻ ഓപ്ഷനുകൾ ഡയലോഗ് ബോക്സ് നിങ്ങളെ അനുവദിക്കുന്നു. സെർവറുമായി ബന്ധിപ്പിക്കുന്നതിന് രണ്ട് വഴികളുണ്ട്. ആദ്യ ഓപ്ഷൻ Windows NT സംയോജിത സുരക്ഷയുടെ ഉപയോഗം തിരഞ്ഞെടുക്കുന്നു. ഇതിനെ വിൻഡോസ് ഓതന്റിക്കേഷൻ എന്ന് വിളിക്കുന്നു. ഈ ഓപ്‌ഷൻ തിരഞ്ഞെടുക്കുന്നതിലൂടെ, നിങ്ങൾ ഒരു ലോഗിൻ, പാസ്‌വേഡ് എന്നിവ നൽകേണ്ടതില്ല. വിൻഡോസ് ആരംഭിക്കുമ്പോൾ വിൻഡോസ് ഉപയോക്താവിനെ അംഗീകരിക്കുന്നതിനാലാണിത്. ആന്തരിക സുരക്ഷ ഉപയോഗിക്കുന്നതിനുള്ള ഓപ്‌ഷൻ തിരഞ്ഞെടുക്കുമ്പോൾ, ADP പ്രൊജക്‌റ്റ് ഒരു OLE DB കണക്ഷൻ സൃഷ്‌ടിക്കാൻ ശ്രമിക്കുമ്പോൾ SQL സെർവറിലേക്ക് Windows ലോഗിൻ അയയ്‌ക്കുന്നു. രണ്ടാമത്തെ ഓപ്ഷൻ തിരഞ്ഞെടുക്കുന്നതിലൂടെ (ഒരു നിർദ്ദിഷ്ട ഉപയോക്തൃനാമവും പാസ്‌വേഡും ഉപയോഗിക്കുക), നിങ്ങൾ SQL സെർവർ ലോഗിൻ വ്യക്തമാക്കണം. ഉപയോക്തൃ നാമ ഫീൽഡിൽ, സാധാരണ SQL സെർവർ ലോഗിൻ നാമം നൽകണം - ഈ SQL സെർവർ പിന്തുണയ്ക്കുന്ന ലോഗിൻ. ഒരു പാസ്‌വേഡ് ഓപ്‌ഷണലാണ്, എന്നാൽ ഒരു പാസ്‌വേഡ് ഉപയോഗിക്കാൻ ശക്തമായി ശുപാർശ ചെയ്യുന്നു, കാരണം ലോഗിൻ ചെയ്യുന്നതിനൊപ്പം പാസ്‌വേഡ് ഒരു അധിക സുരക്ഷ നൽകുന്നു.

ഒരു ADP പ്രോജക്റ്റിൽ OLE DB കണക്ഷൻ സൃഷ്ടിക്കുമ്പോൾ ഒരു ലോഗിൻ നൽകുന്നത് പ്രധാനമാണ് എങ്കിലും, സെർവറിലോ ഡാറ്റാബേസിലോ എന്തെങ്കിലും ജോലികൾ ചെയ്യുന്നതിനുള്ള അവകാശങ്ങൾ നൽകാൻ ലോഗിൻ തന്നെ പര്യാപ്തമല്ല. നിശ്ചിത സെർവർ റോളുകളിൽ ലോഗിൻ അംഗത്വം എന്ന ആശയം ഉണ്ട്, ഇത് പുതിയ ഡാറ്റാബേസുകൾ സൃഷ്ടിക്കുക, ലോഗിനുകൾ കൈകാര്യം ചെയ്യുക തുടങ്ങിയ ചില സെർവർ പ്രവർത്തനങ്ങൾ നടത്താൻ ADP പ്രോജക്റ്റിനെ അനുവദിക്കുന്നു. ADP പ്രോജക്റ്റ് ബന്ധിപ്പിക്കുന്ന SQL സെർവറിന്റെ പതിപ്പിനെ ആശ്രയിച്ച്, ഏഴോ എട്ടോ നിശ്ചിത സെർവർ റോളുകൾ ഉണ്ട്. SQL സെർവർ 7.0, MSDE എന്നിവ ഏഴ് നിശ്ചിത സെർവർ റോളുകൾ നൽകുന്നു, അതേസമയം SQL സെർവർ 2000, MSDE 2000 എന്നിവ എട്ട് നൽകുന്നു. SQL സെർവർ ബുക്സ് ഓൺലൈനിൽ (BOL) ഫിക്സഡ് സെർവർ റോളുകളെക്കുറിച്ചുള്ള സമഗ്രമായ ഡോക്യുമെന്റേഷൻ അടങ്ങിയിരിക്കുന്നു, റോൾ അംഗത്വത്തിൽ നിന്ന് ലോഗിനുകൾ അസൈൻ ചെയ്യുന്നതിനും നീക്കം ചെയ്യുന്നതിനുമുള്ള T-SQL എക്സ്പ്രഷനുകൾ ഉൾപ്പെടെ. ഉദാഹരണത്തിന്, BOL-ന്റെ റോളുകൾ വിഭാഗം സ്ഥിരമായ സെർവർ ഫീൽഡുകളെക്കുറിച്ചും പട്ടികകൾ കാണുന്നതും എഴുതുന്നതും പോലുള്ള ഡാറ്റാബേസുകൾ ആക്‌സസ് ചെയ്യുന്നതിനുള്ള അനുബന്ധ അനുമതികളെക്കുറിച്ചും സംസാരിക്കുന്നു.

സ്ഥിരമായ സെർവർ റോൾ പേരുകളുടെ ദ്രുത അവലോകനവും അവയുടെ ഒരു ഹ്രസ്വ വിവരണവും ഇനിപ്പറയുന്ന പട്ടിക നൽകുന്നു. സ്ഥിരമായ സെർവർ റോൾ നെയിമുകളുടെ ഒരു ലിസ്റ്റ് ലഭിക്കുന്നതിന് നിങ്ങൾക്ക് sp_helpsrvrole സിസ്റ്റം സംഭരിച്ച നടപടിക്രമം പ്രവർത്തിപ്പിക്കാൻ കഴിയും. sp_srvrolepermission സിസ്റ്റം സംഭരിച്ച നടപടിക്രമം എക്സിക്യൂട്ട് ചെയ്യുന്നത് ഓരോ ഫിക്സഡ് സെർവർ റോളിനുമായുള്ള പ്രവർത്തനങ്ങളുടെ വിശദമായ ലിസ്റ്റ് പ്രദർശിപ്പിക്കുന്നു. SQL സെർവറിന്റെ 7.0, 2000 പതിപ്പുകളിലെ ഫിക്സഡ് സെർവർ റോളുകൾ തമ്മിൽ വ്യത്യാസങ്ങളുണ്ട്. ഉദാഹരണത്തിന്, SQL സെർവർ 2000-ൽ bulkadmin ഒരു പുതിയ റോളാണ്. കൂടാതെ, SQL സെർവർ 7.0-ലെ sysadmin റോളിന് മാത്രമേ DROP ഡാറ്റാബേസ് സ്റ്റേറ്റ്മെന്റ് ലഭ്യമായിരുന്നുള്ളൂ, കൂടാതെ SQL Server 2000 ഈ നടപടിക്രമം നടത്താൻ dbcreator റോളിലെ അംഗങ്ങളെ അനുവദിക്കുന്നു.

സ്ഥിരമായ സെർവർ റോൾ നാമം

നിശ്ചിത സെർവർ റോളിന്റെ വിവരണം

sysadmin ഏതെങ്കിലും സെർവർ അല്ലെങ്കിൽ ഡാറ്റാബേസ് എക്സ്പ്രഷൻ എക്സിക്യൂട്ട് ചെയ്യുക
സെർറാഡ്മിൻ സെർവർ അഡ്മിനിസ്ട്രേഷൻ, കോൺഫിഗറേഷൻ, ആരംഭിക്കുക, നിർത്തുക.
സെറ്റുപാഡ്മിൻ ലിങ്ക് ചെയ്ത സെർവറുകളുടെ അഡ്മിനിസ്ട്രേഷനും സെർവർ സ്റ്റാർട്ടപ്പ് ഘട്ടത്തിൽ സംഭരിച്ച നടപടിക്രമങ്ങൾ പ്രവർത്തിപ്പിക്കാനുള്ള അവകാശവും.
സെക്യൂരിറ്റി അഡ്‌മിൻ ലോഗിനുകളുടെയും പാസ്വേഡുകളുടെയും മാനേജ്മെന്റ്. പുതിയ ഡാറ്റാബേസുകൾ സൃഷ്ടിക്കാനുള്ള അവകാശം നൽകിയേക്കാം.
പ്രോസസ്സ്അഡ്മിൻ KILL കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുന്നു.
dbcreator ഡാറ്റാബേസുകൾ സൃഷ്ടിക്കുന്നു, മാറ്റുന്നു, പേരുമാറ്റുന്നു, ഇല്ലാതാക്കുന്നു.
ഡിസ്കാഡ്മിൻ ഡിസ്കിൽ ഫയലുകൾ കൈകാര്യം ചെയ്യുന്നു.
ബൾകാഡ്മിൻ ബൾക്ക് ഇൻസേർട്ട് സ്റ്റേറ്റ്‌മെന്റുകൾ നടപ്പിലാക്കുന്നു.

sa ലോഗിൻ ഒരു പ്രത്യേക SQL സെർവർ ലോഗിൻ ആണ്. ഈ ലോഗിൻ sysadmin ഗ്രൂപ്പിലെ അംഗമാണ് കൂടാതെ സെർവറിൽ ഏതെങ്കിലും പ്രവർത്തനങ്ങൾ നടത്താനുള്ള അവകാശം നൽകുന്നു. ഇൻസ്റ്റാളേഷൻ സമയത്ത് SQL സെർവർ ഈ ലോഗിൻ സൃഷ്ടിക്കുന്നു, അത് ഇല്ലാതാക്കാൻ കഴിയില്ല. ഇൻസ്റ്റാളേഷൻ പൂർത്തിയായ ഉടൻ, sa ലോഗിൻ ഒരു പാസ്‌വേഡ് ഇല്ല. നിങ്ങളുടെ ഡാറ്റാബേസ് സെർവറിന്റെ, പ്രത്യേകിച്ച് മിക്സഡ് ഓതന്റിക്കേഷൻ തരങ്ങളുള്ള സെർവറുകളുടെ സുരക്ഷ ഉറപ്പാക്കാൻ sa-യ്ക്ക് ഒരു പാസ്‌വേഡ് സജ്ജീകരിക്കേണ്ടത് ആവശ്യമാണ്. ഓർക്കുക: വിൻഡോസ് ആധികാരികതയുള്ള സെർവറുകൾ SQL സെർവർ ലോഗിനുകൾ സ്വീകരിക്കുകയോ പ്രോസസ്സ് ചെയ്യുകയോ ചെയ്യുന്നില്ല.

Windows 98 അല്ലെങ്കിൽ Windows ME-യിൽ SQL സെർവർ ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ, സെർവർ എല്ലായ്പ്പോഴും ഒരു മിക്സഡ് ഓതന്റിക്കേഷൻ തരത്തിലാണ് ഇൻസ്റ്റാൾ ചെയ്യുന്നത്, അതിനാൽ ഇതിന് SQL സെർവർ ലോഗിനുകൾ സ്വീകരിക്കാൻ കഴിയും. Windows 2000, Windows NT എന്നിവയിൽ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുള്ള SQL സെർവർ 2000, MSDE 2000 എന്നിവയിൽ നിന്ന് SQL സെർവർ 7.0, MSDE എന്നിവയ്‌ക്കായി സ്ഥിരസ്ഥിതി പ്രാമാണീകരണ തരങ്ങൾ വ്യത്യാസപ്പെട്ടിരിക്കുന്നു. SQL സെർവർ 7.0, MSDE എന്നിവയ്‌ക്കായി, ഡിഫോൾട്ട് ഇൻസ്റ്റാളേഷൻ പ്രക്രിയ ഒരു മിക്സഡ് ആധികാരികത തരത്തിൽ സെർവറിനെ ഇൻസ്റ്റാൾ ചെയ്യുന്നു. വിപരീതമായി, SQL സെർവർ 2000, MSDE 2000 എന്നിവ സ്ഥിരസ്ഥിതിയായി വിൻഡോസ് ആധികാരികതയോടെ ഇൻസ്റ്റാൾ ചെയ്തിട്ടുണ്ട്. കൂടാതെ, പതിപ്പ് 2000 ഇൻസ്റ്റാളേഷൻ പ്രക്രിയ വിൻഡോസ് അഡ്മിനിസ്ട്രേറ്റേഴ്സ് ഗ്രൂപ്പിലെ അംഗങ്ങളെ sysadmin ഫിക്സഡ് സെർവർ റോളിലേക്ക് അസൈൻ ചെയ്യുന്നു. അതിനാൽ, ഈ ലോഗിനുകൾ സെർവറിന് മേൽ പൂർണ്ണ നിയന്ത്രണമുള്ള sa ലോഗിന് സമാനമാണ്.

ഉപയോക്താക്കളും സ്ഥിരമായ ഡാറ്റാബേസ് റോളുകളും

സാധാരണഗതിയിൽ, ഒന്നോ അതിലധികമോ ഡാറ്റാബേസുകളിൽ പ്രവർത്തിക്കാൻ ഉപയോക്താക്കൾ SQL സെർവർ ആക്സസ് ചെയ്യുന്നു. ഈ ആവശ്യത്തിനായി, ഡാറ്റാബേസുകളുമായി ലോഗിനുകൾ പൊരുത്തപ്പെടുത്തുന്നതിനുള്ള ഒരു സംവിധാനം SQL സെർവറിനുണ്ട്. ഒരു SQL സെർവറിന് ഒന്നോ അതിലധികമോ ലോഗിനുകൾ ഉള്ളതുപോലെ, ഓരോ ലോഗിനും അതുമായി ബന്ധപ്പെട്ട ഒന്നോ അതിലധികമോ അക്കൗണ്ടുകൾ ഉണ്ടായിരിക്കും. എന്നിരുന്നാലും, ഒരു അക്കൗണ്ട് ഒരു ലോഗിൻ (രണ്ട് ഒഴിവാക്കലുകളോടെ) മാത്രം യോജിക്കുന്നു. SQL സെർവർ ഡോക്യുമെന്റേഷൻ അക്കൗണ്ടുകളെ ഡാറ്റാബേസ് ഉപയോക്താക്കളായി (അല്ലെങ്കിൽ ഉപയോക്താക്കൾ) നിർവചിക്കുന്നു. ഓരോ ഡാറ്റാബേസ് ഉപയോക്താവിനും ഈ ഡാറ്റാബേസിലേക്ക് ആക്സസ് ഉണ്ട്.

എസ്‌ക്യുഎൽ സെർവറിന് ഡാറ്റാബേസ് ഉപയോക്താക്കൾക്ക് ഡാറ്റാബേസിന്റെ ഉടമസ്ഥാവകാശവും ഡാറ്റാബേസ് ഒബ്‌ജക്റ്റുകൾ ഉപയോഗിക്കാനുള്ള അനുമതിയും നൽകാൻ കഴിയും. SQL സെർവർ രണ്ട് സ്വതന്ത്ര തലങ്ങളിൽ ഡാറ്റാബേസിനുള്ളിൽ അനുമതി അസൈൻമെന്റ് നൽകുന്നു. ആദ്യ തലത്തിൽ, നിങ്ങൾക്ക് ഒരു ഉപയോക്താവിന് ഒന്നോ അതിലധികമോ അനുമതി ക്ലസ്റ്ററുകൾ നൽകാം. SQL സെർവർ ഡോക്യുമെന്റേഷൻ ഈ ക്ലസ്റ്ററുകളെ നിശ്ചിത ഡാറ്റാബേസ് റോളുകളായി നിർവചിക്കുന്നു. പല ഡാറ്റാബേസ് ഒബ്‌ജക്റ്റുകളിലും അനുമതികൾ സംയോജിപ്പിക്കാൻ കഴിയുന്നതിനാൽ ഞാൻ അവയെ പെർമിഷൻ ക്ലസ്റ്ററുകൾ എന്ന് വിളിക്കുന്നു. ഉദാഹരണത്തിന്, ഒരു നിശ്ചിത റോൾ (db_datareader) നിങ്ങളെ ഡാറ്റാബേസിലെ ഏത് ടേബിളിൽ നിന്നും ഡാറ്റ വായിക്കാൻ അനുവദിക്കുന്നു-ഒന്നോ രണ്ടോ നിർദ്ദിഷ്ട പട്ടികകൾ മാത്രമല്ല. രണ്ടാമത്തെ ലെവലിൽ, നിർദ്ദിഷ്ട ഡാറ്റാബേസ് ഒബ്ജക്റ്റുകളുടെ തലത്തിൽ നിങ്ങൾക്ക് അനുമതികൾ നൽകാം. രണ്ട് രീതികളും സംയോജിപ്പിക്കാൻ SQL സെർവർ നിങ്ങളെ അനുവദിക്കുന്നു: ഒരു ഉപയോക്താവിന് ഒന്നോ അതിലധികമോ സ്ഥിരമായ ഡാറ്റാബേസ് റോളുകളിൽ അംഗമാകാം കൂടാതെ നിർദ്ദിഷ്ട ഡാറ്റാബേസ് ഒബ്‌ജക്റ്റുകളിൽ പ്രത്യേക അനുമതികളും ഉണ്ടായിരിക്കും. അടുത്ത വിഭാഗത്തിൽ നിർദ്ദിഷ്ട ഡാറ്റാബേസ് ഒബ്‌ജക്‌റ്റുകളുടെ മാനേജിംഗ് അനുമതികൾ ഞാൻ കവർ ചെയ്യും.

രണ്ട് പ്രത്യേക ഉപയോക്താക്കൾക്ക് ഒന്നിൽ കൂടുതൽ ലോഗിൻ ചെയ്യാൻ കഴിയും. ഇവരാണ് dbo, അതിഥി ഉപയോക്താക്കൾ. dbo ഉപയോക്താവ് sysadmin ഫിക്സഡ് സെർവർ റോളിലെ അംഗമാണ്, കൂടാതെ സെർവറിൽ ഡാറ്റാബേസുകളോ ഡാറ്റാബേസ് ടേബിളുകളോ പോലുള്ള ഒബ്ജക്റ്റുകൾ സൃഷ്ടിക്കാൻ കഴിയും. sysadmin ഫിക്സഡ് സെർവർ റോളിൽ ഉൾപ്പെടാത്ത ഒരു ഉപയോക്താവിന് പട്ടികകൾ പോലുള്ള ഡാറ്റാബേസ് ഒബ്ജക്റ്റുകളും സൃഷ്ടിക്കാൻ കഴിയും.

ADP പ്രോജക്റ്റ് ഡാറ്റാബേസ് വിൻഡോയിലെ ഒബ്‌ജക്റ്റുകളുടെ ദൃശ്യപരത, പ്രോജക്റ്റ് ലോഗിൻ sysadmin ഫിക്സഡ് സെർവർ റോളിന്റേതാണോ എന്നതിനെ ആശ്രയിച്ചിരിക്കുന്നു. ADP പ്രോജക്റ്റ് ലോഗിൻ sysadmin റോളിലെ അംഗമാണെങ്കിൽ, ഡാറ്റാബേസ് വിൻഡോ dbo ഉപയോക്താവിന്റെ ഉടമസ്ഥതയിലുള്ള എല്ലാ ഒബ്ജക്റ്റുകളും അവയുടെ പേരുകൾക്ക് ശേഷം പരാൻതീസിസുകളില്ലാതെ പ്രദർശിപ്പിക്കുന്നു. dbo ഉപയോക്താക്കൾക്ക്, dbo ഒഴികെയുള്ള ഉപയോക്താക്കളുടെ ഉടമസ്ഥതയിലുള്ള എല്ലാ ഒബ്ജക്റ്റുകളും ഡാറ്റാബേസ് ഒബ്‌ജക്റ്റ് നാമത്തിന് ശേഷം പരാൻതീസിസിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന ഉപയോക്തൃനാമത്തിൽ കാണിക്കുന്നു. ADP പ്രോജക്റ്റ് ലോഗിൻ sysadmin റോളിൽ ഉൾപ്പെടുന്നില്ലെങ്കിൽ, ഈ ഉപയോക്താവിന്റെ ഉടമസ്ഥതയിലുള്ള ഒബ്‌ജക്റ്റുകളുടെ പേരുകൾ ഡാറ്റാബേസ് വിൻഡോയിൽ പരാൻതീസിസുകളില്ലാതെ കാണിക്കും. dbo ഉടമസ്ഥതയിലുള്ള ഒബ്‌ജക്‌റ്റുകളുടെ പേരുകൾ സഫിക്‌സ് (dbo) ഉപയോഗിച്ച് കാണിക്കുന്നു. ADP പ്രോജക്റ്റ് ലോഗിൻ അല്ലെങ്കിൽ dbo ഉപയോക്താവ് അല്ലാത്ത ഒബ്ജക്റ്റുകൾ ഡാറ്റാബേസ് വിൻഡോയിൽ കാണിക്കില്ല.

മിക്ക ലോഗിനുകൾക്കും അവർക്ക് ആക്‌സസ് ഉള്ള ഓരോ ഡാറ്റാബേസിനും ഉപയോക്താക്കളുണ്ട്. എന്നിരുന്നാലും, ഡാറ്റാബേസിന് ഒരു സമർപ്പിത ഉപയോക്താവുണ്ടെങ്കിൽ, ആ ഡാറ്റാബേസിൽ ഒരു ഉപയോക്താവില്ലാതെ പോലും ഒരു ലോഗിൻ ഒരു ഡാറ്റാബേസ് ആക്സസ് ചെയ്യാൻ കഴിയും. ഈ ഉപയോക്താവിന്റെ പേര് അതിഥിയാണ്, ഇത് ഡാറ്റാബേസ് അക്കൗണ്ടുകളില്ലാതെ ലോഗിൻ ചെയ്യുന്നതിനുള്ള ഒരു ഉപയോക്താവാണ്. അതിഥി ഉപയോക്താവ് ഒരു ലോഗിനുമായും ബന്ധപ്പെട്ടിട്ടില്ല. ഡാറ്റാബേസിലെ മറ്റേതൊരു ഉപയോക്താവിനെയും പോലെ അതിഥി ഉപയോക്താവിനും നിങ്ങൾക്ക് അനുമതികൾ നൽകാം. ഒരു നിർദ്ദിഷ്‌ട ഡാറ്റാബേസിൽ നിർദ്ദിഷ്‌ട ഉപയോക്താക്കളില്ലാത്ത ലോഗിനുകൾക്കുള്ള അവകാശങ്ങൾ കോൺഫിഗർ ചെയ്യാൻ ഇത് നിങ്ങളെ അനുവദിക്കുന്നു.

sysadmin ഫിക്സഡ് സെർവർ റോളിലെ അംഗങ്ങൾക്ക് സെർവറിലെ ഏത് ഡാറ്റാബേസിലും അനിയന്ത്രിതമായ അവകാശങ്ങളുണ്ട്. അതിനാൽ, ഡാറ്റാബേസിന് ഉപയോക്താക്കളില്ലെങ്കിലും ഈ റോളിലെ അംഗങ്ങൾക്ക് ഡാറ്റാബേസ് ആക്സസ് ചെയ്യാൻ കഴിയും.

ഒരു ഡാറ്റാബേസിൽ ഫംഗ്‌ഷനുകൾ നിർവ്വഹിക്കുന്നതിനുള്ള ഒരു ഉപയോക്തൃ അവകാശം അനുവദിക്കുന്നതിനുള്ള ഏറ്റവും വേഗതയേറിയതും എളുപ്പമുള്ളതുമായ മാർഗ്ഗം ഉപയോക്താവിനെ നിശ്ചിത ഡാറ്റാബേസ് റോളുകളിലെ അംഗത്തിന് നിയോഗിക്കുക എന്നതാണ്. SQL സെർവറിൽ ഒമ്പത് നിശ്ചിത ഡാറ്റാബേസ് റോളുകൾ ഉണ്ട്, അവ SQL സെർവർ 7.0, SQL സെർവർ 2000 എന്നിവയ്ക്ക് സമാനമാണ്. സ്ഥിരമായ ഡാറ്റാബേസ് റോളുകളുടെ പേരുകളും ഹ്രസ്വ വിവരണങ്ങളും ഇനിപ്പറയുന്ന പട്ടികയിൽ കാണിച്ചിരിക്കുന്നു. സ്ഥിരമായ ഡാറ്റാബേസ് റോൾ നെയിമുകളുടെ ഒരു ലിസ്റ്റ് ലഭിക്കുന്നതിന് നിങ്ങൾക്ക് sp_helpdbfixedrole സിസ്റ്റം സംഭരിച്ച നടപടിക്രമം പ്രവർത്തിപ്പിക്കാൻ കഴിയും. sp_dbfixedrolepermission സിസ്റ്റം സംഭരിച്ച നടപടിക്രമം വിളിക്കുന്നത് ഓരോന്നിനും പ്രത്യേക അനുമതികളുള്ള ഒരു പട്ടിക സെറ്റ് നൽകും നിശ്ചിത പങ്ക്ഡാറ്റാബേസ്.

സ്ഥിരമായ ഡാറ്റാബേസ് റോൾ നാമം

സ്ഥിരമായ ഡാറ്റാബേസ് റോളിന്റെ വിവരണം

db_owner ഡാറ്റാബേസിൽ പരിധിയില്ലാത്ത അനുമതികൾ.
db_accessadmin ഡാറ്റാബേസ് ഉപയോക്താക്കളെ ചേർക്കുന്നതിനും നീക്കം ചെയ്യുന്നതിനും.
db_datareader ഡാറ്റാബേസ് പട്ടികകളിൽ നിന്നും കാഴ്ചകളിൽ നിന്നും വായിക്കുന്നതിന്.
db_datawriter ഡാറ്റാബേസ് പട്ടികകളുടെയും കാഴ്‌ചകളുടെയും റെക്കോർഡുകൾ ചേർക്കുന്നതിനും (ഇൻസേർട്ട്), എഡിറ്റ് ചെയ്യുന്നതിനും (അപ്‌ഡേറ്റ് ചെയ്യുന്നതിനും) ഇല്ലാതാക്കുന്നതിനും (ഇല്ലാതാക്കുക).
db_ddladmin ഒരു ഡാറ്റാബേസിൽ ഏതെങ്കിലും SQL ഡാറ്റ ഡെഫനിഷൻ ലാംഗ്വേജ് സ്റ്റേറ്റ്മെന്റ് (അല്ലെങ്കിൽ ഒരു GUI ഉപയോഗിച്ച് ഈ പ്രവർത്തനങ്ങൾ നടത്തുക) എക്സിക്യൂട്ട് ചെയ്യാൻ.
db_securityadmin ഉപയോക്തൃ റോൾ അംഗത്വം, ഒബ്ജക്റ്റ് ആക്സസ് അനുമതി, ഡാറ്റാബേസ് ഉടമസ്ഥത എന്നിവ നിയന്ത്രിക്കുന്നതിന്.
db_backupoperator ബാക്കപ്പ് പകർപ്പുകൾ സൃഷ്ടിക്കുന്നതിനും (ബാക്കിംഗ്) അവയിൽ നിന്ന് പുനഃസ്ഥാപിക്കുന്നതിനും (പുനഃസ്ഥാപിക്കുന്നു) ഡാറ്റാബേസുകൾ.
db_denydatareader ഒരു നിർദ്ദിഷ്‌ട ഡാറ്റാബേസ് ഒബ്‌ജക്‌റ്റിൽ നിന്ന് ഏതെങ്കിലും SELECT ചെയ്യാനുള്ള അനുമതി നിരസിക്കാൻ (അല്ലെങ്കിൽ അസാധുവാക്കുക).
db_denydatawriter ഒരു നിർദ്ദിഷ്‌ട ഡാറ്റാബേസ് ഒബ്‌ജക്‌റ്റിൽ നടത്തുന്ന ഏതെങ്കിലും ഇൻസേർട്ട്, അപ്‌ഡേറ്റ് അല്ലെങ്കിൽ ഡിലീറ്റ് സ്റ്റേറ്റ്‌മെന്റിന്റെ അനുമതി നിരസിക്കാൻ (അല്ലെങ്കിൽ അസാധുവാക്കുക).

നിശ്ചിത ഡാറ്റാബേസ് റോളുകളിലേക്ക് ഉപയോക്താക്കളെ നിയോഗിക്കുന്നത് ഉപയോക്താക്കൾക്ക് നിർവഹിക്കാൻ കഴിയുന്ന പ്രവർത്തനങ്ങളെ ബാധിക്കുന്നു. നിർദ്ദിഷ്ട ഡാറ്റാബേസ് ഒബ്‌ജക്റ്റുകളിൽ ഉപയോക്താവിന് അനുമതികൾ നൽകിക്കൊണ്ട് ഒരു നിശ്ചിത ഡാറ്റാബേസ് റോളിൽ ഒരു ഉപയോക്താവിന്റെ അംഗത്വത്തിന്റെ സ്വാധീനം മാറ്റാൻ സാധിക്കും. ലാളിത്യത്തിനായി, ഈ വിഭാഗം ഇത് ഉൾക്കൊള്ളുന്നില്ല, എന്നാൽ അടുത്ത വിഭാഗത്തിൽ നിർദ്ദിഷ്ട ഒബ്‌ജക്‌റ്റുകൾക്കും ഉപയോക്തൃ നിർവചിച്ച ഡാറ്റാബേസ് റോളുകൾക്കും അനുമതികൾ നൽകുന്നത് ഉൾക്കൊള്ളുന്നു. ADP പ്രോജക്റ്റ് ലോഗിൻ ചെയ്യുന്നതിനുള്ള ഉപയോക്താവ് db_datareader ഫിക്സഡ് ഡാറ്റാബേസ് റോളിൽ അംഗമല്ലെങ്കിൽ ഡാറ്റാബേസ് വിൻഡോ പട്ടികകളൊന്നും കാണിക്കില്ല. db_backupoperator റോളിൽ അംഗത്വമില്ലാത്ത ഒരു ഉപയോക്താവിന് ബാക്കപ്പ് അല്ലെങ്കിൽ റീസ്റ്റോർ മെനു കമാൻഡുകൾ (ടൂൾസ് മെനു, ഡാറ്റാബേസ് യൂട്ടിലിറ്റീസ് ഉപമെനു) എക്സിക്യൂട്ട് ചെയ്യാൻ കഴിയില്ല. അതനുസരിച്ച്, db_ddladmin ഫിക്സഡ് ഡാറ്റാബേസ് റോളിൽ അംഗങ്ങളല്ലാത്ത ഉപയോക്താക്കൾക്ക് ഡാറ്റാബേസിൽ പട്ടികകളോ മറ്റ് ഒബ്ജക്റ്റുകളോ സൃഷ്ടിക്കാൻ കഴിയില്ല. ഡാറ്റാബേസ് വിൻഡോ ഉപയോഗിച്ച്, db_ddladmin റോളിൽ അംഗത്വമില്ലാത്ത ഒരു ഉപയോക്താവിന് പട്ടികകളും കാഴ്ചകളും പോലുള്ള സെർവർ ഒബ്‌ജക്റ്റുകൾ എഡിറ്റുചെയ്യാനോ പുതിയവ സൃഷ്‌ടിക്കാനോ കഴിയും; എന്നിരുന്നാലും, എഡിറ്റുചെയ്‌തതും സൃഷ്‌ടിച്ചതുമായ ഒബ്‌ജക്റ്റുകൾ ഡാറ്റാബേസിൽ സംരക്ഷിക്കില്ല.

db_owner ഫിക്സഡ് ഡാറ്റാബേസ് റോളിലെ അംഗങ്ങൾക്ക് മറ്റേതെങ്കിലും ഡാറ്റാബേസ് റോളിൽ അംഗത്വം നൽകുന്ന എല്ലാ പ്രവർത്തനങ്ങളും നിർവഹിക്കാൻ കഴിയും. ഈ റോളിലെ ലോഗിനുകൾക്ക് sysadmin ഫിക്സഡ് സെർവർ റോളിൽ അംഗത്വമില്ലാതെ ഡാറ്റാബേസുകൾ സൃഷ്ടിക്കാൻ കഴിയുമെന്നതിനാൽ, db_owner ഗ്രൂപ്പിലെ അംഗങ്ങൾ dbo ഉപയോക്താക്കളായിരിക്കേണ്ടതില്ല. തുടർന്ന്, sysadmin ഫിക്സഡ് സെർവർ റോളിലെ അംഗങ്ങൾക്ക് db_owner ഗ്രൂപ്പിലെ അംഗത്തിന് ചെയ്യാൻ കഴിയുന്ന ഏത് പ്രവർത്തനങ്ങളും ഡാറ്റാബേസിൽ നിർവഹിക്കാൻ കഴിയും. കൂടാതെ, sysadmin ഫിക്സഡ് സെർവർ റോളിൽ അംഗങ്ങളല്ലാത്ത db_owner റോളിലെ അംഗങ്ങൾ സൃഷ്ടിച്ച ടേബിളുകളുമായും കാഴ്ചകളുമായും താരതമ്യപ്പെടുത്തുമ്പോൾ dbo ഉപയോക്താവ് സൃഷ്ടിച്ച പട്ടികകൾക്കും കാഴ്ചകൾക്കും ദൃശ്യപരത മെച്ചപ്പെട്ടിട്ടുണ്ട്.

ഉപയോക്താവ് നിർവചിച്ച ഡാറ്റാബേസ് റോളുകളും അനുമതി അസൈൻമെന്റുകളും

SQL സെർവർ സെക്യൂരിറ്റി സ്പെസിഫിക്കേഷൻ നിർദ്ദിഷ്ട ഡാറ്റാബേസ് ഒബ്ജക്റ്റുകൾക്ക് ആറ് തരത്തിലുള്ള അനുമതികൾ അനുവദിക്കുന്നു. ഉപയോക്താവ് നിർവചിച്ച ഡാറ്റാബേസ് റോളുകൾ സൃഷ്ടിച്ച് ഈ ഗ്രൂപ്പുകളിലേക്ക് ഉപയോക്താക്കളെ ചേർക്കുന്നതിലൂടെ നിർദ്ദിഷ്ട ഒബ്‌ജക്‌റ്റുകൾ ആക്‌സസ് ചെയ്യുന്നതിനുള്ള അനുമതി ഡാറ്റാബേസ് അഡ്മിനിസ്ട്രേറ്റർമാർക്ക് സജ്ജമാക്കാൻ കഴിയും. ആ റോളുകളിലെ നിർദ്ദിഷ്ട ഒബ്‌ജക്‌റ്റുകൾക്ക് അവർക്ക് അനുമതികൾ നൽകാനാകും. ഈ പ്രത്യേക റോളുകളിലെ എല്ലാ അംഗങ്ങൾക്കും ആ റോളുകളുടെ അനുമതികൾ അവകാശമായി ലഭിക്കുന്നു. ഡാറ്റാബേസ് അഡ്‌മിനിസ്‌ട്രേറ്റർമാർക്ക് റോളുകൾ സൃഷ്‌ടിച്ചതിന് ശേഷം ഉപയോക്താക്കളെ ചേർക്കാനും നീക്കം ചെയ്യാനും റോളുകൾക്കുള്ള അനുമതികൾ മാറ്റാനും കഴിയും.

ആറ് ഒബ്ജക്റ്റ് അനുമതി നാമങ്ങളും അവയുടെ വിവരണങ്ങളും ഇനിപ്പറയുന്ന പട്ടികയിൽ കാണിച്ചിരിക്കുന്നു. നിർദ്ദിഷ്ട ഡാറ്റാബേസ് ഒബ്‌ജക്‌റ്റുകൾക്ക് ഈ അനുമതികൾ നിങ്ങൾക്ക് നൽകാം. എല്ലാ ഒബ്‌ജക്‌റ്റുകൾക്കും അനുമതി നൽകണമെങ്കിൽ, ഓരോ ഡാറ്റാബേസ് ഒബ്‌ജക്‌റ്റിനും നിങ്ങൾ അനുമതി നൽകണം. എന്നിരുന്നാലും, എല്ലാ ഡാറ്റാബേസ് ഒബ്‌ജക്‌റ്റുകൾക്കും നിങ്ങൾക്ക് അനുമതി നൽകണമെങ്കിൽ നിശ്ചിത ഡാറ്റാബേസ് റോളുകൾ ഉപയോഗിക്കുന്നതാണ് നല്ലത്. ഉദാഹരണത്തിന്, എല്ലാ പട്ടികകൾക്കും കാഴ്‌ചകൾക്കും (ഇതുവരെ സൃഷ്‌ടിച്ചിട്ടില്ലാത്തവ ഉൾപ്പെടെ) SELECT അനുമതി നൽകാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, ഉപയോക്താവിനെ db_datareader ഫിക്സഡ് ഡാറ്റാബേസ് റോളിലേക്ക് അസൈൻ ചെയ്യുന്നത് എളുപ്പമാണ്. നിലവിലുള്ള ഒന്നോ രണ്ടോ കാഴ്‌ചകളിൽ മാത്രം SELECT അനുമതി പരിമിതപ്പെടുത്തുക എന്നതാണ് നിങ്ങളുടെ ലക്ഷ്യമെങ്കിൽ, ഒരു ഉപയോക്തൃ-നിർവചിച്ച ഡാറ്റാബേസ് റോൾ സൃഷ്‌ടിക്കുക, ആ കാഴ്‌ചകൾക്ക് SELECT അനുമതി നൽകുക, പ്രത്യേക അനുമതികൾ നൽകേണ്ട ഉപയോക്താക്കളെ ആ റോളിൽ ഉൾപ്പെടുത്തുക.

അനുമതിയുടെ പേര്

അനുമതിയുടെ വിവരണം

തിരഞ്ഞെടുക്കുക ഒരു പട്ടികയിൽ റെക്കോർഡുകൾ കാണുക അല്ലെങ്കിൽ കാണുക.
തിരുകുക ഒരു പട്ടികയിലോ കാഴ്ചയിലോ പുതിയ റെക്കോർഡുകൾ ചേർക്കുക.
അപ്ഡേറ്റ് ചെയ്യുക പട്ടികയുടെ ഉള്ളടക്കം മാറ്റുക അല്ലെങ്കിൽ റെക്കോർഡുകൾ കാണുക.
ഇല്ലാതാക്കുക പട്ടികകളിൽ നിന്നോ കാഴ്ചകളിൽ നിന്നോ റെക്കോർഡുകൾ ഇല്ലാതാക്കുന്നു.
റഫറൻസുകൾ ഒരു ടേബിളിലെ ഒരു പ്രാഥമിക കീ അല്ലെങ്കിൽ തനത് സൂചികയിലേയ്‌ക്കോ അല്ലെങ്കിൽ ഒരു വരി-റിട്ടേണിംഗ് ഉപയോക്തൃ-നിർവചിച്ച ഫംഗ്‌ഷനിലേക്കോ വിദേശ കീകൾ സൃഷ്‌ടിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു.
നിർവ്വഹിക്കുക സംഭരിച്ച നടപടിക്രമം അല്ലെങ്കിൽ ഉപയോക്തൃ-നിർവചിച്ച ഫംഗ്ഷൻ നടപ്പിലാക്കുക.

നിർദ്ദിഷ്‌ട ഡാറ്റാബേസ് ഒബ്‌ജക്‌റ്റുകൾക്കുള്ള അനുമതികൾക്ക് മൂന്ന് സ്‌റ്റേറ്റുകൾ ഉണ്ടായിരിക്കാം: അനുവദിച്ചത്, നിരസിക്കപ്പെട്ടത്, അസാധുവാക്കിയത്. നിങ്ങൾ ഒരു ഒബ്‌ജക്‌റ്റിലേക്ക് ആക്‌സസ് അനുവദിക്കുകയാണെങ്കിൽ, അനുമതി മൂല്യത്തിന് സ്റ്റാറ്റസ് അനുവദിക്കും. അതനുസരിച്ച്, നിങ്ങൾ പ്രവേശനം നിഷേധിക്കുകയാണെങ്കിൽ, അനുമതി നിഷേധിക്കപ്പെടും. നിങ്ങൾ ഒരു അനുമതി അസാധുവാക്കുകയാണെങ്കിൽ, അനുവദിച്ചതോ നിരസിച്ചതോ ആയ അനുമതികൾ അസാധുവാക്കിയത് എന്നാക്കി മാറ്റുക. അസാധുവാക്കിയ അനുമതികൾ ഒരു ഒബ്‌ജക്‌റ്റിലേക്കുള്ള പ്രവേശനം അനുവദിക്കുകയോ നിരസിക്കുകയോ ചെയ്യുന്നില്ല.

ഒന്നിലധികം സ്ഥിരവും ഉപയോക്തൃ നിർവചിച്ചതുമായ ഡാറ്റാബേസ് റോളുകളിൽ ഒരു ഉപയോക്താവിനെ ഉൾപ്പെടുത്തുന്നത് സാധ്യമായതിനാൽ, റോളുകൾക്കിടയിൽ അനുമതി വൈരുദ്ധ്യങ്ങൾ സാധ്യമാണ്. നിങ്ങളുടെ സുരക്ഷാ സിസ്റ്റം മികച്ചതാക്കാൻ ഈ വൈരുദ്ധ്യങ്ങൾ നിങ്ങൾക്ക് ഉപയോഗിക്കാം. ഉദാഹരണത്തിന്, db_datareader ഫിക്സഡ് ഡാറ്റാബേസ് റോളിൽ ഒരു ഉപയോക്താവിനെ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്, ഇത് ഡാറ്റാബേസിലെ എല്ലാ ടേബിളുകളിലും കാഴ്ചകളിലും SELECT ചോദ്യങ്ങൾ എക്സിക്യൂട്ട് ചെയ്യാനുള്ള അവകാശം ഉപയോക്താവിന് നൽകുന്നു. എന്നിരുന്നാലും, സെയിൽസ് ടേബിളിലെ സെൻസിറ്റീവ് വിവരങ്ങൾ അവനിൽ നിന്ന് മറയ്‌ക്കുന്നതിന് എല്ലാ ടേബിളുകളിൽ നിന്നുമുള്ള ഡാറ്റ വായിക്കാൻ അനുമതിയുള്ള ഒരു ഉപയോക്താവിന് സെയിൽസ് ടേബിളിൽ നിന്നുള്ള വായന നിങ്ങൾക്ക് നിഷേധിക്കാം. അതനുസരിച്ച്, db_denydatareader ഫിക്സഡ് ഡാറ്റാബേസ് റോളിലെ അംഗങ്ങൾക്ക് ഡാറ്റാബേസിലെ ഏതെങ്കിലും ടേബിളിനെതിരെ SELECT അന്വേഷണങ്ങൾ നൽകാൻ കഴിയില്ല, ചില പ്രത്യേക പട്ടികകളിൽ നിന്ന് റീഡ് അനുമതി നൽകുന്ന ഒരു ഉപയോക്തൃ-നിർവചിച്ച ഡാറ്റാബേസ് റോളിൽ ഉപയോക്താക്കളെ ഉൾപ്പെടുത്തിയാലും. നിരസിച്ച അനുമതി എല്ലായ്പ്പോഴും അനുവദിച്ച അനുമതിയെ മറികടക്കുന്നു.

ഉപയോക്തൃ-നിർവചിച്ചതും നിശ്ചിതവുമായ ഡാറ്റാബേസ് റോളുകളിലെ അംഗത്വത്തിലൂടെ ഉപയോക്താക്കളുടെ ഗ്രൂപ്പുകൾക്ക് അനുമതികൾ നൽകിക്കൊണ്ട് SQL സെർവർ സുരക്ഷ നിയന്ത്രിക്കുന്നത് എളുപ്പമാക്കുന്നു. ഓരോ ഉപയോക്താവും സാധാരണയായി ഒരു നിർദ്ദിഷ്‌ട ലോഗിനുമായി പൊരുത്തപ്പെടുന്നുണ്ടെന്ന് ഓർക്കുക. അതാകട്ടെ, ലോഗിനുകൾക്ക് നിർദ്ദിഷ്ട വിൻഡോസ് ഉപയോക്താക്കൾക്ക് അനുയോജ്യമാകും. എന്നിരുന്നാലും, ഒരു ലോഗിൻ വിൻഡോസ് ഉപയോക്തൃ ഗ്രൂപ്പിലും അംഗമാകാം. അതിനാൽ, നിങ്ങൾക്ക് ഇതിനകം തന്നെ ഒരു വിൻഡോസ് ഗ്രൂപ്പ് ഉണ്ടെങ്കിൽ, അതേ സുരക്ഷാ ക്രമീകരണങ്ങൾ സജ്ജമാക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, വിൻഡോസ് ഗ്രൂപ്പിനായി ഒരു ലോഗിൻ സൃഷ്ടിക്കുക. തുടർന്ന് ഈ ലോഗിൻ ചെയ്യുന്നതിനായി ഒരു ഉപയോക്താവിനെ സൃഷ്ടിക്കുക. ഈ ഉപയോക്താവിനായി നിങ്ങൾ നിർവചിക്കുന്ന എല്ലാ അനുമതികളും അനുബന്ധ Windows ഗ്രൂപ്പിലെ എല്ലാ അംഗങ്ങൾക്കും ബാധകമാണ്.

SQL സെർവർ സുരക്ഷാ പ്രോഗ്രാമിംഗ്

SQL-DMO ഒരു കണ്ടെയ്‌നർ ആപ്ലിക്കേഷനാണ് (ഓട്ടോമേഷൻ ആപ്ലിക്കേഷൻ), ഇതിന്റെ ഉദ്ദേശ്യം SQL സെർവർ നിയന്ത്രിക്കുക എന്നതാണ്. SQL-DMO എന്നത് SQL സെർവർ എന്റർപ്രൈസ് മാനേജറിനുള്ള ഒരു API ആയതിനാൽ, SQL സെർവർ സുരക്ഷയുടെ എല്ലാ വശങ്ങളും കൈകാര്യം ചെയ്യുന്നതുൾപ്പെടെ എന്റർപ്രൈസ് മാനേജർ ഗ്രാഫിക്കൽ ടൂളുകൾ നിങ്ങൾക്ക് നൽകാൻ കഴിയുന്ന എല്ലാം SQL-DMO-യിൽ നിങ്ങൾക്ക് പ്രോഗ്രാം ചെയ്യാൻ കഴിയും. MSDE, MSDE 2000 എന്നിവ ഉപയോഗിക്കുന്ന പ്രോജക്റ്റുകൾക്ക് SQL-DMO-യുടെ ഈ വശം പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്, കാരണം അവയിൽ എന്റർപ്രൈസ് മാനേജർ ഉൾപ്പെടുന്നില്ല. കൂടാതെ, ആക്‌സസ് 2002 പ്രോഗ്രാമർമാർക്ക് സുരക്ഷ കൈകാര്യം ചെയ്യുന്നതിനുള്ള ചില സോഫ്‌റ്റ്‌വെയർ സൊല്യൂഷനുകൾ പഠിക്കേണ്ടതുണ്ട്, കാരണം ആക്‌സസ് 2002-ന് മെനുകളിലൂടെ സുരക്ഷ നിയന്ത്രിക്കാനുള്ള കഴിവില്ല (ആക്‌സസ് 2000 പോലെ).

ആക്‌സസിൽ, മറ്റേതൊരു COM ഒബ്‌ജക്‌റ്റും ഉപയോഗിക്കുന്ന അതേ രീതിയിൽ നിങ്ങൾക്ക് SQL-DMO ഉപയോഗിച്ച് പ്രോഗ്രാം ചെയ്യാൻ കഴിയും. നിങ്ങളുടെ VBA പ്രോജക്റ്റ് SQL-DMO ലൈബ്രറി ഉപയോഗിക്കണം. Microsoft SQLDMO ഒബ്‌ജക്റ്റ് ലൈബ്രറി എന്നാണ് ഈ ഒബ്‌ജക്റ്റ് ലൈബ്രറിയുടെ പേര്. റഫറൻസ് കമാൻഡ് (ടൂൾസ് മെനു) ഉപയോഗിച്ച് ലൈബ്രറിയിലേക്ക് ഒരു ലിങ്ക് ചേർക്കുക. ലൈബ്രറി DLL ഫയൽ MSDE, MSDE 2000 എന്നിവയ്‌ക്കൊപ്പം ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. SQL സെർവറിന്റെ മറ്റ് പതിപ്പുകളിൽ DLL ഉം നിങ്ങൾക്ക് വിഷ്വൽ ബേസിക് എഡിറ്റർ (VBE) വിൻഡോയിൽ നിന്ന് നേരിട്ട് തുറക്കാൻ കഴിയുന്ന ഒരു സഹായ ഫയലും ഉൾപ്പെടുന്നു. Microsoft Office XP Developer Edition ഉപയോഗിക്കുന്നവർക്ക് SQL-DMO-നുള്ള സഹായ ഫയൽ ഉൾപ്പെടുന്ന SQL സെർവറിന്റെ ഒരു പതിപ്പ് ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയും.

ടെക്സ്റ്റിൽ കൂടുതൽ സ്ഥിതി ചെയ്യുന്ന കോഡ് ഉദാഹരണങ്ങൾക്കുള്ള ഒബ്‌ജക്‌റ്റുകളുള്ള ശ്രേണിയിലുള്ള SQL-DMO മോഡലിന്റെ ഒരു ഭാഗം ചിത്രം കാണിക്കുന്നു. ശ്രേണിയുടെ മുകളിലാണ് SQLServer ഒബ്‌ജക്റ്റ് എന്നത് ശ്രദ്ധിക്കുക. SQLServer ഒബ്‌ജക്‌റ്റ് വഴി നിരവധി ആപ്ലിക്കേഷനുകൾ SQL സെർവറിലേക്ക് കണക്റ്റുചെയ്യാനാകും. SQLServer ഒബ്‌ജക്‌റ്റിന്റെ പിൻഗാമികൾ ലോഗിനുകൾക്കും ഡാറ്റാബേസുകൾക്കുമുള്ള ഒബ്‌ജക്‌റ്റുകളുടെ ശേഖരമാണ്, കൂടാതെ SQL സെർവർ സുരക്ഷ നിയന്ത്രിക്കാനുള്ള കഴിവ് നൽകുന്ന ഇന്റഗ്രേറ്റഡ് സെക്യൂരിറ്റി പോലുള്ള വ്യക്തിഗത ഒബ്‌ജക്റ്റുകളും. SQL സെർവർ പ്രാമാണീകരണ മോഡ് എങ്ങനെ സജ്ജീകരിക്കാമെന്ന് കാണിക്കാൻ ഇനിപ്പറയുന്ന ഉദാഹരണം ഇന്റഗ്രേറ്റഡ് സെക്യൂരിറ്റി ഒബ്‌ജക്റ്റിന്റെ സെക്യൂരിറ്റി മോഡ് പ്രോപ്പർട്ടി ഉപയോഗിക്കുന്നു. ഡാറ്റാബേസുകളുടെ ശേഖരണത്തിലെ അംഗങ്ങൾ വ്യക്തിഗത ഡാറ്റാബേസുകളാണ്, അവയിൽ ഓരോന്നിനും അതിന്റേതായ ശേഖരങ്ങളും വസ്തുക്കളും ഉണ്ട്. ഈ ശേഖരങ്ങളിലൊന്നാണ് ഉപയോക്താക്കളുടെ ശേഖരം. സ്ഥിരവും ഉപയോക്തൃ-നിർവചിക്കപ്പെട്ടതുമായ ഡാറ്റാബേസ് റോളുകൾക്കായി മറ്റൊരു ശേഖരം ഉപയോഗിക്കുന്നു (ഡാറ്റാബേസ് റോളുകൾ). ഡാറ്റാബേസ് റോൾസ് ശേഖരത്തിലെ വ്യക്തിഗത ഉപയോക്താക്കളുടെ അംഗത്വം പട്ടികകളുടെയും കാഴ്ചകളുടെയും ശേഖരങ്ങളിലെ ഒബ്‌ജക്റ്റുകൾ വായിക്കാനും പരിഷ്‌ക്കരിക്കാനുമുള്ള ഉപയോക്താക്കളുടെ കഴിവിനെ നിർണ്ണയിക്കുന്നു.

ഡ്രോയിംഗ്. SQL സെർവർ സുരക്ഷയുമായി ബന്ധപ്പെട്ട SQL-DMO ഒബ്‌ജക്റ്റ് മോഡലിന്റെ ഒരു ഭാഗം

SQL-DMO-യെ കുറിച്ച് സംസാരിക്കുന്നതിന് മുമ്പ്, SQL സെർവർ 7-നും SQL സെർവർ 2000-നും SQL-DMO-യ്‌ക്കുള്ള DLL വ്യത്യസ്തമാണെന്ന് അറിയേണ്ടത് പ്രധാനമാണ്. SQL-DMO-യുടെ രണ്ട് പതിപ്പുകൾ കുറഞ്ഞത് രണ്ട് വശങ്ങളിൽ വ്യത്യാസപ്പെട്ടിരിക്കുന്നു. ആദ്യം, SQL സെർവർ 2000-ന്റെ പതിപ്പിൽ SQL സെർവർ 2000-ൽ അവതരിപ്പിച്ച പുതിയ ഒബ്‌ജക്റ്റുകളും പരമ്പരാഗതമായവയുടെ മെച്ചപ്പെടുത്തലുകളും ഉൾപ്പെടുന്നു. SQL സെർവർ 2000-നുള്ള SQL-DMO-യിൽ പരമ്പരാഗത SQL സെർവർ 7.0 മാനേജ്മെന്റ് ഒബ്ജക്റ്റുകളും ഉൾപ്പെടുന്നു. 2000-ലെ ഒബ്‌ജക്‌റ്റ് നാമങ്ങൾ സാധാരണയായി 2-ൽ അവസാനിക്കും (ഉദാഹരണത്തിന്, പുതിയ ഒബ്‌ജക്‌റ്റുകൾക്കുള്ള SQLServer2, പരമ്പരാഗതമായവയ്‌ക്കുള്ള SQLServer-ന് പകരം). രണ്ടാമതായി, SQL സെർവർ 2000-ന് SQL-DMO ഉപയോഗിക്കുന്ന പ്രോഗ്രാമുകൾ SQL സെർവർ 7.0-ന് നിയന്ത്രിക്കാൻ കഴിയില്ല (പ്രോഗ്രാമുകൾ പരമ്പരാഗത SQL-DMO ഒബ്ജക്റ്റ് പേരുകൾ ഉപയോഗിച്ചാലും). എന്നിരുന്നാലും, SQL സെർവർ 7.0-നുള്ള SQL-DMO ലൈബ്രറി ഉപയോഗിച്ച് നിങ്ങൾക്ക് SQL സെർവർ 2000 നിയന്ത്രിക്കാനാകും.ഒരു പുതിയ പതിപ്പിലേക്ക് മൈഗ്രേറ്റ് ചെയ്യുമ്പോൾ ലൈബ്രറി ഫയൽ ഫോർമാറ്റുകളിലെ മാറ്റങ്ങളുടെ ഫലമാണ് ഈ പരിമിതി; SQL-DMO സ്ക്രിപ്റ്റ് വാക്യഘടന മാറ്റിയിട്ടില്ല.

SQL-DMO-യുടെ പതിപ്പുകൾ തമ്മിലുള്ള വ്യത്യാസത്തിന്, നിങ്ങളുടെ പ്രോജക്റ്റിൽ ഏത് ലൈബ്രറിയുടെ പതിപ്പാണ് നിങ്ങൾ ഉപയോഗിക്കേണ്ടതെന്ന് ശ്രദ്ധാപൂർവ്വം ശ്രദ്ധിക്കേണ്ടതുണ്ട്. നിങ്ങളുടെ SQL-DMO ആപ്ലിക്കേഷൻ SQL സെർവർ 7.0, SQL സെർവർ 2000 എന്നിവയിൽ പ്രവർത്തിക്കണമെങ്കിൽ, SQL സെർവർ 7.0-നായി SQL-DMO ഉപയോഗിച്ച് പ്രോഗ്രാമുകൾ എഴുതണം. മറുവശത്ത്, നിങ്ങൾക്ക് SQL സെർവർ 2000 പ്രയോജനപ്പെടുത്തണമെങ്കിൽ, SQL സെർവർ 2000-നുള്ള ലൈബ്രറി ഉപയോഗിച്ച് നിങ്ങളുടെ ആപ്ലിക്കേഷൻ വികസിപ്പിക്കേണ്ടതുണ്ട്. ലേഖനം SQL-DMO ഉപയോഗിച്ച് സുരക്ഷാ പ്രോഗ്രാമിംഗ് ടെക്നിക്കുകൾ കാണിക്കുന്നതിനാൽ, ഞാൻ SQL സെർവർ 7.0 പതിപ്പ് ഉപയോഗിച്ചു. SQL-DMO യുടെ. ഏത് സാഹചര്യത്തിലും, നിങ്ങൾ SQL സെർവർ 2000-ൽ അവതരിപ്പിച്ച പുതിയ ഒബ്‌ജക്‌റ്റുകൾ ഉപയോഗിക്കുമ്പോൾ ഒഴികെ, പതിപ്പുകളിലുടനീളം കോഡ് ഒരുപോലെയാണ് കാണപ്പെടുന്നത്.

SQL സെർവറിലേക്ക് ബന്ധിപ്പിക്കുന്നു

ഒരു ADP പ്രോജക്റ്റിലെ കണക്ഷൻ പ്രോപ്പർട്ടീസ് ഡയലോഗ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് രണ്ട് തരത്തിൽ SQL സെർവറിലേക്ക് കണക്റ്റുചെയ്യാൻ കഴിയുന്നതുപോലെ, SQL-DMO വഴി നിങ്ങൾക്ക് SQL സെർവറിലേക്ക് രണ്ട് തരത്തിൽ കണക്റ്റുചെയ്യാനാകും. ഒരു രീതി SQL സെർവർ ഉപയോഗിച്ചുള്ള പ്രാമാണീകരണവുമായി പൊരുത്തപ്പെടുന്നു. ഈ രീതി ഉപയോഗിച്ച്, നിങ്ങളുടെ കോഡ് സെർവറിന്റെ പേര്, ലോഗിൻ, പാസ്‌വേഡ് എന്നിവ SQL-DMO വഴി സെർവറിലേക്ക് അയയ്ക്കണം. നിങ്ങളുടെ ലോക്കൽ വർക്ക്‌സ്റ്റേഷനിലോ നെറ്റ്‌വർക്കിലെ മറ്റൊരു വർക്ക്‌സ്റ്റേഷനിലോ SQL സെർവറിന്റെ വ്യത്യസ്‌ത സംഭവങ്ങൾ വ്യക്തമാക്കാൻ നിങ്ങൾക്ക് സെർവർ നെയിം പാരാമീറ്റർ ഉപയോഗിക്കാം. SQL-DMO സെർവർ നാമം മാത്രം വ്യക്തമാക്കി നിങ്ങളെ ബന്ധിപ്പിക്കാൻ അനുവദിക്കുന്നു. ഈ സാഹചര്യത്തിൽ, SQL-DMO വിൻഡോസിൽ അംഗീകൃത ഉപയോക്താവിന്റെ ഐഡി SQL സെർവർ ഉദാഹരണത്തിലേക്ക് അയയ്ക്കുന്നു. ഈ രീതി ഉപയോഗിക്കുന്നതിന്, നിങ്ങൾ സെർവറിന്റെ LoginSecure പ്രോപ്പർട്ടി True ആയി സജ്ജീകരിക്കണം.

ഒരു SQL സെർവർ ലോഗിൻ ഉപയോഗിച്ച് SQL സെർവറിന്റെ ഒരു ഉദാഹരണത്തിലേക്ക് കണക്റ്റുചെയ്യുന്നതിനുള്ള വാക്യഘടന പ്രദർശിപ്പിക്കുന്ന ഒരു ജോടി നടപടിക്രമങ്ങൾ ഇനിപ്പറയുന്ന ലിസ്റ്റിംഗ് കാണിക്കുന്നു. ആദ്യ നടപടിക്രമം സെർവർ നാമം (srvname), ലോഗിൻ (suid), പാസ്‌വേഡ് (pwd) എന്നിവയ്‌ക്കായി മൂന്ന് സ്ട്രിംഗ് പാരാമീറ്ററുകൾ നിർവചിക്കുന്നു. അത് അവരെ രണ്ടാമത്തെ നടപടിക്രമത്തിലേക്ക് അയയ്ക്കുന്നു, അത് SQLServer ഒബ്ജക്റ്റ് ആരംഭിക്കുന്നതിലൂടെ ആരംഭിക്കുന്നു. ഈ വസ്തു ഒരു സെർവർ ഉദാഹരണത്തെ പ്രതിനിധീകരിക്കുന്നു. രണ്ടാമത്തെ നടപടിക്രമം SQLServer ഒബ്‌ജക്റ്റിന്റെ കണക്റ്റ് രീതിയെ വിളിക്കുന്നു. ഈ രീതി മൂന്ന് പരാമീറ്ററുകൾ ഇൻപുട്ടായി എടുക്കുന്നു. വേരിയബിൾ സെർവറിന്റെ പേര്, ലോഗിൻ, പാസ്‌വേഡ് എന്നിവ കൈമാറുന്നതിനുള്ള വാക്യഘടന പ്രദർശിപ്പിച്ചിരിക്കുന്നു.

സബ് കോൾSQLDMOSQLServerLogin()
മങ്ങിയ srvname As String
സ്ട്രിംഗ് ആയി ഡിം സുഡ്
സ്ട്രിംഗ് ആയി മങ്ങിയ pwd

"SQL സെർവർ ലോഗിൻ ചെയ്യുന്നതിനുള്ള ആർഗ്യുമെന്റുകൾ നിർവചിക്കുന്നു
suid = "your_login_name"
pwd = "Your_password"

"SQL സെർവർ ലോഗിൻ രീതി ഉപയോഗിച്ച് കണക്ഷൻ നടപടിക്രമം വിളിക്കുന്നു
SQLDMOSQLServerLogin srvname, suid, pwd

സബ് SQLDMOSQLServerLogin(srvname as String, _

"സെർവർ ഉദാഹരണം

"SQL സെർവർ ലോഗിൻ രീതി ഉപയോഗിച്ച് കണക്റ്റുചെയ്യാൻ കണക്റ്റ് രീതിയിലേക്ക് വിളിക്കുന്നു

"വേരിയബിളുകൾ മായ്ക്കുന്നു
srv1. Disconnect
srv1 = ഒന്നുമില്ല

ഇനിപ്പറയുന്ന കോഡ് ഉദാഹരണം വിൻഡോസ് ലോഗിൻ ഉപയോഗിച്ച് ഒരു SQL സെർവർ ഉദാഹരണത്തിലേക്ക് കണക്റ്റുചെയ്യുന്നതിനുള്ള വാക്യഘടന കാണിക്കുന്നു.
വിൻഡോസ് ഉപയോക്തൃ ഐഡി അടിസ്ഥാനമാക്കി. സെർവറിലേക്ക് ബന്ധിപ്പിക്കുന്നതിനുള്ള ഈ രണ്ടാമത്തെ രീതിയിൽ, നിങ്ങൾ ഒരു ലോഗിൻ അല്ലെങ്കിൽ പാസ്വേഡ് വ്യക്തമാക്കേണ്ടതില്ല.
SQL-DMO വിൻഡോസ് യൂസർ ഐഡി സ്വയമേവ സ്വീകരിക്കുകയും ലോഗിൻ ഉപയോഗിച്ച് ഉപയോക്താവിനെ സെർവറുമായി ബന്ധിപ്പിക്കുകയും ചെയ്യുന്നു
ഉപയോക്തൃ ഐഡിക്കായി. Connect രീതി വിളിക്കുന്നതിന് മുമ്പ് LoginSecure പ്രോപ്പർട്ടി True ആയി സജ്ജമാക്കുക. ഈ വസ്തുവിന്റെ സ്ഥിര മൂല്യം തെറ്റാണ്.

സബ് കോൾSQLDMOWindowsലോഗിൻ()
മങ്ങിയ srvname As String
"വിൻഡോസ് ലോഗിൻ വേണ്ടി ആർഗ്യുമെന്റ് സജ്ജമാക്കുക
srvname = "YOUR_SERVER_NAME"

SQLDMOWindowsലോഗിൻ srvname

സബ് SQLDMOWindowsലോഗിൻ (സ്‌ട്രിംഗ് ആയി srvname)
SQLDMO.SQLServer ആയി srv1 മങ്ങിക്കുക

"സെർവർ ഉദാഹരണം
srv1 = പുതിയ SQLDMO.SQLServer സജ്ജമാക്കുക

"വിളിക്കുന്നതിന് മുമ്പ് LoginSecure പ്രോപ്പർട്ടി സജ്ജമാക്കുക
"സെർവർ നാമം ആർഗ്യുമെന്റായി ബന്ധിപ്പിക്കുന്ന രീതി
srv1.LoginSecure = True
srv1.Connect srvname

"വേരിയബിളുകൾ മായ്ക്കുന്നു
srv1. Disconnect
srv1 = ഒന്നുമില്ല

പ്രാമാണീകരണ മോഡ് മാറ്റുന്നു

MSDE, MSDE 2000 പ്രോഗ്രാമർമാർക്ക് SQL-DMO നൽകുന്ന ഒരു പ്രധാന നേട്ടം അവർക്ക് ലഭ്യമല്ലാത്ത ഒരു ഫീച്ചർ നൽകുന്നു എന്നതാണ്. എന്റർപ്രൈസ് മാനേജർ MSDE അല്ലെങ്കിൽ MSDE 2000 ഇൻസ്റ്റലേഷൻ പാക്കേജിൽ ഉൾപ്പെടുത്തിയിട്ടില്ല. ഉദാഹരണത്തിന്, SQL സെർവർ എന്റർപ്രൈസ് മാനേജർ ക്ലയന്റ് ഘടകം അഡ്മിനിസ്ട്രേറ്റർമാരെ സെർവർ ആധികാരികത മോഡ് ഗ്രാഫിക്കായി മാറ്റാൻ അനുവദിക്കുന്നു: Windows പ്രാമാണീകരണം അല്ലെങ്കിൽ മിക്സഡ് മോഡ്. ADP പ്രോജക്റ്റ് ഈ ഓപ്ഷൻ നൽകുന്നില്ല. എന്നിരുന്നാലും, എന്റർപ്രൈസ് മാനേജർ ഉപയോഗിക്കാൻ പോലും കഴിയാതെ സെർവറിന്റെ പ്രാമാണീകരണ മോഡ് മാറ്റാൻ ഇനിപ്പറയുന്ന രണ്ട് നടപടിക്രമങ്ങൾ നിങ്ങളെ അനുവദിക്കും.

ആദ്യ നടപടിക്രമം ഒരു പാരാമീറ്ററിന്റെ മൂല്യം നിർണ്ണയിക്കുകയും രണ്ടാമത്തെ നടപടിക്രമത്തിലേക്ക് അയയ്ക്കുകയും ചെയ്യുന്നു. ഈ പരാമീറ്റർ രണ്ട് പ്രാമാണീകരണ മോഡുകളിൽ ഒന്ന് വ്യക്തമാക്കുന്നു. പ്രാമാണീകരണ മോഡ് അനുസരിച്ച് രണ്ട് മുൻ‌നിശ്ചയിച്ച സ്ഥിരാങ്കങ്ങളുടെ പേരുകൾ നടപടിക്രമ കമന്റുകൾ കാണിക്കുന്നു. മിക്സഡ് മോഡ് ആധികാരികത സ്ഥിരസ്ഥിതി മോഡ് ആണ്. എന്റർപ്രൈസ് മാനേജറിൽ പോലും ലഭ്യമല്ലാത്ത ഒരു പ്രാമാണീകരണ മോഡ് സജ്ജമാക്കാൻ SQL-DMO നിങ്ങളെ അനുവദിക്കുന്നു. മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, SQL സെർവർ ലോഗിനുകൾ മാത്രം സ്വീകരിക്കാൻ സെർവറിനോട് പറയാൻ നിങ്ങൾക്ക് SQL-DMO ഉപയോഗിക്കാം.

രണ്ടാമത്തെ നടപടിക്രമം ഒരു വിൻഡോസ് യൂസർ ഐഡി ഉപയോഗിച്ച് സെർവറിലേക്ക് ബന്ധിപ്പിക്കുന്നു. ഇത് സെർവറിനായുള്ള ഇന്റഗ്രേറ്റഡ് സെക്യൂരിറ്റി ഒബ്‌ജക്റ്റിന്റെ സെക്യൂരിറ്റി മോഡ് പ്രോപ്പർട്ടിയെ ആദ്യ നടപടിക്രമത്തിൽ നിന്ന് അതിലേക്ക് കൈമാറിയ പാരാമീറ്ററിന്റെ മൂല്യത്തിലേക്ക് സജ്ജമാക്കുന്നു. ഈ പ്രോപ്പർട്ടിയുടെ മൂല്യം പ്രാമാണീകരണ മോഡ് മാറ്റുകയാണെങ്കിൽ, നിങ്ങൾ സെർവർ നിർത്തി പുനരാരംഭിക്കുന്നതുവരെ മോഡ് മാറില്ല. എന്നിരുന്നാലും, സെർവർ ഒബ്‌ജക്റ്റിന്റെ സ്റ്റോപ്പ് രീതി വിളിക്കുന്നത് സെർവറിനെ ഉടനടി നിർത്താൻ കഴിയില്ല. സെർവർ നിർത്തുന്നത് വരെ നിങ്ങൾ കാത്തിരിക്കണം. സെർവർ ഒബ്‌ജക്റ്റിന്റെ സ്റ്റാറ്റസ് പ്രോപ്പർട്ടി ഉപയോഗിച്ച്, സെർവർ നിർത്തിയെന്ന സന്ദേശത്തിനായി നിങ്ങളുടെ പ്രോഗ്രാമിന് നിരീക്ഷിക്കാനാകും. നടപടിക്രമം ഒരു ലൂപ്പ് ഉപയോഗിക്കുന്നു, സ്റ്റാറ്റസ് മൂല്യം SQLDMOSvc_Stopped എന്നതിലേക്ക് മാറുന്നതിനായി കാത്തിരിക്കുന്നു. അടുത്തതായി, നടപടിക്രമം SQLServer ഒബ്ജക്റ്റിന്റെ ആരംഭ രീതി നടപ്പിലാക്കുന്നു. ഈ രീതിയിലേക്ക് വിളിക്കുന്നത് സെർവറിനായി ഒരു പുതിയ പ്രാമാണീകരണ മോഡ് സജ്ജമാക്കും.

സബ് കോൾചേഞ്ച് സെർവർ ഓതന്റിക്കേഷൻ മോഡ്()
ഡിം കോൺസ്റ്റ്ഓത്ത് ആസ് ബൈറ്റ്

"constAuth ഇതിലേക്ക് സജ്ജമാക്കുക:
" മോഡിലേക്ക് മാറ്റാൻ SQLDMOSecurity_Integrated
"വിൻഡോസ് ആധികാരികത
" മിക്സഡ് ആധികാരികത മോഡിലേക്ക് മാറ്റാൻ SQLDMOSecurity_Mixed

"constAuth-നായി സ്ഥിരസ്ഥിതി മൂല്യം സജ്ജമാക്കുക
constAuth = SQLDMOSsecurity_Mixed

"പ്രാമാണീകരണ മോഡ് മാറ്റുന്നതിനുള്ള ഒരു നടപടിക്രമം വിളിക്കുക
ChangeServerAuthenticationMode constAuth

സബ് ചേഞ്ച് സെവർ ഓതന്റിക്കേഷൻ മോഡ് (ബൈറ്റ് ആയി കോൺസ്റ്റൗത്ത്)
SQLDMO.SQLServer ആയി srv1 മങ്ങിക്കുക

"സെർവർ നാമം സജ്ജമാക്കുക;
"ഡിഫോൾട്ട് YOUR_SERVER_NAME
srvname = "YOUR_SERVER_NAME"

കണക്ഷനുള്ള SQLServer ഒബ്‌ജക്റ്റിന്റെ ഒരു ഉദാഹരണം
"ഞങ്ങൾ വിൻഡോസ് പ്രാമാണീകരണം ഉപയോഗിക്കുന്നു
srv1 = പുതിയ SQLDMO.SQLServer സജ്ജമാക്കുക
srv1.LoginSecure = True
srv1.Connect srvname

"വിന്ഡോസിനായി സെക്യൂരിറ്റി മോഡ് പ്രോപ്പർട്ടി സജ്ജമാക്കുക
"അല്ലെങ്കിൽ മിക്സഡ് ആധികാരികത
srv1.IntegratedSecurity.SecurityMode = constAuth
srv1. Disconnect

"നിർത്താനും കാത്തിരിക്കാനും ഞങ്ങൾ കമാൻഡ് വിളിക്കുന്നു
"അത് നിർത്തുന്നത് വരെ
srv1.Stop
srv1.Status = SQLDMOSvc_Stopped വരെ ചെയ്യുക
ലൂപ്പ്

"ഞങ്ങൾ ഒരു മിക്സഡ് ഓതന്റിക്കേഷൻ തരം ഉപയോഗിച്ച് സെർവർ പുനരാരംഭിക്കുന്നു
srv1.Start True, srvname

"ക്ലീനപ്പ്
srv1. Disconnect
srv1 = ഒന്നുമില്ല

എഡിപി പദ്ധതിയുടെ ഉദ്ഘാടനം

ചിലപ്പോൾ നിങ്ങളുടെ SQL-DMO ആപ്ലിക്കേഷനിൽ നിന്ന് ഒരു ADP പ്രോജക്റ്റ് പ്രോഗ്രാമാറ്റിക് ആയി തുറക്കേണ്ടത് ആവശ്യമാണ്. ADP പ്രോജക്റ്റ് ഓപ്പണിംഗ് സാങ്കേതികവിദ്യയ്ക്ക് SQL-DMO-യുടെ ഉപയോഗം ആവശ്യമില്ല, എന്നിരുന്നാലും, നിങ്ങളുടെ SQL-DMO ആപ്ലിക്കേഷന് ഈ കഴിവ് പ്രയോജനപ്പെടുത്താൻ കഴിയും. ഈ ലേഖനത്തിലെ അവസാന കോഡ് ഉദാഹരണം (അവസാന വിഭാഗത്തിന് തൊട്ടുമുമ്പ്) ഒരു പുതിയ ഉപയോക്താവിനെ എങ്ങനെ സൃഷ്ടിക്കാമെന്ന് കാണിക്കുന്നു. ഒരു ADP പ്രോജക്റ്റ് തുറക്കേണ്ടതിന്റെ ആവശ്യകത ഒരു ADP പ്രോജക്റ്റ് അടിസ്ഥാനമാക്കി ഒരു ആപ്ലിക്കേഷൻ ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ ഒരു കണക്ഷൻ സ്ട്രിംഗിന്റെ ജനറേഷൻ അടിസ്ഥാനമാക്കിയുള്ളതാണ്.

നിലവിലുള്ള ഒരു ADP പ്രോജക്റ്റ് എങ്ങനെ തുറക്കാമെന്ന് ഇനിപ്പറയുന്ന കോഡ് ഉദാഹരണം കാണിക്കുന്നു. ചുവടെയുള്ള കോഡിൽ, ADP പ്രോജക്റ്റ് നാമം msdn_test_security.adp എന്നാണ്. Windows പ്രാമാണീകരണ മോഡിൽ അല്ലെങ്കിൽ SQL സെർവർ പ്രാമാണീകരണ മോഡിൽ ഒരു ADP പ്രോജക്റ്റ് തുറക്കാൻ സാമ്പിൾ കോഡ് നിങ്ങളെ അനുവദിക്കുന്നു. വീണ്ടും രണ്ട് നടപടിക്രമങ്ങൾ ഉപയോഗിക്കുന്നു. ആദ്യ നടപടിക്രമത്തിലെ പാരാമീറ്ററുകളുടെ ലിസ്റ്റ് - CallOpenADPWindowsOrSQLServer - താരതമ്യേന വലുതാണ്, ഇത് സെർവറിന്റെ പേര്, ഡാറ്റാബേസ്, എഡിപി പ്രോജക്റ്റ് ഫയലിന്റെ പാത്ത്, പേര്, SQL സെർവർ ലോഗിൻ, പാസ്‌വേഡ് എന്നിവയും ലോജിക്കൽ വേരിയബിളും വ്യക്തമാക്കേണ്ടതിന്റെ ആവശ്യകത മൂലമാണ്. . വിൻഡോസ് അല്ലെങ്കിൽ SQL സെർവർ പ്രാമാണീകരണം ഉപയോഗിച്ചാണോ പ്രൊജക്റ്റ് തുറക്കുന്നതെന്ന് ബൂളിയൻ വേരിയബിൾ നിർണ്ണയിക്കുന്നു. വിൻഡോസ് ആധികാരികത വ്യക്തമാക്കുമ്പോൾ, ഒരു ലോഗിനും പാസ്‌വേഡും ആവശ്യമില്ല, കാരണം എഡിപി പ്രോജക്റ്റ് സ്വയമേവ വിൻഡോസ് യൂസർ ഐഡിയെ പരാമർശിക്കുന്നു. ഒരു ADP പ്രോജക്റ്റ് തുറക്കുന്നതിന് രണ്ടാമത്തെ നടപടിക്രമം ഈ പാരാമീറ്ററുകൾ ഉപയോഗിക്കുന്നു.

രണ്ടാമത്തെ നടപടിക്രമം വിവരിക്കുന്നതിന് മുമ്പ്, കോഡിന്റെ ചില സവിശേഷതകൾ വിശദീകരിക്കുന്നത് ഉപയോഗപ്രദമാകും. ആദ്യം, ADP പ്രോജക്റ്റ് തുറക്കുന്ന നടപടിക്രമം ഇതിനകം ആക്സസ് സെഷനിൽ പ്രവർത്തിക്കുന്നു. അതിനാൽ, ഞങ്ങൾ തുറക്കാൻ ഉദ്ദേശിക്കുന്ന പ്രോജക്റ്റിനായി ആക്‌സസിന്റെ ഒരു പുതിയ ഉദാഹരണം സൃഷ്‌ടിക്കേണ്ടതുണ്ട്. ഒരു ആക്‌സസ് സെഷൻ സൃഷ്‌ടിക്കാൻ, ഒരു OLE ക്ലാസ് ഉപയോഗിക്കുന്നു.

രണ്ടാമതായി, നിലവിലുള്ള ഏതെങ്കിലും എഡിപി പ്രോജക്റ്റ് എല്ലായ്പ്പോഴും തുറക്കുന്നത് മുമ്പത്തെ ഓപ്പണിംഗ് സമയത്ത് സംരക്ഷിച്ച സെർവർ കണക്ഷൻ പാരാമീറ്ററുകൾ ഉപയോഗിച്ചാണ്. അതിനാൽ, പ്രോഗ്രാം പഴയ കണക്ഷൻ പാരാമീറ്ററുകൾ ഉപയോഗിച്ച് പ്രോജക്റ്റ് തുറക്കണം, തുടർന്ന് ഈ പാരാമീറ്ററുകൾ മാറ്റുക. പുതിയ കണക്ഷൻ ക്രമീകരണങ്ങൾ ഒരു ഓപ്പൺ പ്രോജക്റ്റിലേക്ക് മാത്രമേ അസൈൻ ചെയ്യാൻ കഴിയൂ. പ്രോജക്റ്റ് അടച്ചതിനുശേഷം, പുതിയ കണക്ഷൻ പാരാമീറ്ററുകൾ ഉപയോക്താവ് കണക്ഷൻ പാരാമീറ്ററുകൾ ഡയലോഗിൽ മാറ്റുന്നതുവരെ സംരക്ഷിക്കപ്പെടും. (എന്നിരുന്നാലും, ഫയൽ മെനുവിലെ കണക്ഷൻ മെനു കമാൻഡ് മറയ്‌ക്കാനും പ്രവർത്തനരഹിതമാക്കാനും ഓഫീസ് ഒബ്‌ജക്റ്റ് മോഡൽ നിങ്ങളെ അനുവദിക്കുന്നു.)

മൂന്നാമതായി, ഒരു ഓപ്പൺ എഡിപി പ്രോജക്റ്റ് ഉള്ള ഒരു സെഷൻ ആ സെഷനെ പ്രതിനിധീകരിക്കുന്ന വേരിയബിൾ ജീവിക്കുന്നിടത്തോളം കാലം നിലനിൽക്കും. തുറക്കുന്ന പ്രോജക്റ്റിനായി സെഷൻ നിർവചനത്തിലെ പൊതു വിവരണം ഉപയോഗിക്കുക. മൊഡ്യൂൾ വിവരണ വിഭാഗത്തിൽ വേരിയബിൾ പ്രഖ്യാപിച്ചു. ഇത് തുറക്കുന്ന പ്രോജക്റ്റ്, അതായത് നമ്മുടെ കോഡ് ജീവിക്കുന്നിടത്തോളം സെഷനെ ജീവിക്കാൻ അനുവദിക്കും. ഉദാഹരണത്തിലെ ആക്‌സസ് സെഷൻ വേരിയബിളിനെ appAccess എന്ന് വിളിക്കുന്നു, ഇനിപ്പറയുന്ന പ്രഖ്യാപനം സ്റ്റാൻഡേർഡ് മൊഡ്യൂൾ ഡെഫനിഷൻ വിഭാഗത്തിലാണ്. ഡിക്ലറേഷൻ മൊഡ്യൂളിന്റെ മുകളിലായിരിക്കണം എന്നതിനാൽ, ആദ്യത്തെ അല്ലെങ്കിൽ രണ്ടാമത്തെ നടപടിക്രമത്തിനുള്ള കോഡിൽ നിങ്ങൾ അത് കാണില്ല.

പൊതു ആപ്പ് ആക്സസ് ആക്സസ് ആയി.അപ്ലിക്കേഷൻ

രണ്ടാമത്തെ നടപടിക്രമം, OpenADPWindowsOrSQLServer, നടപടിക്രമം പൂർത്തിയായ ശേഷം സെഷൻ തുറന്നിടണോ എന്ന് ചോദിക്കുന്ന ഒരു സന്ദേശത്തോടെ ആരംഭിക്കുന്നു. ഉപയോക്താവ് "ഇല്ല" എന്ന് ഉത്തരം നൽകിയാൽ, നടപടിക്രമം പ്രോജക്റ്റിനായുള്ള കണക്ഷൻ പാരാമീറ്ററുകൾ സജ്ജമാക്കുകയും മാറ്റങ്ങൾ കാണാനുള്ള അവസരമില്ലാതെ സെഷൻ അടയ്ക്കുകയും ചെയ്യും. അടുത്തതായി, CreateObject ഫംഗ്ഷൻ ഉപയോഗിച്ച് പ്രോജക്റ്റ് ഒരു പുതിയ ആക്സസ് സെഷൻ ആരംഭിക്കുന്നു. നിങ്ങൾ ഉപയോഗിക്കുന്ന ആക്‌സസിന്റെ പതിപ്പിനെ ആശ്രയിച്ച് ഈ ഫംഗ്‌ഷന്റെ ആർഗ്യുമെന്റുകൾ വ്യത്യാസപ്പെടുന്നു (കോഡ് ആക്‌സസ് 2000 അല്ലെങ്കിൽ ആക്‌സസ് 2002 ഉപയോഗിക്കുന്നതിന്റെ പ്രത്യേകതകൾ വിവരിക്കുന്നു). ഒരു പ്രോജക്‌റ്റിനായി ഒരു സെഷൻ സൃഷ്‌ടിച്ചതിന് ശേഷം, സെഷനിലേക്ക് ADP പ്രോജക്‌റ്റ് ചേർക്കുന്നതിന് ഓപ്പൺ ആക്‌സസ് പ്രോജക്റ്റ് രീതിയെ നടപടിക്രമം വിളിക്കുന്നു. ഈ രീതിയുടെ വാദം പ്രോജക്റ്റ് ഫയലിന്റെ പേരിനൊപ്പം ഒരു പാതയാണ്. .adp വിപുലീകരണം ഓപ്ഷണലാണ്. പ്രോജക്റ്റ് തുറന്ന ശേഷം, CurrentProject ഒബ്‌ജക്റ്റിന്റെ ഓപ്പൺകണക്ഷൻ രീതി ഉപയോഗിച്ച് നടപടിക്രമം അതിന്റെ കണക്ഷൻ ക്രമീകരണങ്ങൾ അസാധുവാക്കുന്നു. bolWindowsLogin വേരിയബിളിന്റെ മൂല്യത്തെ ആശ്രയിച്ച് രണ്ട് വ്യത്യസ്ത കണക്ഷൻ സ്ട്രിംഗുകൾ ഉപയോഗിച്ച് ഈ നടപടിക്രമം കണക്ഷനുകളെ പുനർനിർവചിക്കുന്നു. ഈ ബൂളിയൻ വേരിയബിൾ പ്രൊജക്റ്റിനായി ഏത് തരത്തിലുള്ള അംഗീകാരമാണ് സജ്ജീകരിക്കേണ്ടതെന്ന് സൂചിപ്പിക്കുന്ന ആദ്യ നടപടിക്രമം വഴി സജ്ജീകരിച്ചിരിക്കുന്നു. സെഷൻ തുറക്കുന്നതിന് മുമ്പ് സന്ദേശ ബോക്സിലെ ചോദ്യത്തിന് ഉപയോക്താവ് അതെ എന്ന് ഉത്തരം നൽകിയാൽ നടപടിക്രമത്തിന്റെ അവസാന ഘട്ടം സെഷൻ അവസാനിപ്പിക്കും.

സബ് കോൾഓപ്പൺADPWindowsOrSQLServer()
മങ്ങിയ srvname As String
സ്‌ട്രിംഗ് ആയി മങ്ങിയ dbname
സ്ട്രിംഗ് ആയി മങ്ങിയ പാത
മങ്ങിയ prname As String
സ്ട്രിംഗ് ആയി ഡിം സുഡ്
സ്ട്രിംഗ് ആയി മങ്ങിയ pwd

"ഒരു ADP പ്രോജക്റ്റ് തുറക്കുന്നതിനുള്ള ഓപ്ഷനുകൾ സജ്ജീകരിക്കുന്നു
srvname = "YOUR_SERVER_NAME"
dbname = "Your_db_name"

suid = "your_login_name"
pwd = "Your_password"


"എസ്‌ക്യുഎൽ സെർവർ ലോഗിനും പാസ്‌വേഡിനും പകരം നിലവിലെ ഉപയോക്താവിനായി
bolWindowsLogin = തെറ്റ്

"എഡിപി പേരിന്റെ പ്രോജക്റ്റ് തുറക്കുന്നതിനുള്ള നടപടിക്രമം വിളിക്കുന്നു
"വിൻഡോസ് അല്ലെങ്കിൽ SQL സെർവർ പ്രാമാണീകരണത്തോടൊപ്പം

അവസാനം ഉപ
സബ് OpenADPWindowsOrSQLServer(srvname as String, dbname as String, _
prpath സ്ട്രിംഗ്, prname as String, _
suid As String, pwd as String, bolWindowsLogin As Boolean)

മങ്ങിയ ബോൾലീവ് ബൂളിയൻ ആയി തുറക്കുക
സ്ട്രിംഗ് ആയി strPrFilePath മങ്ങിക്കുക
സ്ട്രിംഗ് ആയി sConnectionString മങ്ങിക്കുക

"നടപടിക്രമങ്ങൾ പൂർത്തിയാക്കിയ ശേഷം പദ്ധതി തുറന്ന് വിടണോ?
MsgBox("പ്രോജക്റ്റ് തുറന്ന് വിടണോ?", vbYesNo) = vbYes എങ്കിൽ
bolLeaveOpen = True
എങ്കിൽ അവസാനിപ്പിക്കുക

"ഒരു ആക്സസ് സെഷൻ ഒബ്ജക്റ്റ് നിർവചിക്കുന്നു (ആക്സസ് 2000-ന് .9 ഉപയോഗിക്കുക
"2002 ആക്‌സസിനായുള്ള i.10)
appAccess = CreateObject ("Access.Application.9") സജ്ജമാക്കുക

"അവസാന ലോഞ്ചിന്റെ ലോഗിൻ, പാസ്‌വേഡ് എന്നിവ ഉപയോഗിച്ച് പ്രോജക്റ്റ് തുറക്കുക
"അത് കാണിക്കൂ
strPrFilePath = prpath & prname
appAccess.OpenAccessProject strPrFilePath
appAccess.Visible = True

"Windows അല്ലെങ്കിൽ SQL സെർവർ പ്രാമാണീകരണത്തിനായി ഒരു പുതിയ ലോഗിൻ സജ്ജീകരിക്കുക;
"കണക്ഷൻ ശ്രമ പിശക് തെറ്റായ രീതിയിൽ കൈകാര്യം ചെയ്യുക
bolWindowsLogin ചെയ്താൽ പിന്നെ
"PROVIDER=SQLOLEDB.1;ഇന്റഗ്രേറ്റഡ് സെക്യൂരിറ്റി=SSPI;" &_
"സുരക്ഷാ വിവരം നിലനിർത്തുക=തെറ്റ്; പ്രാരംഭ കാറ്റലോഗ്=" & _
വേറെ
sConnectionString = "PROVIDER=SQLOLEDB.1; പ്രാരംഭ കാറ്റലോഗ്=" & _
dbname & ";DATA SOURCE=" & srvname
appAccess.CurrentProject.OpenConnection_
sConnectionString, _
suid, pwd
എങ്കിൽ അവസാനിപ്പിക്കുക

"ഞങ്ങൾ സെഷൻ അവസാനിപ്പിക്കും, അല്ലെങ്കിൽ ഞങ്ങൾ നിർത്തും
"കണക്ഷൻ ക്രമീകരണ ഡയലോഗ് കാണുന്നതിന്
bolLeaveOpen = False എങ്കിൽ
appAccess.CloseCurrentDatabase
appAccess സജ്ജമാക്കുക = ഒന്നുമില്ല
എങ്കിൽ അവസാനിപ്പിക്കുക

ലോഗിനുകൾ ചേർക്കുകയും നീക്കം ചെയ്യുകയും ചെയ്യുന്നു

SQL സെർവറിലേക്ക് ബന്ധിപ്പിക്കുന്നതിന് മൂന്ന് വഴികളുണ്ട്. ഈ മൂന്ന് തരത്തിലും SQL സെർവർ പരിശോധിച്ച ഒരു തരവും വിൻഡോസ് പരിശോധിച്ച മറ്റ് രണ്ട് തരങ്ങളും ഉൾപ്പെടുന്നു. വിൻഡോസ് പരിശോധിക്കുന്ന രണ്ട് തരങ്ങൾ വ്യക്തിഗത ഉപയോക്തൃ ഐഡികൾക്കായുള്ള ലോഗിനുകളും വിൻഡോസ് ഉപയോക്താക്കളുടെ ഗ്രൂപ്പുകൾക്കുള്ള ലോഗിനുകളുമാണ്. നിങ്ങൾക്ക് ഇതിനകം ഒരു വിൻഡോസ് ഉപയോക്തൃ ഗ്രൂപ്പ് ഉണ്ടെങ്കിൽ, അവരുടെ എല്ലാ അംഗങ്ങൾക്കും SQL സെർവർ ഉറവിടങ്ങളിൽ ഒരേ അവകാശങ്ങൾ നൽകണമെങ്കിൽ, നിങ്ങൾ വിൻഡോസ് ഗ്രൂപ്പിലേക്ക് ലോഗിൻ സജ്ജീകരിക്കേണ്ടതുണ്ട്. ഓരോ ഗ്രൂപ്പ് അംഗത്തിനും ഒരു ലോഗിൻ സൃഷ്ടിക്കുന്നതിൽ നിന്ന് ഇത് നിങ്ങളെ രക്ഷിക്കും.

ലോഗിൻ സൃഷ്ടിക്കൽ ഉദാഹരണം ഒരു സാധാരണ SQL സെർവർ ലോഗിൻ സൃഷ്ടിക്കുന്നതിനുള്ള വാക്യഘടനയും ഒരു വിൻഡോസ് ഉപയോക്തൃ ഗ്രൂപ്പിനെ അടിസ്ഥാനമാക്കിയുള്ള ഒരു ലോഗിനും കാണിക്കുന്നു. ഒരു വിൻഡോസ് ഗ്രൂപ്പിനായി ഒരു SQL സെർവർ ലോഗിൻ സൃഷ്ടിക്കുന്നതിനുള്ള കോഡ് ഒരു വ്യക്തിഗത വിൻഡോസ് ഉപയോക്താവിനായി ഒരു ലോഗിൻ സൃഷ്ടിക്കുന്നതിനുള്ള കോഡിന് ഏതാണ്ട് സമാനമാണ്. അതിനാൽ, ഒരു വിൻഡോസ് ഗ്രൂപ്പിനായി ഒരു ലോഗിൻ സൃഷ്ടിക്കുന്നതിനുള്ള ഇനിപ്പറയുന്ന ഉദാഹരണം വ്യക്തിഗത വിൻഡോസ് ഉപയോക്താക്കൾക്കായി ലോഗിനുകൾ സൃഷ്ടിക്കുന്നതിന് തുല്യമാണ്.

ലോഗിനുകൾ സൃഷ്ടിക്കുന്നതിനുള്ള ഉദാഹരണം രണ്ട് നടപടിക്രമങ്ങൾ ഉൾക്കൊള്ളുന്നു. ആദ്യ നടപടിക്രമം SQL സെർവറിൽ ഒരു ലോഗിൻ സൃഷ്ടിക്കുന്നതിനുള്ള പാരാമീറ്ററുകൾ നിർവചിക്കുന്നു, രണ്ടാമത്തെ നടപടിക്രമം പുതിയ ലോഗിനുകൾ സൃഷ്ടിക്കും. ഒരു ആന്തരിക സ്ഥിരാങ്കത്തിന്റെ മൂല്യത്തെ സ്ഥിരാങ്കത്തിന്റെ പേര് വിവരിക്കുന്ന ഒരു സ്ട്രിംഗാക്കി മാറ്റുന്ന ഒരു ഫംഗ്ഷനാണ് മൂന്നാമത്തെ നടപടിക്രമം.

രണ്ടാമത്തെ നടപടിക്രമം, സെർവറിലേക്ക് കണക്റ്റുചെയ്തതിനുശേഷം, ലോഗിൻ ഒബ്ജക്റ്റ് ആരംഭിക്കുന്നു. ഈ ഒബ്‌ജക്റ്റ് ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്ന ലോഗിൻ ശേഖരത്തിലെ ഒരു അംഗമാണ്. അടുത്തതായി, ലോഗിൻ ചെയ്യുന്നതിനായി നടപടിക്രമം മൂന്ന് പാരാമീറ്ററുകൾ സജ്ജമാക്കുന്നു: അതിന്റെ പേര് (login_name), സ്ഥിരസ്ഥിതി ഡാറ്റാബേസ് (defaulf_db_name), പാസ്‌വേഡ് (പാസ്‌വേഡ്). ലളിതമായ അസൈൻമെന്റ് പ്രവർത്തനങ്ങൾ ആദ്യ രണ്ട് ആർഗ്യുമെന്റുകളിൽ പ്രവർത്തിക്കുന്നു. SQL സെർവർ ലോഗിൻ ചെയ്യുന്നതിനായി ഒരു പാസ്‌വേഡ് സജ്ജീകരിക്കുന്നതിന്, ലോഗിൻ ഒബ്‌ജക്റ്റിന്റെ സെറ്റ്‌പാസ്‌വേഡ് രീതിയെ വിളിക്കുന്നു. ഒരു പുതിയ പ്രവേശനത്തിനായി ഒരു പാസ്‌വേഡ് സജ്ജീകരിക്കുമ്പോൾ, രീതിയുടെ ആദ്യ ആർഗ്യുമെന്റായി ഒരു ശൂന്യമായ സ്ട്രിംഗ് ഉപയോഗിക്കുക; രണ്ടാമത്തെ ആർഗ്യുമെന്റായി പുതിയ പ്രവേശനത്തിനുള്ള പാസ്‌വേഡ് വ്യക്തമാക്കുക. ഞങ്ങളുടെ ഉദാഹരണത്തിൽ, login_name എന്നതിനായുള്ള പാസ്‌വേഡ് "പാസ്‌വേഡ്" (ഉദ്ധരണികൾ ഇല്ലാതെ) ആയി നിർവചിച്ചിരിക്കുന്നു. ലോഗിൻ_നെയിം ലോഗിൻ ചേർക്കുന്നത് ലോഗിൻ കളക്ഷന്റെ ആഡ് മെത്തേഡ് വിളിക്കുന്നതിലൂടെ പൂർത്തിയാകും.

നിലവിലുള്ള ഒരു ലോഗിൻ പാസ്‌വേഡ് അസാധുവാക്കാൻ നിങ്ങൾക്ക് SetPassword രീതിയും ഉപയോഗിക്കാം. ഈ കേസിൽ SetPassword രീതിയുടെ ആദ്യ വാദം നിലവിലെ പാസ്വേഡ് ആണ്. എന്നിരുന്നാലും, നിങ്ങൾക്ക് നിലവിലെ പാസ്‌വേഡ് അറിയില്ലെങ്കിൽ, ഒരു പുതിയ ലോഗിൻ വേണ്ടി ഒരു പാസ്‌വേഡ് സൃഷ്‌ടിക്കുമ്പോൾ പോലെ, ആദ്യത്തെ ആർഗ്യുമെന്റായി നിങ്ങൾക്ക് ഒരു ശൂന്യമായ സ്ട്രിംഗ് വ്യക്തമാക്കാൻ കഴിയും. നിങ്ങളുടെ നിലവിലെ ലോഗിൻ (നിങ്ങൾ സെർവറിലേക്ക് കണക്റ്റുചെയ്‌തിരിക്കുന്ന) നിശ്ചിത സെർവർ റോളുകളിൽ ഒന്നിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ടെങ്കിൽ, ഒരു ലോഗിൻ സൃഷ്‌ടിക്കുന്നതോ മാറ്റുന്നതോ സാധ്യമാണ്: sysadmin അല്ലെങ്കിൽ Securityadmin. നിങ്ങൾ പാസ്‌വേഡ് എങ്ങനെ മാറ്റുന്നു എന്നത് പ്രശ്നമല്ല: പ്രോഗ്രാമാറ്റിക് അല്ലെങ്കിൽ മറ്റ് മാർഗങ്ങളിലൂടെ. ഉദാഹരണം sa ലോഗിൻ ഉപയോഗിക്കുന്നു, ഇത് sysadmin ഫിക്സഡ് സെർവർ റോളിന്റെ ഭാഗമാണ്.

രണ്ടാമത്തെ നടപടിക്രമത്തിന്റെ അടുത്ത കുറച്ച് വരികൾ msdn_OS_users എന്ന പേരിലുള്ള വിൻഡോസ് ഗ്രൂപ്പിനായി ഒരു ലോഗിൻ സൃഷ്ടിക്കുന്നു. എന്റെ കാര്യത്തിൽ, മൂന്ന് വിൻഡോസ് യൂസർ ഐഡികളുടെ ഈ വിൻഡോസ് ഗ്രൂപ്പ്, വാസ്തവത്തിൽ വിൻഡോസ് ഗ്രൂപ്പ് ഒന്നുകിൽ ഒരു പ്രാദേശിക കമ്പ്യൂട്ടർ ഉപയോക്തൃ ഗ്രൂപ്പോ അല്ലെങ്കിൽ വിൻഡോസ് സെർവർ ഡൊമെയ്ൻ ഉപയോക്തൃ ഗ്രൂപ്പോ ആകാം. ഒരു പുതിയ ലോഗിൻ ഒബ്‌ജക്‌റ്റ് (lgn1) ആരംഭിച്ച് ലോഗിൻ സൃഷ്‌ടിക്കൽ പ്രക്രിയ ആരംഭിക്കുന്നു. നിങ്ങൾ lgn1 പുനരാരംഭിക്കാതെ വീണ്ടും ഉപയോഗിക്കാൻ ശ്രമിക്കുകയാണെങ്കിൽ (പൂജ്യം), ഒരു പുതിയ ഒബ്‌ജക്റ്റ് ആവശ്യമാണെന്ന് നിങ്ങളെ ഓർമ്മിപ്പിക്കുന്ന ഒരു റൺടൈം പിശക് സംഭവിക്കും. നടപടിക്രമം രണ്ട് ഭാഗങ്ങളുള്ള വിൻഡോസ് ഗ്രൂപ്പിന്റെ പേര് ഉപയോഗിക്കുന്നു. ആദ്യ ഭാഗം വിൻഡോസ് സെർവർ നാമമാണ്, രണ്ടാമത്തേത് വിൻഡോസ് സെർവർ ഗ്രൂപ്പിന്റെ പേരാണ്. ബാക്ക്സ്ലാഷ് ഒരു ഡിലിമിറ്ററായി പ്രവർത്തിക്കുന്നു. രണ്ടാമത്തെ ലോഗിൻ ചെയ്യുന്നതിനുള്ള ഡിഫോൾട്ട് ഡാറ്റാബേസ് വീണ്ടും your_db_name ഡാറ്റാബേസ് ആണ്. രണ്ടാമത്തെ ലോഗിൻ വിൻഡോസ് പ്രാമാണീകരണത്തിനായി സൃഷ്ടിച്ചതിനാൽ, ഒരു പാസ്‌വേഡ് സജ്ജീകരിക്കേണ്ട ആവശ്യമില്ല. എന്നിരുന്നാലും, നിങ്ങൾ ടൈപ്പ് പ്രോപ്പർട്ടി SQLDMOLogin_NTGroup-ലേക്ക് സജ്ജീകരിക്കണം. ഈ മൂല്യം വിൻഡോസ് ഗ്രൂപ്പ് ലോഗിനുമായി ബന്ധപ്പെട്ട ഒരു ആന്തരിക സ്ഥിരാങ്കവുമായി പൊരുത്തപ്പെടുന്നു. ഒരു SQL സെർവർ ലോഗിൻ ചേർക്കുമ്പോൾ, നിങ്ങൾ ടൈപ്പ് പ്രോപ്പർട്ടി സജ്ജീകരിക്കേണ്ടതില്ല, കാരണം ഇത് SQL സെർവർ ലോഗിനുകളുടെ സ്ഥിരസ്ഥിതിയാണ്. ലോഗിൻ കളക്ഷന്റെ ആഡ് മെത്തേഡ് വിളിച്ച് രണ്ടാമത്തെ ലോഗിൻ സൃഷ്ടിക്കുന്നത് അവസാനിക്കുന്നു.

രണ്ട് പുതിയ ലോഗിനുകൾ ചേർത്ത ശേഷം, നടപടിക്രമം എല്ലാ സെർവർ ലോഗിനുകളുടെയും പേരുകളും തരങ്ങളും പ്രിന്റ് ചെയ്യുന്നു. ടൈപ്പ് പ്രോപ്പർട്ടി ആന്തരിക സ്ഥിരാങ്കങ്ങളുടെ മൂല്യവുമായി പൊരുത്തപ്പെടുന്നു. തരങ്ങളുടെ പ്രദർശനം റീഡബിൾ ആക്കുന്നതിന്, സ്ഥിരാങ്കങ്ങളെ അനുബന്ധ ടെക്സ്റ്റ് നാമങ്ങളാക്കി മാറ്റുന്ന ഒരു ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു.

ലോഗിൻ ശേഖരത്തിലെ അംഗങ്ങളെ പ്രിന്റ് ചെയ്‌ത ശേഷം, നടപടിക്രമം പേര് പ്രകാരം പുതുതായി സൃഷ്‌ടിച്ച രണ്ട് ലോഗിനുകളെ ഇല്ലാതാക്കുന്നു: login_name, YOUR_SERVER_NAME\msdn_OS_users. ഈ ഉദാഹരണം ലോഗിൻ ശേഖരത്തിന്റെ ഉപയോഗം, അതിന്റെ നീക്കം ചെയ്യൽ രീതി, നിങ്ങൾ നീക്കം ചെയ്യാൻ ആഗ്രഹിക്കുന്ന ലോഗിൻ ന്റെ നെയിം പ്രോപ്പർട്ടി എന്നിവ കാണിക്കുന്നു. രണ്ട് ലോഗിനുകൾ ഇല്ലാതാക്കുന്നത് സ്ഥിരീകരിക്കുന്നതിന്, നടപടിക്രമം ലോഗിൻ ശേഖരത്തിൽ നിന്ന് വീണ്ടും ലോഗിനുകളുടെ ലിസ്റ്റ് പ്രദർശിപ്പിക്കുന്നു. ഉടനടി വിൻഡോ തുറന്ന് ലോഗിനുകളുടെ രണ്ട് ലിസ്റ്റുകൾ താരതമ്യം ചെയ്യുക: രണ്ട് ലോഗിനുകൾ ചേർത്ത് നീക്കം ചെയ്തതിന് ശേഷം.

സബ് കോൾലോഗിൻഡെമോ()
മങ്ങിയ srvname As String
സ്ട്രിംഗ് ആയി ഡിം സുഡ്
സ്ട്രിംഗ് ആയി മങ്ങിയ pwd

"SQL സെർവർ ഉപയോഗിച്ച് പ്രാമാണീകരിക്കുമ്പോൾ ലോഗിൻ ചെയ്യുന്നതിനായി പാരാമീറ്ററുകൾ സജ്ജമാക്കുക
srvname = "YOUR_SERVER_NAME"
suid="sa"
pwd="പാസ്‌വേഡ്"

"ലോഗിൻ സൃഷ്ടിക്കൽ നടപടിക്രമം വിളിക്കുന്നു
LoginDemo srvname, suid, pwd

സബ് ലോഗിൻഡെമോ(സ്‌ട്രിംഗ് ആയി srvname, _

suid As String, pwd as String)
SQLDMO.SQLServer ആയി srv1 മങ്ങിക്കുക
SQLDMO ആയി lgn1 മങ്ങിക്കുക.ലോഗിൻ ചെയ്യുക

"ഒരു സെർവർ ഒബ്ജക്റ്റ് ആരംഭിക്കുന്നു
srv1 = പുതിയ SQLDMO.SQLServer സജ്ജമാക്കുക

"കണക്റ്റ് രീതിയിലേക്ക് വിളിക്കുന്നു
srv1. Connect srvname, suid, pwd

"ലോഗിൻ ഒബ്ജക്റ്റ് ആരംഭിക്കുന്നു
lgn1 = പുതിയ SQLDMO.ലോഗിൻ സജ്ജമാക്കുക

"ഒരു SQL സെർവർ ലോഗിൻ ചേർക്കുന്നു
lgn1.Name = "login_name"
lgn1.SetPassword "", "പാസ്‌വേഡ്"

srv1.Logins.lgn1 ചേർക്കുക

"പുനരുപയോഗത്തിനായി ലോഗിൻ ആരംഭിക്കുന്നു
lgn1 = പുതിയ SQLDMO.ലോഗിൻ സജ്ജമാക്കുക

"വിൻഡോസ് ഗ്രൂപ്പിനായി ഒരു ലോഗിൻ ചേർക്കുക
lgn1.Name = "YOUR_SERVER_NAME\msdn_OS_users"
lgn1.ഡാറ്റാബേസ് = "your_db_name"
lgn1.Type = SQLDMOLogin_NTGroup
srv1.Logins.lgn1 ചേർക്കുക

"രണ്ട് പുതിയവ ചേർത്തതിന് ശേഷം എല്ലാ ലോഗിനുകളുടെയും ഔട്ട്പുട്ട്
ഡീബഗ് ചെയ്യുക. "രണ്ട് പുതിയവ ചേർത്തതിന് ശേഷം ലോഗിൻ ചെയ്യുക" പ്രിന്റ് ചെയ്യുക

അടുത്ത ലോഗ്1

"പുതുതായി ചേർത്ത ലോഗിനുകൾ ഇല്ലാതാക്കുന്നു
srv1.Logins. "YOUR_SERVER_NAME\msdn_OS_users" നീക്കം ചെയ്യുക
srv1.Logins."login_name" നീക്കം ചെയ്യുക

"എല്ലാ ലോഗിനുകളും വീണ്ടും പ്രദർശിപ്പിക്കുന്നു
Debug.Print vbCr & "രണ്ട് ലോഗിനുകൾ ഇല്ലാതാക്കിയതിന് ശേഷമുള്ള ലോഗിൻ"
srv1.ലോഗിനുകളിൽ ഓരോ lgn1-നും
ഡീബഗ് ചെയ്യുക.പ്രിന്റ് ഡീകോഡ്ലോഗിൻടൈപ്പ്(lgn1.Type), lgn1.Name
അടുത്ത ലോഗ്1

"വേരിയബിളുകൾ മായ്ക്കുന്നു
srv1. Disconnect
srv1 = ഒന്നുമില്ല

ഫംഗ്ഷൻ ഡീകോഡ്ലോഗിൻടൈപ്പ് (lgn_type As Byte) സ്ട്രിംഗ് ആയി

കേസ് lgn_type തിരഞ്ഞെടുക്കുക
കേസ് 0
DecodeLoginType = "SQLDMOLogin_NTUser"
കേസ് 1
DecodeLoginType = "SQLDMOLogin_NTGroup"
കേസ് 2
DecodeLoginType = "SQLDMOLogin_Standard"
കേസ് വേറെ
DecodeLoginType = "ടൈപ്പ് ഔട്ട് ഓഫ് റേഞ്ച്"
തിരഞ്ഞെടുക്കൽ അവസാനിപ്പിക്കുക

db_datareader റോളിൽ അംഗമായ ഒരു ഉപയോക്താവുമായി ഒരു ലോഗിൻ സൃഷ്ടിക്കുന്നു

പ്രോഗ്രമാറ്റിക്കായി ഒരു പുതിയ ലോഗിൻ ചേർക്കുകയും ഒരു ഡിഫോൾട്ട് ഡാറ്റാബേസിലേക്ക് അസൈൻ ചെയ്യുകയും ചെയ്യുന്നത് ആ ലോഗിൻ ചെയ്യുന്നതിനായി ഡാറ്റാബേസിൽ ഒരു ഉപയോക്താവിനെ സൃഷ്ടിക്കുന്നില്ല. അതിനാൽ, ഈ ലോഗിൻ അടിസ്ഥാനമാക്കിയുള്ള ഒരു ADP പ്രോജക്റ്റിന് സ്ഥിരസ്ഥിതി ഡാറ്റാബേസിലേക്ക് കണക്റ്റുചെയ്യാൻ കഴിയില്ല. പ്രോജക്റ്റ് ഡാറ്റാബേസുമായി പ്രവർത്തിക്കുന്നതിന്, നിങ്ങളുടെ ലോഗിൻ ചെയ്യുന്നതിനായി നിങ്ങൾ ഡാറ്റാബേസിൽ ഒരു ഉപയോക്താവിനെ സൃഷ്ടിക്കേണ്ടതുണ്ട്.

ലേഖനത്തിന്റെ അവസാന കോഡ് ഉദാഹരണം ഒരു പുതിയ SQL സെർവർ പ്രാമാണീകരണ ലോഗിൻ ചേർക്കുന്നതിനുള്ള നടപടിക്രമവും നിങ്ങളുടെ_db_name ഡാറ്റാബേസിൽ ആ ലോഗിൻ ചെയ്യുന്നതിനായി ഒരു ഉപയോക്താവിനെ സൃഷ്ടിക്കുന്നതും കാണിക്കുന്നു. ഈ ഉദാഹരണത്തിൽ, പുതിയ ഉപയോക്താവിനെ db_datareader ഫിക്സഡ് ഡാറ്റാബേസ് റോളിലേക്കും നിയോഗിക്കുന്നു. അവസാനമായി, പുതിയ ലോഗിൻ, ഉപയോക്താവിനെ അടിസ്ഥാനമാക്കി ADP പ്രോജക്റ്റ് തുറക്കുന്നു.

സെർവറിലേക്ക് കണക്റ്റുചെയ്‌ത് ഒരു പുതിയ login_name സൃഷ്‌ടിച്ച ശേഷം, കോഡ് ഒരു പുതിയ ഉപയോക്താവിനെ സൃഷ്‌ടിക്കുന്നു. അടുത്തതായി, പേരും ലോഗിൻ പ്രോപ്പർട്ടികളും ഉപയോക്താവിന് നൽകിയിട്ടുണ്ട്. ലോഗിൻ പ്രോപ്പർട്ടി എന്നാൽ ഉപയോക്താവ് ബന്ധിപ്പിക്കുന്ന ലോഗിൻ എന്നാണ് അർത്ഥമാക്കുന്നത് - ഞങ്ങളുടെ ഉദാഹരണത്തിൽ login_name. തുടർന്ന് ഡാറ്റാബേസിന്റെ ഉപയോക്താക്കളുടെ ശേഖരത്തിലേക്ക് ചേർക്കാൻ ഉപയോക്താവ് തയ്യാറാണ്. ഒരു പുതിയ ഉപയോക്താവിനെ ചേർക്കുന്നതിനുള്ള വാക്യഘടന ഒബ്ജക്റ്റ് ശ്രേണിയുടെ വാക്യഘടനയെ പിന്തുടരുന്നു എന്നത് ശ്രദ്ധിക്കുക. ഒരു പുതിയ ഉപയോക്താവിനുള്ള ആഡ് മെത്തേഡ് ഉപയോക്താക്കളുടെ ശേഖരത്തിൽ പ്രയോഗിക്കുന്നു, അത് ഡാറ്റാബേസ് ഒബ്‌ജക്റ്റിന്റേതാണ്. സെർവർ ഒബ്‌ജക്‌റ്റിന്റെ (SQLserver) ഉടമസ്ഥതയിലുള്ള ഡാറ്റാബേസ് ശേഖരണത്തിലെ അംഗമാണ് ഡാറ്റാബേസ്. ഒരു ഉപയോക്താവിനെ സൃഷ്ടിച്ച ശേഷം, ഉപയോക്താവിനെ db_datareader ഫിക്സഡ് ഡാറ്റാബേസ് റോളിലേക്ക് ചേർക്കുന്നതിന് ഒന്നോ അതിലധികമോ ലൈനുകൾ ആവശ്യമാണ്. ഒരു റോളിലേക്ക് ഒരു ഉപയോക്താവിനെ ചേർക്കുന്നതിനുള്ള രീതിയെ AddMember എന്ന് വിളിക്കുന്നു. ഞങ്ങളുടെ കാര്യത്തിൽ, DatabaseRoles ശേഖരണ ഘടകത്തിന്റെ AddMember രീതി ഒരു ഉപയോക്താവിനെ ഒരു ഡാറ്റാബേസ് റോളിലേക്ക് ചേർക്കുന്നു. ഈ രീതി പുതിയ ഉപയോക്തൃ ഒബ്‌ജക്റ്റിന്റെ നെയിം പ്രോപ്പർട്ടിയുടെ സ്ട്രിംഗ് എക്‌സ്‌പ്രഷൻ ഒരു പാരാമീറ്ററായി എടുക്കുന്നു.

പുതിയ പ്രവേശനത്തിനും ഉപയോക്താവിനുമുള്ള സുരക്ഷാ കോൺഫിഗറേഷൻ പൂർത്തിയായിക്കഴിഞ്ഞാൽ, OpenADPWindowsOrSQLServer നടപടിക്രമം വിളിക്കുന്നു. ഈ നടപടിക്രമം എങ്ങനെ ഉപയോഗിക്കാമെന്നതിന്റെ ഒരു ഉദാഹരണം മുമ്പത്തെ ലിസ്റ്റിംഗുകൾ നൽകുന്നു. ഞങ്ങളുടെ കാര്യത്തിൽ, login_name അടിസ്ഥാനമാക്കിയാണ് msdn_test_security.adp ഫയൽ തുറക്കുന്നത്. ലോഗിൻ പ്രവർത്തനക്ഷമത പരിശോധിക്കുന്നതിന്, your_db_name ഡാറ്റാബേസ് പട്ടികകൾ തുറക്കുക. കൂടാതെ, ലോഗിൻ your_login വ്യക്തമാക്കിക്കൊണ്ട് കണക്ഷൻ പാരാമീറ്ററുകൾ ഡയലോഗ് ബോക്സിൽ പുതിയ ലോഗിൻ പ്രവർത്തനക്ഷമത പരിശോധിക്കാവുന്നതാണ്.

നിങ്ങൾ MakeLoginWithDatareaderUser നടപടിക്രമം വീണ്ടും പ്രവർത്തിപ്പിക്കാൻ ശ്രമിക്കുകയാണെങ്കിൽ, ശ്രമം പരാജയപ്പെടും. ലോഗിൻ your_login ഇതിനകം നിലവിലിരിക്കുന്നതിനാലാണിത്. നിങ്ങൾ അത് വീണ്ടും ചേർക്കാൻ ശ്രമിക്കുമ്പോൾ ഒരു പിശക് സംഭവിക്കും. നടപടിക്രമം പ്രവർത്തിപ്പിക്കാനുള്ള ശ്രമം മറ്റൊരു കാരണത്താൽ പരാജയപ്പെട്ടേക്കാം: ഈ ലോഗിൻ ഉപയോഗിച്ച് ഡാറ്റാബേസുമായി ബന്ധിപ്പിച്ചിരിക്കുന്ന പ്രോജക്റ്റ് നിങ്ങൾ അടച്ചിട്ടില്ല. റൺടൈം പിശകുകൾ കൈകാര്യം ചെയ്യാൻ നിങ്ങൾക്ക് സാധാരണ VBA പിശക് കൈകാര്യം ചെയ്യൽ എഴുതാം. മുമ്പത്തെ ഉദാഹരണങ്ങളുടെ നിർവ്വഹണത്തോടൊപ്പം സമാനമായ പിശകുകൾ ഉണ്ടാകാം. എസ്‌ക്യുഎൽ സെർവർ സുരക്ഷാ പ്രശ്‌നങ്ങളിൽ ശ്രദ്ധ കേന്ദ്രീകരിച്ച് റൺടൈം പിശക് കണ്ടെത്തലിന്റെ ചർച്ചയിലേക്ക് പോകേണ്ടതില്ലെന്ന് ഞാൻ തീരുമാനിച്ചു.

Sub MakeLoginWithDatareaderUser()
SQLDMO.SQLServer ആയി srv1 മങ്ങിക്കുക
SQLDMO ആയി lgn1 മങ്ങിക്കുക.ലോഗിൻ ചെയ്യുക
SQLDMO.User ആയി usr1 ഡിം ചെയ്യുക
മങ്ങിയ srvname As String
സ്ട്രിംഗ് ആയി ഡിം സുഡ്
സ്ട്രിംഗ് ആയി മങ്ങിയ pwd
സ്‌ട്രിംഗ് ആയി മങ്ങിയ dbname
സ്ട്രിംഗ് ആയി മങ്ങിയ പാത
മങ്ങിയ prname As String
ഡിം ബോൾ വിൻഡോസ് ബൂളിയൻ ആയി ലോഗിൻ ചെയ്യുക

"വാദങ്ങൾ നിർവചിക്കുന്നു
srvname = "YOUR_SERVER_NAME"
suid="sa"
pwd="പാസ്‌വേഡ്"
dbname = "your_db_name"

"സെർവർ ആരംഭിക്കുക
srv1 = പുതിയ SQLDMO.SQLServer സജ്ജമാക്കുക

"SQL സെർവർ ഉപയോഗിച്ച് പ്രാമാണീകരിക്കുമ്പോൾ ലോഗിൻ ചെയ്യുന്നതിനായി കണക്റ്റ് രീതിയിലേക്ക് വിളിക്കുക
srv1. Connect srvname, suid, pwd

"ലോഗിൻ ഒബ്ജക്റ്റ് ആരംഭിക്കുകയും ചേർക്കുകയും ചെയ്യുക
"srv1 സെർവറിലേക്ക്
suid = "login_name"
lgn1 = പുതിയ SQLDMO.ലോഗിൻ സജ്ജമാക്കുക
lgn1.Name = suid
lgn1.ഡാറ്റാബേസ് = dbname
lgn1.SetPassword "", pwd
srv1.Logins.lgn1 ചേർക്കുക

"ഉപയോക്തൃ ഒബ്ജക്റ്റ് ആരംഭിക്കുകയും ചേർക്കുകയും ചെയ്യുക
"നിങ്ങളുടെ_db_name എന്ന ഡാറ്റാബേസിലേക്ക്
usr1 = New SQLDMO.User സജ്ജീകരിക്കുക
usr1.Name = suid
usr1.ലോഗിൻ = lgn1.Name
srv1.Databases(dbname).Users.Add usr1
srv1.Databases(dbname).DatabaseRoles("db_datareader").AddMember usr1.Name

"ഒരു ADP പ്രോജക്റ്റ് തുറക്കുന്നതിനുള്ള പാരാമീറ്ററുകൾ സജ്ജമാക്കുക

prpath = "Path_to_project_file"
prname = "msdn_security_test"

"ഈ വാദം വിൻഡോസ് ലോഗിൻ ഉപയോഗം നിയന്ത്രിക്കുന്നു
"suid, pwd SQL സെർവറിനുപകരം നിലവിലെ ഉപയോക്താവിനായി
bolWindowsLogin = തെറ്റ്

"പ്രോജക്റ്റ് ഓപ്പണിംഗ് നടപടിക്രമത്തെ പേരു വിളിക്കുന്നു
"വിൻഡോസ് അല്ലെങ്കിൽ SQL സെർവർ പ്രാമാണീകരണത്തോടൊപ്പം
OpenADPWindowsOrSQLServer srvname, dbname, _
prpath, prname, suid, pwd, bolWindowsLogin

"ഞങ്ങൾ ഒബ്ജക്റ്റ് കാണുന്നതിനായി തുറന്നിടുന്നു

ഉപസംഹാരം

SQL സെർവർ സുരക്ഷ ജെറ്റ് ഡാറ്റാബേസ് പ്രോഗ്രാമർമാർ ഉപയോഗിക്കുന്നതിലും വ്യത്യസ്തമായ തത്വങ്ങളിലാണ് നിർമ്മിച്ചിരിക്കുന്നത്. എന്നിരുന്നാലും, SQL സെർവർ ബുക്സ് ഓൺലൈനിൽ SQL സെർവർ സുരക്ഷാ മാർഗ്ഗനിർദ്ദേശങ്ങൾ ശ്രദ്ധാപൂർവ്വം രേഖപ്പെടുത്തുന്നു. ഈ ലേഖനം അടിസ്ഥാന BOL നിയമങ്ങളെ നിർദ്ദിഷ്ട നിയമങ്ങളിലേക്ക് വിവർത്തനം ചെയ്യുന്നു, ഇതിന്റെ ഉദ്ദേശ്യം SQL സെർവറിനൊപ്പം ഒരു ആക്‌സസ് പ്രോജക്റ്റ് ഉപയോഗിക്കുക എന്നതാണ്. ആക്‌സസ് ഉപയോഗിച്ച് SQL സെർവർ സുരക്ഷ എങ്ങനെ കൈകാര്യം ചെയ്യാമെന്ന് ഈ ലേഖനത്തിലെ കോഡ് ഉദാഹരണങ്ങൾ കാണിക്കുന്നു.

ലോക്കിംഗിന്റെ അഭാവം മറികടക്കാൻ നിങ്ങൾ എപ്പോഴെങ്കിലും മറ്റ് ഡാറ്റാബേസ് ഭാഷകളിൽ ലോക്കിംഗ് സ്കീമുകൾ എഴുതിയിട്ടുണ്ടെങ്കിൽ (എനിക്ക് ഉള്ളത് പോലെ), നിങ്ങൾ സ്വയം ലോക്കിംഗ് കൈകാര്യം ചെയ്യണമെന്ന തോന്നൽ നിങ്ങൾക്ക് അവശേഷിച്ചിരിക്കാം. ലോക്ക് മാനേജറെ പൂർണ്ണമായും വിശ്വസിക്കാൻ കഴിയുമെന്ന് ഞാൻ നിങ്ങൾക്ക് ഉറപ്പ് നൽകുന്നു. എന്നിരുന്നാലും, ലോക്കുകൾ കൈകാര്യം ചെയ്യുന്നതിനായി SQL സെർവർ നിരവധി രീതികൾ വാഗ്ദാനം ചെയ്യുന്നു, അത് ഞങ്ങൾ ഈ വിഭാഗത്തിൽ വിശദമായി ചർച്ച ചെയ്യും.

ലോക്കിംഗ് ക്രമീകരണങ്ങൾ പ്രയോഗിക്കുകയോ ഐസൊലേഷൻ ലെവലുകൾ ക്രമരഹിതമായി മാറ്റുകയോ ചെയ്യരുത് - തർക്കവും ഇടപാടിന്റെ സമഗ്രതയും സന്തുലിതമാക്കാൻ SQL സെർവർ ലോക്ക് മാനേജരെ വിശ്വസിക്കുക. ഡാറ്റാബേസ് സ്കീമ നന്നായി ക്രമീകരിച്ചിട്ടുണ്ടെന്നും പ്രോഗ്രാം കോഡ് അക്ഷരാർത്ഥത്തിൽ മിനുക്കിയിട്ടുണ്ടെന്നും നിങ്ങൾക്ക് ഉറപ്പുണ്ടെങ്കിൽ മാത്രം, ഒരു നിർദ്ദിഷ്ട പ്രശ്നം പരിഹരിക്കുന്നതിന് നിങ്ങൾക്ക് ലോക്ക് മാനേജരുടെ പെരുമാറ്റം ചെറുതായി ക്രമീകരിക്കാൻ കഴിയും. ചില സാഹചര്യങ്ങളിൽ, തിരഞ്ഞെടുത്ത ചോദ്യങ്ങൾ ലോക്ക് ചെയ്യാതിരിക്കാൻ സജ്ജീകരിക്കുന്നത് മിക്ക പ്രശ്നങ്ങളും പരിഹരിക്കും.

കണക്ഷൻ ഐസൊലേഷൻ ലെവൽ ക്രമീകരിക്കുന്നു

ഐസൊലേഷൻ ലെവൽ പൊതുവായ അല്ലെങ്കിൽ എക്സ്ക്ലൂസീവ് കണക്ഷൻ ബ്ലോക്കിംഗിന്റെ ദൈർഘ്യം നിർണ്ണയിക്കുന്നു. ഐസൊലേഷൻ ലെവൽ സജ്ജീകരിക്കുന്നത് എല്ലാ ചോദ്യങ്ങളെയും കണക്ഷന്റെ കാലയളവിലേക്കോ അല്ലെങ്കിൽ ഒരു ഐസൊലേഷൻ ലെവലിനെ മറ്റൊന്ന് വ്യക്തമായി മാറ്റിസ്ഥാപിക്കുന്നതുവരെ ഉപയോഗിക്കുന്ന എല്ലാ ടേബിളുകളെയും ബാധിക്കുന്നു. ഇനിപ്പറയുന്ന ഉദാഹരണം സ്ഥിരസ്ഥിതിയേക്കാൾ കർശനമായ ഒറ്റപ്പെടൽ സജ്ജമാക്കുകയും ആവർത്തിക്കാത്ത വായനകളെ തടയുകയും ചെയ്യുന്നു:

സെറ്റ് ട്രാൻസാക്ഷൻ ഐസൊലേഷൻ ലെവൽ ആവർത്തിച്ച് വായിക്കാൻ സാധുവായ ഐസൊലേഷൻ ലെവലുകൾ ഇവയാണ്:

പ്രതിബദ്ധതയില്ലാതെ വായിക്കണോ? സീരിയൽ ചെയ്യാവുന്ന

പ്രതിജ്ഞാബദ്ധത വായിക്കണോ? സ്നാപ്പ്ഷോട്ട്

ആവർത്തിച്ചുള്ള വായന

ഡാറ്റാബേസ് ഇന്റഗ്രിറ്റി ചെക്ക് (DBCC) കമാൻഡ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് നിലവിലെ ഐസൊലേഷൻ ലെവൽ പരിശോധിക്കാം:

DBCC USEROPTIONS

ഫലങ്ങൾ ഇപ്രകാരമായിരിക്കും (ചുരുക്കത്തിൽ):

ഓപ്ഷൻ മൂല്യം സജ്ജമാക്കുക

ഒറ്റപ്പെടൽ നില ആവർത്തിക്കാവുന്ന വായന

ലോക്കിംഗ് ഓപ്‌ഷനുകൾ ഉപയോഗിച്ച് അന്വേഷണത്തിലോ ടേബിൾ തലത്തിലോ ഐസൊലേഷൻ ലെവലുകൾ സജ്ജീകരിക്കാം.

ഡാറ്റാബേസ് സ്നാപ്പ്ഷോട്ട് ലെവൽ ഐസൊലേഷൻ ഉപയോഗിക്കുന്നു

ഡാറ്റാബേസ് സ്നാപ്പ്ഷോട്ടുകളുടെ ഐസൊലേഷൻ ലെവലിന് രണ്ട് ഓപ്ഷനുകൾ ഉണ്ട്: സ്നാപ്പ്ഷോട്ടും റീഡ് കമ്മിറ്റ്ഡ് സ്നാപ്പ്ഷോട്ടും. ലോക്കിംഗ് പ്രശ്‌നങ്ങൾ കൈകാര്യം ചെയ്യാതെ തന്നെ സ്‌നാപ്പ്‌ഷോട്ട് ഐസൊലേഷൻ ആവർത്തിക്കാവുന്ന വായന പോലെ പ്രവർത്തിക്കുന്നു. റീഡ് കമ്മിറ്റഡ് സ്‌നാപ്പ്‌ഷോട്ട് ഐസൊലേഷൻ SQL സെർവറിന്റെ ഡിഫോൾട്ട് റീഡ് കമ്മിറ്റഡ് ലെവലിനെ അനുകരിക്കുന്നു, ലോക്കിംഗ് പ്രശ്‌നങ്ങളും ഇല്ലാതാക്കുന്നു.

ഇടപാട് ഐസൊലേഷൻ സാധാരണയായി കണക്ഷൻ തലത്തിൽ കോൺഫിഗർ ചെയ്യപ്പെടുമ്പോൾ, സ്നാപ്പ്ഷോട്ട് ഐസൊലേഷൻ ഡാറ്റാബേസ് തലത്തിൽ കോൺഫിഗർ ചെയ്യണം, കാരണം അത്

ഡാറ്റാബേസിലെ വരികളുടെ പതിപ്പ് ഫലപ്രദമായി ട്രാക്ക് ചെയ്യുന്നു. അപ്‌ഡേറ്റ് ചെയ്യുന്നതിനായി TempDB ഡാറ്റാബേസിൽ വരികളുടെ പകർപ്പുകൾ സൃഷ്ടിക്കുന്ന ഒരു സാങ്കേതികവിദ്യയാണ് റോ പതിപ്പിംഗ്. TempDB ഡാറ്റാബേസിന്റെ പ്രധാന ലോഡിംഗിന് പുറമേ, വരി പതിപ്പ് ഒരു 14-ബൈറ്റ് വരി ഐഡന്റിഫയറും ചേർക്കുന്നു.

സ്നാപ്പ്ഷോട്ട് ഐസൊലേഷൻ ഉപയോഗിക്കുന്നു

ഇനിപ്പറയുന്ന സ്‌നിപ്പറ്റ് സ്‌നാപ്പ്‌ഷോട്ട് ഐസൊലേഷൻ ലെവൽ പ്രവർത്തനക്ഷമമാക്കുന്നു. ഡാറ്റാബേസ് അപ്ഡേറ്റ് ചെയ്യുന്നതിനും സ്നാപ്പ്ഷോട്ട് ഐസൊലേഷൻ ലെവൽ പ്രവർത്തനക്ഷമമാക്കുന്നതിനും, ഈ ഡാറ്റാബേസിലേക്ക് മറ്റ് കണക്ഷനുകളൊന്നും സ്ഥാപിക്കേണ്ടതില്ല.

ആൾട്ടർ ഡാറ്റാബേസ് ഈസോപ്പ്

ALLOW_SNAPSHOT_ISOLATION ഓണാക്കി സജ്ജമാക്കുക

| ഒരു ഡാറ്റാബേസിൽ സ്‌നാപ്പ്‌ഷോട്ട് ഐസൊലേഷൻ പ്രവർത്തനക്ഷമമാക്കിയിട്ടുണ്ടോ എന്ന് പരിശോധിക്കാൻ, ഇനിപ്പറയുന്ന SVS അന്വേഷണം പ്രവർത്തിപ്പിക്കുക: SELECT പേര്, snapshot_isolation_state_desc [ *sysdatabases-ൽ നിന്ന്.

ഇപ്പോൾ ആദ്യത്തെ ഇടപാട് വായിക്കാൻ തുടങ്ങുകയും തുറന്ന് തുടരുകയും ചെയ്യുന്നു (അതായത് പ്രതിജ്ഞാബദ്ധമല്ല): ഈസോപ്പ് ഉപയോഗിക്കുക

FABLD = 2 FABLE-ൽ നിന്ന് TRAN തിരഞ്ഞെടുക്കുക ശീർഷകം ആരംഭിക്കുക

ഇനിപ്പറയുന്ന ഫലം ലഭിക്കും:

ഈ സമയത്ത്, രണ്ടാമത്തെ ഇടപാട് ആദ്യ ഇടപാട് തുറന്ന അതേ വരി അപ്‌ഡേറ്റ് ചെയ്യാൻ തുടങ്ങുന്നു:

ട്രാൻസാക്ഷൻ ഐസൊലേഷൻ ലെവൽ സ്നാപ്പ്ഷോട്ട് സജ്ജമാക്കുക;

ട്രാൻ അപ്‌ഡേറ്റ് കെട്ടുകഥ ആരംഭിക്കുക

സെറ്റ് ടൈറ്റിൽ = 'റോക്കിംഗ് വിത്ത് സ്നാപ്പ്ഷോട്ടുകൾ'

എവിടെ FablD = 2;

FABLD = 2 എവിടെയാണ് കെട്ടുകഥയിൽ നിന്ന് * തിരഞ്ഞെടുക്കുക

ഫലം ഇപ്രകാരമാണ്:

സ്നാപ്പ്ഷോട്ടുകൾ ഉപയോഗിച്ച് റോക്കിംഗ്

അത് ആശ്ചര്യകരമല്ലേ? ആദ്യ ഇടപാട് തുറന്നിരുന്നെങ്കിലും രണ്ടാമത്തെ ഇടപാടിന് വരി അപ്‌ഡേറ്റ് ചെയ്യാൻ കഴിഞ്ഞു. നമുക്ക് ആദ്യ ഇടപാടിലേക്ക് മടങ്ങി യഥാർത്ഥ ഡാറ്റ നോക്കാം:

FABLD = 2 എവിടെയാണ് കെട്ടുകഥയിൽ നിന്ന് തലക്കെട്ട് തിരഞ്ഞെടുക്കുക

ഫലം ഇപ്രകാരമാണ്:

നിങ്ങൾ മൂന്നാമത്തെയും നാലാമത്തെയും ഇടപാടുകൾ തുറക്കുകയാണെങ്കിൽ, അവർ ദ ബാൽഡ് നൈറ്റിന്റെ അതേ യഥാർത്ഥ മൂല്യം കാണും:

രണ്ടാമത്തെ ഇടപാട് മാറ്റങ്ങൾ വരുത്തിയ ശേഷവും, ആദ്യത്തേത് യഥാർത്ഥ മൂല്യം കാണും, തുടർന്നുള്ള എല്ലാ ഇടപാടുകളും സ്നാപ്പ്ഷോട്ടുകൾ ഉപയോഗിച്ച് റോക്കിംഗ് എന്ന പുതിയ മൂല്യം കാണും.

ഐസൊലേഷൻ റീഡ് കമ്മിറ്റഡ് സ്നാപ്പ്ഷോട്ട് ഉപയോഗിക്കുന്നു

സമാനമായ വാക്യഘടന ഉപയോഗിച്ച് Read Commited Snapshot ഐസൊലേഷൻ പ്രവർത്തനക്ഷമമാക്കിയിരിക്കുന്നു:

ആൾട്ടർ ഡാറ്റാബേസ് ഈസോപ്പ്

READ_COMMITTED_SNAPSHOT ഓണാക്കി സജ്ജമാക്കുക

സ്‌നാപ്പ്‌ഷോട്ട് ഐസൊലേഷനു സമാനമായി, ലോക്കിംഗ് പ്രശ്‌നങ്ങൾ ലഘൂകരിക്കാൻ ഈ ലെയറും റോ പതിപ്പിംഗ് ഉപയോഗിക്കുന്നു. മുമ്പത്തെ വിഭാഗത്തിൽ വിവരിച്ച ഉദാഹരണം ഞങ്ങൾ അടിസ്ഥാനമായി എടുക്കുകയാണെങ്കിൽ, ഇൻ ഈ സാഹചര്യത്തിൽആദ്യ ഇടപാടിൽ രണ്ടാമൻ വരുത്തിയ മാറ്റങ്ങൾ അവർ പ്രതിജ്ഞാബദ്ധമായ ഉടൻ തന്നെ കാണും.

SQL സെർവറിലെ ഡിഫോൾട്ട് ഐസൊലേഷൻ ലെവലാണ് റീഡ് കമ്മിറ്റഡ് എന്നതിനാൽ, ഡാറ്റാബേസ് പാരാമീറ്ററുകൾ മാത്രം സജ്ജീകരിക്കേണ്ടതുണ്ട്.

എഴുത്ത് വൈരുദ്ധ്യങ്ങൾ പരിഹരിക്കുന്നു

സ്‌നാപ്പ്‌ഷോട്ട് ഐസൊലേഷൻ ലെവൽ സജ്ജീകരിച്ചിരിക്കുമ്പോൾ ഡാറ്റ എഴുതുന്ന ഇടപാടുകൾ മുമ്പത്തെ പ്രതിബദ്ധതയില്ലാത്ത റൈറ്റ് ഇടപാടുകൾ തടഞ്ഞേക്കാം. അത്തരമൊരു ലോക്ക് ഒരു പുതിയ ഇടപാട് കാത്തിരിക്കുന്നതിന് കാരണമാകില്ല - ഇത് ഒരു പിശക് സൃഷ്ടിക്കും. അത്തരം സാഹചര്യങ്ങൾ കൈകാര്യം ചെയ്യാൻ, ഒരു ട്രൈ എക്സ്പ്രഷൻ ഉപയോഗിക്കുക. . . പിടിക്കുക, കുറച്ച് നിമിഷങ്ങൾ കാത്തിരുന്ന് ഇടപാട് വീണ്ടും ശ്രമിക്കുക.

തടയൽ ഓപ്ഷനുകൾ ഉപയോഗിക്കുന്നു

തടയൽ തന്ത്രത്തിൽ താൽക്കാലിക മാറ്റങ്ങൾ വരുത്താൻ തടയൽ പാരാമീറ്ററുകൾ നിങ്ങളെ അനുവദിക്കുന്നു. ഒറ്റപ്പെടൽ നില കണക്ഷനെ മൊത്തത്തിൽ ബാധിക്കുമ്പോൾ, ലോക്കിംഗ് ഓപ്ഷനുകൾ ഓരോ ടേബിളിനും ഒരു പ്രത്യേക അന്വേഷണത്തിൽ പ്രത്യേകമാണ് (പട്ടിക 51.5). ചോദ്യത്തിന്റെ FROM ക്ലോസിൽ പട്ടികയുടെ പേരിന് ശേഷം WITH ഓപ്ഷൻ (lock_option) സ്ഥാപിച്ചിരിക്കുന്നു. ഓരോ പട്ടികയ്ക്കും, നിങ്ങൾക്ക് കോമകളാൽ വേർതിരിച്ച ഒന്നിലധികം പാരാമീറ്ററുകൾ വ്യക്തമാക്കാൻ കഴിയും.

പട്ടിക 51.5. തടയൽ ഓപ്ഷനുകൾ

പരാമീറ്റർ

തടയുന്നു

വിവരണം

ഒറ്റപ്പെടൽ നില. ഒരു ലോക്ക് സജ്ജീകരിക്കുകയോ പിടിക്കുകയോ ചെയ്യുന്നില്ല. ബ്ലോക്ക് ചെയ്യാത്തതിന് തുല്യമാണ്

ഡിഫോൾട്ട് ട്രാൻസാക്ഷൻ ഐസൊലേഷൻ ലെവൽ

ഒറ്റപ്പെടൽ നില. ഇടപാട് സ്ഥിരീകരിക്കുന്നത് വരെ പങ്കിട്ടതും എക്സ്ക്ലൂസീവ് ലോക്കുകളും ഹോൾഡ് ചെയ്യുന്നു

ഒറ്റപ്പെടൽ നില. ഇടപാട് പൂർത്തിയാകുന്നതുവരെ പങ്കിട്ട ലോക്ക് പിടിക്കുന്നു

കാത്തിരിക്കുന്നതിന് പകരം തടഞ്ഞ വരികൾ ഒഴിവാക്കുക

പേജ്, പരിധി അല്ലെങ്കിൽ ടേബിൾ ലെവലിന് പകരം വരി തലത്തിൽ ലോക്കിംഗ് പ്രവർത്തനക്ഷമമാക്കുക

ടേബിൾ ലെവൽ ലോക്കിംഗിന് പകരം പേജ് ലെവൽ ലോക്കിംഗ് പ്രവർത്തനക്ഷമമാക്കുക

ടേബിൾ ലെവൽ ഗ്രാനുലാരിറ്റിയിലേക്ക് വരി, പേജ്, പരിധി ലെവൽ ലോക്കുകൾ എന്നിവയുടെ യാന്ത്രിക വർദ്ധനവ്

പരാമീറ്റർ

തടയുന്നു

വിവരണം

ലോക്കുകൾ പ്രയോഗിക്കുന്നതിലും പരിപാലിക്കുന്നതിലും പരാജയം. ReadUnCommitted പോലെ തന്നെ

ഒരു എക്സ്ക്ലൂസീവ് ടേബിൾ ലോക്ക് പ്രവർത്തനക്ഷമമാക്കുക. മേശയുമായി പ്രവർത്തിക്കുന്നതിൽ നിന്ന് മറ്റ് ഇടപാടുകൾ തടയുന്നു

ഇടപാട് നടക്കുന്നതുവരെ പങ്കിട്ട ലോക്ക് പിടിക്കുക (സീരിയലൈസ് ചെയ്യാവുന്നത് പോലെ)

പൊതുവായതിന് പകരം ഒരു അപ്‌ഡേറ്റ് ലോക്ക് ഉപയോഗിച്ച് അത് പിടിക്കുക. പ്രാരംഭ വായനകൾക്കും എഴുത്തുകൾക്കുമിടയിൽ മറ്റ് എഴുത്തുകൾ ഡാറ്റയിലേക്ക് ലോക്ക് ചെയ്യുന്നു

ഇടപാട് സ്ഥിരീകരിക്കുന്നത് വരെ ഒരു എക്സ്ക്ലൂസീവ് ഡാറ്റ ലോക്ക് ഹോൾഡ് ചെയ്യുക

ലോക്ക് ഗ്രാനുലാരിറ്റി വർദ്ധിപ്പിക്കുന്നതിൽ നിന്ന് മാനേജരെ തടയുന്നതിന്, അപ്‌ഡേറ്റ് സ്റ്റേറ്റ്‌മെന്റിന്റെ FROM ക്ലോസിൽ ഇനിപ്പറയുന്ന ഉദാഹരണം ലോക്കിംഗ് ഓപ്ഷൻ ഉപയോഗിക്കുന്നു:

OBXKites അപ്‌ഡേറ്റ് ഉൽപ്പന്നം ഉപയോഗിക്കുക

(റൗലോക്ക്) ഉള്ള ഉൽപ്പന്നത്തിൽ നിന്ന്

SET ProductName = ProductName + ' അപ്ഡേറ്റ് ചെയ്തത് 1

ഒരു ചോദ്യത്തിൽ ഉപചോദ്യങ്ങളുണ്ടെങ്കിൽ, ഓരോ ചോദ്യത്തിന്റെയും ടേബിൾ ആക്‌സസ്സ് ഒരു ലോക്ക് സൃഷ്‌ടിക്കുന്നു, അത് പാരാമീറ്ററുകൾ ഉപയോഗിച്ച് നിയന്ത്രിക്കാനാകും.

സൂചിക-തല ലോക്കിംഗ് നിയന്ത്രണങ്ങൾ

കണക്ഷൻ, അഭ്യർത്ഥന തലത്തിൽ ഐസൊലേഷൻ ലെവലുകളും തടയൽ ക്രമീകരണങ്ങളും പ്രയോഗിക്കുന്നു. പ്രത്യേക സൂചികകളെ അടിസ്ഥാനമാക്കി ലോക്ക് ഗ്രാനുലാരിറ്റി പരിമിതപ്പെടുത്തുക എന്നതാണ് ടേബിൾ ലെവൽ ലോക്കുകൾ നിയന്ത്രിക്കാനുള്ള ഏക മാർഗം. sp_indexoption സിസ്റ്റം സംഭരിച്ച നടപടിക്രമം ഉപയോഗിച്ച്, ഇനിപ്പറയുന്ന വാക്യഘടന ഉപയോഗിച്ച് ഒരു നിർദ്ദിഷ്ട സൂചികയ്ക്കായി വരി കൂടാതെ/അല്ലെങ്കിൽ പേജ് ലോക്കുകൾ പ്രവർത്തനരഹിതമാക്കാം: sp_indexoption 'index_name 1 .

റൗലോക്ക്സ് അല്ലെങ്കിൽ അലോ പേജ്ലോക്ക്സ്

ചില പ്രത്യേക സന്ദർഭങ്ങളിൽ ഇത് ഉപയോഗപ്രദമാകും. പേജ് ലോക്കുകൾ കാരണം പട്ടിക ഇടയ്ക്കിടെ കാത്തിരിക്കുന്നുവെങ്കിൽ, അനുവദിക്കുന്ന പേജ് ലോക്കുകൾ ഓഫാക്കി സജ്ജീകരിക്കുന്നത് റോ-ലെവൽ ലോക്കിംഗ് സ്ഥാപിക്കും. ലോക്ക് ഗ്രാനുലാരിറ്റി കുറയുന്നത് മത്സരത്തിൽ നല്ല സ്വാധീനം ചെലുത്തും. കൂടാതെ, പട്ടിക വളരെ അപൂർവമായി മാത്രമേ അപ്ഡേറ്റ് ചെയ്തിട്ടുള്ളൂവെങ്കിലും ഇടയ്ക്കിടെ വായിക്കുന്നുണ്ടെങ്കിൽ, വരി, പേജ് ലെവൽ ലോക്കുകൾ അഭികാമ്യമല്ല; ഈ സാഹചര്യത്തിൽ, ഒപ്റ്റിമൽ ലോക്കിംഗ് ലെവൽ ടേബിൾ ലെവലിലാണ്. അപ്‌ഡേറ്റുകൾ അപൂർവ്വമായി നടത്തുകയാണെങ്കിൽ, ടേബിളുകളിൽ എക്സ്ക്ലൂസീവ് ലോക്ക് ചെയ്യുന്നത് വലിയ പ്രശ്‌നമുണ്ടാക്കില്ല.

Sp_indexoption സംഭരിച്ച നടപടിക്രമം ഡാറ്റാ സ്കീമയെ മികച്ചതാക്കാൻ രൂപകൽപ്പന ചെയ്തിട്ടുള്ളതാണ്; അതുകൊണ്ടാണ് ഇത് സൂചിക-തല ലോക്കിംഗ് ഉപയോഗിക്കുന്നത്. ഒരു പട്ടികയുടെ പ്രാഥമിക കീയിൽ ലോക്കുകൾ നിയന്ത്രിക്കുന്നതിന്, പ്രാഥമിക കീ സൂചികയുടെ പേര് കണ്ടെത്താൻ sp_help table_name ഉപയോഗിക്കുക.

ഇനിപ്പറയുന്ന കമാൻഡ് ഉൽപ്പന്നവിഭാഗം പട്ടികയെ ഒരു അപൂർവ്വമായി അപ്ഡേറ്റ് ചെയ്ത കാറ്റഗറൈസറായി ക്രമീകരിക്കുന്നു. sp_help കമാൻഡ് ആദ്യം പട്ടികയുടെ പ്രാഥമിക കീ സൂചികയുടെ പേര് പ്രദർശിപ്പിക്കുന്നു: sp_help ProductCategory

ഫലം (ചുരുക്കി) ഇതാണ്:

സൂചിക സൂചിക സൂചിക

പേര് വിവരണ കീകൾ

PK_____________ ഉൽപ്പന്നവിഭാഗം 79A814 03 നോൺക്ലസ്റ്റേർഡ്, ProductCategorylD

തനതായ, പ്രാഥമിക കീ PRIMARY-ൽ സ്ഥിതിചെയ്യുന്നു

പ്രാഥമിക കീയുടെ യഥാർത്ഥ പേര് നൽകിയാൽ, സിസ്റ്റം സംഭരിച്ച നടപടിക്രമത്തിന് ഇൻഡക്സ് ലോക്കിംഗ് പാരാമീറ്ററുകൾ സജ്ജമാക്കാൻ കഴിയും:

EXEC sp_indexoption

'ഉൽപ്പന്നവിഭാഗം.РК__ ഉൽപ്പന്നവിഭാഗം_______ 7 9A814 03′,

'AllowRowlocks', FALSE EXEC sp_indexoption

'ProductCategory.PK__ ProductCategory_______ 79A81403′,

'AllowPagelocks', FALSE

ലോക്ക് കാത്തിരിപ്പ് സമയം നിയന്ത്രിക്കുന്നു

ഒരു ഇടപാട് ഒരു ലോക്കിനായി കാത്തിരിക്കുകയാണെങ്കിൽ, ലോക്ക് സാധ്യമാകുന്നതുവരെ ഈ കാത്തിരിപ്പ് തുടരും. സ്ഥിരസ്ഥിതിയായി കാലഹരണപ്പെടൽ പരിധിയില്ല - സൈദ്ധാന്തികമായി അത് എന്നേക്കും നിലനിൽക്കും.

ഭാഗ്യവശാൽ, സെറ്റ് lock_timeout കണക്ഷൻ ഓപ്ഷൻ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ലോക്ക് ടൈംഔട്ട് സജ്ജീകരിക്കാം. ഈ പരാമീറ്റർ മില്ലിസെക്കൻഡുകളുടെ എണ്ണമായി സജ്ജമാക്കുക, അല്ലെങ്കിൽ സമയം പരിമിതപ്പെടുത്താൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നില്ലെങ്കിൽ, അത് -1 ആയി സജ്ജമാക്കുക (ഇത് സ്ഥിരസ്ഥിതിയാണ്). ഈ പരാമീറ്റർ 0 ആയി സജ്ജമാക്കിയാൽ, എന്തെങ്കിലും തടയൽ ഉണ്ടെങ്കിൽ ഇടപാട് ഉടൻ നിരസിക്കപ്പെടും. ഈ സാഹചര്യത്തിൽ, ആപ്ലിക്കേഷൻ വളരെ വേഗതയുള്ളതായിരിക്കും, പക്ഷേ ഫലപ്രദമല്ല.

ഇനിപ്പറയുന്ന അഭ്യർത്ഥന ലോക്ക് ടൈംഔട്ട് രണ്ട് സെക്കൻഡായി സജ്ജമാക്കുന്നു (2000 മില്ലിസെക്കൻഡ്):

സെറ്റ് ലോക്ക്_ടൈമൗട്ട് 2 00 0

ഒരു ഇടപാട് കോൺഫിഗർ ചെയ്‌ത സമയപരിധി കവിഞ്ഞാൽ, പിശക് നമ്പർ 1222 ജനറേറ്റുചെയ്യും.

കണക്ഷൻ തലത്തിൽ ലോക്ക് ടൈംഔട്ട് പരിധി സജ്ജീകരിക്കാൻ ഞാൻ ശക്തമായി ശുപാർശ ചെയ്യുന്നു. ഡാറ്റാബേസിന്റെ സാധാരണ പ്രകടനത്തെ അടിസ്ഥാനമാക്കിയാണ് ഈ മൂല്യം തിരഞ്ഞെടുക്കുന്നത്. ടൈംഔട്ട് അഞ്ച് സെക്കൻഡായി സജ്ജീകരിക്കാൻ ഞാൻ ആഗ്രഹിക്കുന്നു.

ഡാറ്റാബേസ് കണ്ടൻഷൻ പ്രകടനം വിലയിരുത്തുന്നു

ഒരു കൂട്ടം ഉപയോക്താക്കളിൽ പരീക്ഷിക്കുമ്പോൾ ലോക്ക് തർക്കവും തർക്ക പ്രശ്‌നങ്ങളും പരിഹരിക്കാത്ത ഒരു ഡാറ്റാബേസ് സൃഷ്‌ടിക്കുന്നത് വളരെ എളുപ്പമാണ്. നൂറുകണക്കിന് ഉപയോക്താക്കൾ ഒരേസമയം ഓർഡറുകൾ അപ്ഡേറ്റ് ചെയ്യുന്നതാണ് യഥാർത്ഥ പരീക്ഷണം.

മത്സര പരീക്ഷകൾ കൃത്യമായി സംഘടിപ്പിക്കേണ്ടതുണ്ട്. ഒരു തലത്തിൽ, ഒന്നിലധികം ഉപയോക്താക്കൾ ഒരേ ഫൈനൽ ഫോം ഒരേസമയം ഉപയോഗിക്കുന്നത് ഇതിൽ അടങ്ങിയിരിക്കണം. നിരന്തരം അനുകരിക്കുന്ന ഒരു .NET പ്രോഗ്രാം

ഉപയോക്തൃ ഡാറ്റ കാണുകയും അപ്ഡേറ്റ് ചെയ്യുകയും ചെയ്യുന്നു. ഒരു നല്ല ടെസ്റ്റ് ഡാറ്റാബേസ് തുടർച്ചയായി ലോഡ് ചെയ്യുന്ന സ്ക്രിപ്റ്റിന്റെ 20 സന്ദർഭങ്ങൾ പ്രവർത്തിപ്പിക്കണം, തുടർന്ന് ടെസ്റ്റ് ടീമിനെ ആപ്ലിക്കേഷൻ ഉപയോഗിക്കാൻ അനുവദിക്കുക. 49-ാം അധ്യായത്തിൽ ചർച്ച ചെയ്തിട്ടുള്ള പെർഫോമൻസ് മോണിറ്റർ കാണാൻ ലോക്കുകളുടെ എണ്ണം നിങ്ങളെ സഹായിക്കും.

വികസന പ്രക്രിയയിൽ മൾട്ടിപ്ലെയർ മത്സരം നിരവധി തവണ പരീക്ഷിക്കുന്നത് നല്ലതാണ്. MCSE പരീക്ഷാ മാനുവൽ പറയുന്നതുപോലെ, "യഥാർത്ഥ ലോക പരീക്ഷ ആദ്യം വരാൻ അനുവദിക്കരുത്."

ആപ്ലിക്കേഷൻ ലോക്കുകൾ

SQL സെർവർ വളരെ സങ്കീർണ്ണമായ ലോക്കിംഗ് സ്കീം ഉപയോഗിക്കുന്നു. ചിലപ്പോൾ ഡാറ്റ ഒഴികെയുള്ള ഒരു പ്രോസസിനോ ഉറവിടത്തിനോ ഒരു ലോക്ക് ആവശ്യമാണ്. ഉദാഹരണത്തിന്, മറ്റൊരു ഉപയോക്താവ് അതേ നടപടിക്രമത്തിന്റെ മറ്റൊരു സന്ദർഭം പ്രവർത്തിപ്പിക്കുകയാണെങ്കിൽ ദോഷം വരുത്തുന്ന ഒരു നടപടിക്രമം പ്രവർത്തിപ്പിക്കേണ്ടത് ആവശ്യമായി വന്നേക്കാം.

കുറച്ച് വർഷങ്ങൾക്ക് മുമ്പ് ഞാൻ ആണവ നിലയ പദ്ധതികളിൽ കേബിളിംഗിനായി ഒരു പ്രോഗ്രാം എഴുതി. പ്ലാന്റ് ജ്യാമിതി രൂപകൽപന ചെയ്യുകയും പരീക്ഷിക്കുകയും ചെയ്തുകഴിഞ്ഞാൽ, എഞ്ചിനീയർമാർ കേബിൾ ഘടന, സ്ഥാനം, ഉപയോഗിച്ച കേബിളുകളുടെ തരങ്ങൾ എന്നിവയിൽ പ്രവേശിച്ചു. നിരവധി കേബിളുകൾ തിരുകിയ ശേഷം, പ്രോഗ്രാം അവ ഇടുന്നതിനുള്ള റൂട്ട് രൂപീകരിച്ചു, അങ്ങനെ അത് കഴിയുന്നത്ര ചെറുതായിരുന്നു. ഈ നടപടിക്രമം കേബിളിംഗ് സുരക്ഷാ പ്രശ്നങ്ങളും വേർതിരിക്കുന്ന പൊരുത്തമില്ലാത്ത കേബിളുകളും കണക്കിലെടുക്കുന്നു. അതേ സമയം, ഒന്നിലധികം റൂട്ടിംഗ് നടപടിക്രമങ്ങൾ ഒരേസമയം പ്രവർത്തിപ്പിക്കുകയാണെങ്കിൽ, ഓരോ സംഭവവും ഒരേ കേബിളുകൾ റൂട്ട് ചെയ്യാൻ ശ്രമിക്കും, അതിന്റെ ഫലമായി തെറ്റായ ഫലങ്ങൾ ലഭിക്കും. ആപ്പ് ബ്ലോക്ക് ചെയ്യുന്നത് ഈ പ്രശ്നത്തിന് ഒരു മികച്ച പരിഹാരമായി മാറിയിരിക്കുന്നു.

ആപ്ലിക്കേഷൻ ലോക്കിംഗ് ആപ്ലിക്കേഷനുകളിൽ ഉപയോഗിക്കുന്നതിനായി SQL ലോക്കുകളുടെ ഒരു ലോകം മുഴുവൻ തുറക്കുന്നു. ലോക്ക് ചെയ്യാവുന്ന ഉറവിടമായി ഡാറ്റ ഉപയോഗിക്കുന്നതിനുപകരം, sp__GetAppLock സംഭരിച്ച നടപടിക്രമത്തിൽ പ്രഖ്യാപിച്ച എല്ലാ ഉപയോക്തൃ ഉറവിടങ്ങളുടെയും ഉപയോഗം ആപ്ലിക്കേഷൻ ലോക്കുകൾ ലോക്ക് ചെയ്യുന്നു.

ഇടപാടുകളിൽ ആപ്ലിക്കേഷൻ ലോക്കിംഗ് പ്രയോഗിക്കാവുന്നതാണ്; ഈ സാഹചര്യത്തിൽ, തടയൽ മോഡ് പങ്കിടാം, അപ്ഡേറ്റ് ചെയ്യാം, എക്സ്ക്ലൂസീവ്, IntentExclusice അല്ലെങ്കിൽ IntentShared ആകാം. നടപടിക്രമത്തിൽ നിന്നുള്ള റിട്ടേൺ മൂല്യം ലോക്ക് വിജയകരമായി പ്രയോഗിച്ചോ എന്ന് സൂചിപ്പിക്കുന്നു.

0. ലോക്ക് വിജയകരമായി ഇൻസ്റ്റാൾ ചെയ്തു.

1. മറ്റൊരു നടപടിക്രമം അതിന്റെ ലോക്ക് റിലീസ് ചെയ്യുമ്പോൾ ലോക്ക് ഏറ്റെടുത്തു.

999. മറ്റൊരു കാരണത്താൽ ലോക്ക് ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ല.

sp_ReleaseApLock സംഭരിച്ച നടപടിക്രമം ലോക്ക് റിലീസ് ചെയ്യുന്നു. ഒരു ബാച്ചിലോ നടപടിക്രമത്തിലോ ആപ്ലിക്കേഷൻ ലോക്ക് എങ്ങനെ ഉപയോഗിക്കാമെന്ന് ഇനിപ്പറയുന്ന ഉദാഹരണം കാണിക്കുന്നു: ഡിക്ലയർ @ShareOK INT EXEC @ShareOK = sp_GetAppLock

@Resource = 'CableWorm',

@LockMode = 'എക്‌സ്‌ക്ലൂസീവ്'

@ShareOK ആണെങ്കിൽ< 0

...കോഡ് കൈകാര്യം ചെയ്യുന്നതിൽ പിശക്

... പ്രോഗ്രാം കോഡ് ...

EXEC sp_ReleaseAppLock @Resource = 'CableWorm'

ഉപയോഗിച്ച് ആപ്ലിക്കേഷൻ ലോക്കുകൾ കാണുമ്പോൾ മാനേജ്മെന്റ് സ്റ്റുഡിയോഅല്ലെങ്കിൽ sp_Lock നടപടിക്രമങ്ങൾ, അവ APP എന്ന തരത്തിൽ പ്രദർശിപ്പിക്കും. മുകളിലെ കോഡിന്റെ അതേ സമയം പ്രവർത്തിക്കുന്ന sp_Lock-ന്റെ ചുരുക്കിയ ഔട്ട്‌പുട്ടാണ് ഇനിപ്പറയുന്ന ലിസ്‌റ്റിംഗ്: spid dbid Objld Indld തരം റിസോഴ്‌സ് മോഡ് നില

57 8 0 0 APP Cabllf 94cl36 X ഗ്രാന്റ്

SQL സെർവറിൽ ആപ്ലിക്കേഷൻ ലോക്കുകൾ എങ്ങനെ കൈകാര്യം ചെയ്യപ്പെടുന്നു എന്നതിൽ ശ്രദ്ധിക്കേണ്ട രണ്ട് ചെറിയ വ്യത്യാസങ്ങളുണ്ട്:

ഡെഡ്‌ലോക്കുകൾ സ്വയമേവ കണ്ടെത്തില്ല;

ഒരു ഇടപാട് നിരവധി തവണ ഒരു ലോക്ക് നേടിയാൽ, അത് കൃത്യമായി അതേ എണ്ണം തവണ റിലീസ് ചെയ്യണം.

ഡെഡ്‌ലോക്കുകൾ

ഒന്നിലധികം ടാസ്‌ക്കുകളുള്ള ഇടപാടുകൾ പരസ്പരം വിഭവങ്ങൾക്കായി മത്സരിക്കുമ്പോൾ മാത്രം സംഭവിക്കുന്ന ഒരു പ്രത്യേക സാഹചര്യമാണ് ഡെഡ്‌ലോക്ക്. ഉദാഹരണത്തിന്, ആദ്യ ഇടപാട് റിസോഴ്സ് എയിൽ ഒരു ലോക്ക് നേടിയിട്ടുണ്ട്, കൂടാതെ റിസോഴ്സ് ബി ലോക്ക് ചെയ്യേണ്ടതുണ്ട്, അതേ സമയം റിസോഴ്സ് ബി ലോക്ക് ചെയ്ത രണ്ടാമത്തെ ഇടപാടിന് റിസോഴ്സ് എ ലോക്ക് ചെയ്യേണ്ടതുണ്ട്.

ഈ ഇടപാടുകൾ ഓരോന്നും മറ്റൊന്ന് അതിന്റെ ലോക്ക് റിലീസ് ചെയ്യുന്നതിനായി കാത്തിരിക്കുന്നു, ഇത് സംഭവിക്കുന്നത് വരെ ആർക്കും പൂർത്തിയാക്കാൻ കഴിയില്ല. ബാഹ്യ സ്വാധീനം ഇല്ലെങ്കിലോ ഒരു പ്രത്യേക കാരണത്താൽ ഇടപാടുകളിലൊന്ന് അവസാനിക്കുകയോ ചെയ്താൽ (ഉദാഹരണത്തിന്, കാലഹരണപ്പെട്ടതിനാൽ), ഈ സാഹചര്യം ലോകാവസാനം വരെ തുടരാം.

ഡെഡ്‌ലോക്കുകൾ ഒരു ഗുരുതരമായ പ്രശ്‌നമായിരുന്നു, എന്നാൽ SQL സെർവറിന് ഇപ്പോൾ അവ വിജയകരമായി പരിഹരിക്കാനാകും.

ഒരു ഡെഡ്‌ലോക്ക് സൃഷ്ടിക്കുന്നു

മാനേജ്മെന്റ് സ്റ്റുഡിയോയുടെ അന്വേഷണ എഡിറ്ററിൽ രണ്ട് കണക്ഷനുകൾ ഉപയോഗിക്കുന്നതാണ് SQL സെർവറിൽ ഒരു ഡെഡ്‌ലോക്ക് സാഹചര്യം സൃഷ്ടിക്കുന്നതിനുള്ള ഏറ്റവും എളുപ്പ മാർഗം (ചിത്രം 51.12). ഒന്നും രണ്ടും ഇടപാടുകൾ ഒരേ വരികൾ അപ്ഡേറ്റ് ചെയ്യാൻ ശ്രമിക്കുന്നു, പക്ഷേ വിപരീത ക്രമത്തിലാണ്. pGetLocks നടപടിക്രമം പ്രവർത്തിപ്പിക്കുന്നതിന് മൂന്നാമത്തെ വിൻഡോ ഉപയോഗിച്ച്, നിങ്ങൾക്ക് ലോക്കുകൾ നിരീക്ഷിക്കാൻ കഴിയും.

1. അന്വേഷണ എഡിറ്ററിൽ രണ്ടാമത്തെ വിൻഡോ സൃഷ്ടിക്കുക.

2. രണ്ടാമത്തെ വിൻഡോയിൽ സ്റ്റെപ്പ് 2 ബ്ലോക്ക് കോഡ് സ്ഥാപിക്കുക.

3. ആദ്യ വിൻഡോയിൽ സ്റ്റെപ്പ് 1 ബ്ലോക്ക് കോഡ് സ്ഥാപിച്ച് കീ അമർത്തുക .

4. രണ്ടാമത്തെ വിൻഡോയിൽ, അതേ രീതിയിൽ കോഡ് സ്റ്റെപ്പ് 2 എക്സിക്യൂട്ട് ചെയ്യുക.

5. ആദ്യ വിൻഡോയിലേക്ക് മടങ്ങി, സ്റ്റെപ്പ് 3 ബ്ലോക്ക് കോഡ് എക്സിക്യൂട്ട് ചെയ്യുക.

6. കുറച്ച് സമയത്തിന് ശേഷം, SQL സെർവർ ഡെഡ്‌ലോക്ക് കണ്ടെത്തുകയും അത് യാന്ത്രികമായി പരിഹരിക്കുകയും ചെയ്യും.

ഉദാഹരണ കോഡ് ചുവടെയുണ്ട്.

– ഇടപാട് 1 — ഘട്ടം 1 OBXKites ഉപയോഗിക്കുക ഇടപാട് അപ്ഡേറ്റ് ആരംഭിക്കുക ബന്ധപ്പെടുക

സെറ്റ് ലാസ്റ്റ് നെയിം = 'ജോർഗൻസൺ'

എവിടെ കോൺടാക്റ്റ് കോഡ് = 401′

Puc. 51.12. രണ്ട് കണക്ഷനുകൾ ഉപയോഗിച്ച് മാനേജ്മെന്റ് സ്റ്റുഡിയോയിൽ ഒരു ഡെഡ്‌ലോക്ക് സാഹചര്യം സൃഷ്ടിക്കുന്നു (അവയുടെ വിൻഡോകൾ മുകളിൽ സ്ഥിതിചെയ്യുന്നു)

ഇപ്പോൾ ആദ്യത്തെ ഇടപാട് കോൺടാക്റ്റ് കോഡ് ഫീൽഡിലെ മൂല്യം 101 ഉള്ള റെക്കോർഡിൽ ഒരു എക്സ്ക്ലൂസീവ് ലോക്ക് സ്വന്തമാക്കി. രണ്ടാമത്തെ ഇടപാട്, ProductCode ഫീൽഡിൽ 1001 മൂല്യമുള്ള വരിയിൽ ഒരു എക്സ്ക്ലൂസീവ് ലോക്ക് നേടും, തുടർന്ന് ആദ്യ ഇടപാട് (ContactCode=101) വഴി ഇതിനകം ലോക്ക് ചെയ്ത റെക്കോർഡ് പ്രത്യേകമായി ലോക്ക് ചെയ്യാൻ ശ്രമിക്കും.

– ഇടപാട് 2 — ഘട്ടം 2 OBXKites ഉപയോഗിക്കുക ഇടപാട് ആരംഭിക്കുന്നത് അപ്ഡേറ്റ് ഉൽപ്പന്നം സെറ്റ് ഉൽപ്പന്ന നാമം

= 'ഡെഡ്‌ലോക്ക് റിപ്പയർ കിറ്റ്'

എവിടെ ഉൽപ്പന്ന കോഡ് = '1001'

ആദ്യനാമം സജ്ജമാക്കുക = 'നീൽസ്'

എവിടെ കോൺടാക്റ്റ് കോഡ് = '101'

ഇടപാട് നടത്തുക

ട്രാൻസാക്ഷൻ 1 പൂർത്തിയാകാൻ ട്രാൻസാക്ഷൻ 2 കാത്തിരിക്കുന്നതിനാൽ ഇതുവരെ ഒരു തടസ്സവുമില്ല, എന്നാൽ ട്രാൻസാക്ഷൻ 1 പൂർത്തിയാക്കാൻ ട്രാൻസാക്ഷൻ 1 ഇതുവരെ കാത്തിരിക്കുന്നില്ല. ഈ സാഹചര്യത്തിൽ, ഇടപാട് 1 അതിന്റെ ജോലി പൂർത്തിയാക്കി കമ്മിറ്റ് ട്രാൻസാക്ഷൻ സ്റ്റേറ്റ്മെന്റ് നടപ്പിലാക്കുകയാണെങ്കിൽ, ഡാറ്റ റിസോഴ്സ് പുറത്തിറങ്ങി, ഇടപാട് 2-ന് സുരക്ഷിതമായി അവൾക്ക് ആവശ്യമായ ബ്ലോക്ക് തടയാനും അവളുടെ പ്രവർത്തനങ്ങൾ തുടരാനും കഴിയും.

ProductCode=l ഉപയോഗിച്ച് ഒരു വരി അപ്ഡേറ്റ് ചെയ്യാൻ ഇടപാട് 1 ശ്രമിക്കുമ്പോഴാണ് പ്രശ്നം സംഭവിക്കുന്നത്. എന്നിരുന്നാലും, ഇതിന് ആവശ്യമായ എക്സ്ക്ലൂസീവ് ലോക്ക് ലഭിക്കില്ല, കാരണം ഈ റെക്കോർഡ് ഇടപാട് 2 വഴി ലോക്ക് ചെയ്തിരിക്കുന്നു:

– ഇടപാട് 1 – ഘട്ടം 3 ഉൽപ്പന്ന സെറ്റ് ഉൽപ്പന്നത്തിന്റെ പേര് അപ്‌ഡേറ്റ് ചെയ്യുക

= 'ഡെഡ്‌ലോക്ക് ഐഡന്റിഫിക്കേഷൻ ടെസ്റ്റർ'

എവിടെ ഉൽപ്പന്ന കോഡ് = '1001'

ഇടപാട് നടത്തുക

ഇടപാട് 1 കുറച്ച് നിമിഷങ്ങൾക്ക് ശേഷം ഇനിപ്പറയുന്ന പിശക് വാചക സന്ദേശം നൽകും. തത്ഫലമായുണ്ടാകുന്ന ഡെഡ്‌ലോക്ക് SQL സെർവർ പ്രൊഫൈലറിലും കാണാം (ചിത്രം 51.13):

സെർവർ: Msg 1205, ലെവൽ 13,

സ്റ്റേറ്റ് 50, ലൈൻ 1 ഇടപാട് (പ്രോസസ് ഐഡി 51) ആയിരുന്നു

മറ്റൊരു പ്രോസസ് ഉപയോഗിച്ച് ലോക്ക് റിസോഴ്‌സുകളിൽ ഡെഡ്‌ലോക്ക് ചെയ്യപ്പെടുകയും ഡെഡ്‌ലോക്ക് ഇരയായി തിരഞ്ഞെടുക്കപ്പെടുകയും ചെയ്തു. ഇടപാട് വീണ്ടും നടത്തുക.

പ്രശ്നം ഒരിക്കലും നിലവിലില്ലാത്തതുപോലെ ഇടപാട് 2 അതിന്റെ ജോലി പൂർത്തിയാക്കും:

(1 വരി(കൾ) ബാധിച്ചു)

(1 വരി(കൾ) ബാധിച്ചു)

അരി. 51.13. ലോക്കുകൾ: ഡെഡ്‌ലോക്ക് ഗ്രാഫ് ഇവന്റ് ഉപയോഗിച്ച് ഡെഡ്‌ലോക്കുകൾ നിരീക്ഷിക്കാനും ഡെഡ്‌ലോക്കിന് കാരണമാകുന്ന ഉറവിടം തിരിച്ചറിയാനും SQL സെർവർ പ്രൊഫൈലർ നിങ്ങളെ അനുവദിക്കുന്നു

യാന്ത്രിക ഡെഡ്‌ലോക്ക് കണ്ടെത്തൽ

മുകളിലെ കോഡിൽ കാണിച്ചിരിക്കുന്നതുപോലെ, പ്രക്രിയകൾ തടയുന്നതിനും ഇടപാടുകൾ പിൻവലിക്കുന്നതിനും പരിശോധിച്ച് SQL സെർവർ ഒരു ഡെഡ്‌ലോക്ക് സാഹചര്യം സ്വയമേവ കണ്ടെത്തുന്നു.

ഏറ്റവും കുറഞ്ഞ ജോലി പൂർത്തിയാക്കിയവർ. ക്രോസ്-ലോക്കുകളുടെ നിലനിൽപ്പിനായി SQL സെർവർ നിരന്തരം പരിശോധിക്കുന്നു. ഡെഡ്‌ലോക്ക് ഡിറ്റക്ഷൻ ലേറ്റൻസി പൂജ്യം മുതൽ രണ്ട് സെക്കൻഡ് വരെ വ്യത്യാസപ്പെടാം (പ്രായോഗികമായി, ഞാൻ ഇതിനായി കാത്തിരിക്കേണ്ടി വന്ന ഏറ്റവും ദൈർഘ്യമേറിയത് അഞ്ച് സെക്കൻഡാണ്).

ഡെഡ്‌ലോക്കുകൾ കൈകാര്യം ചെയ്യുന്നു

ഒരു ഡെഡ്‌ലോക്ക് സംഭവിക്കുമ്പോൾ, ഡെഡ്‌ലോക്ക് ഇരയായി തിരഞ്ഞെടുത്ത കണക്ഷൻ അതിന്റെ ഇടപാട് വീണ്ടും ശ്രമിക്കണം. ജോലി വീണ്ടും ചെയ്യേണ്ടതിനാൽ, ഏറ്റവും കുറഞ്ഞ ജോലി പൂർത്തിയാക്കാൻ കഴിഞ്ഞ ഇടപാട് പിൻവലിക്കുന്നത് നല്ലതാണ് - അത് ആദ്യം മുതൽ ആവർത്തിക്കുന്ന ഒന്നാണ്.

ഇടപാട് പുനരാരംഭിക്കുന്ന ക്ലയന്റ് ആപ്ലിക്കേഷൻ പിശക് കോഡ് 12 05 തടസ്സപ്പെടുത്തണം. എല്ലാം പ്രതീക്ഷിച്ചതുപോലെ സംഭവിക്കുകയാണെങ്കിൽ, ഒരു തടസ്സം സംഭവിച്ചതായി ഉപയോക്താവ് പോലും സംശയിക്കില്ല.

"ഇര" ആയി തിരഞ്ഞെടുക്കേണ്ട ഇടപാട് തീരുമാനിക്കാൻ സെർവറിനെ തന്നെ അനുവദിക്കുന്നതിനുപകരം, ഇടപാട് തന്നെ "ഒരു സമ്മാനമായി കളിക്കാം". ഇനിപ്പറയുന്ന കോഡ്, ഒരു ഇടപാടിൽ സ്ഥാപിക്കുമ്പോൾ, ഒരു ഡെഡ്‌ലോക്ക് സംഭവിക്കുകയാണെങ്കിൽ, ഇടപാട് പിൻവലിക്കണമെന്ന് SQL സെർവറിനെ അറിയിക്കുന്നു:

ഡെഡ്‌ലോക്ക്‌പ്രോറിറ്റി കുറവായി സജ്ജമാക്കുക

തടസ്സങ്ങൾ കുറയ്ക്കുന്നു

ഡെഡ്‌ലോക്കുകൾ തിരിച്ചറിയാനും കൈകാര്യം ചെയ്യാനും എളുപ്പമാണെങ്കിലും, അവ ഒഴിവാക്കുന്നതാണ് നല്ലത്. തടസ്സങ്ങൾ ഒഴിവാക്കാൻ ഇനിപ്പറയുന്ന ശുപാർശകൾ നിങ്ങളെ സഹായിക്കും.

ഇടപാടുകൾ ഹ്രസ്വമായും അനാവശ്യ കോഡുകളില്ലാതെയും സൂക്ഷിക്കാൻ ശ്രമിക്കുക. ഒരു ഇടപാടിൽ ചില കോഡ് ആവശ്യമില്ലെങ്കിൽ, അത് അതിൽ നിന്ന് അനുമാനിക്കേണ്ടതാണ്.

ഉപയോക്തൃ ഇൻപുട്ടിനെ ആശ്രയിച്ച് ഒരിക്കലും ഒരു ഇടപാട് കോഡ് ഉണ്ടാക്കരുത്.

ഒരേ ക്രമത്തിൽ ലോക്കുകൾ നേടുന്ന പാക്കേജുകളും നടപടിക്രമങ്ങളും സൃഷ്ടിക്കാൻ ശ്രമിക്കുക. ഉദാഹരണത്തിന്, പട്ടിക എ ആദ്യം പ്രോസസ്സ് ചെയ്യുന്നു, തുടർന്ന് പട്ടികകൾ ബി, സി മുതലായവ. അതിനാൽ, ഒരു നടപടിക്രമം രണ്ടാമത്തേതിന് കാത്തിരിക്കും, നിർവചനം അനുസരിച്ച് തടസ്സങ്ങൾ ഉണ്ടാകില്ല.

ഡാറ്റ പേജുകളിൽ കഴിയുന്നത്ര അടുത്ത് സാമ്പിൾ ഡാറ്റ സംഭരിക്കുന്നതിന് ഫിസിക്കൽ ലേഔട്ട് രൂപകൽപ്പന ചെയ്യുക. ഇത് നേടുന്നതിന്, നോർമലൈസേഷൻ ഉപയോഗിക്കുകയും ക്ലസ്റ്റേർഡ് ഇൻഡക്സുകൾ വിവേകപൂർവ്വം തിരഞ്ഞെടുക്കുക. തടസ്സങ്ങളുടെ വ്യാപനം കുറയ്ക്കുന്നത് അവയുടെ വർദ്ധനവ് ഒഴിവാക്കാൻ സഹായിക്കും. മത്സരത്തിൽ നിന്ന് അവരെ തടയാൻ ചെറിയ ബ്ലോക്കുകൾ സഹായിക്കും.

ആവശ്യമില്ലെങ്കിൽ ഇൻസുലേഷൻ ലെവൽ വർദ്ധിപ്പിക്കരുത്. കർശനമായ ഒറ്റപ്പെടൽ ലോക്ക്ഡൗണുകളുടെ ദൈർഘ്യം വർദ്ധിപ്പിക്കുന്നു.

01/05/15 28.1K

ചിലപ്പോൾ നിങ്ങളുടെ ചിന്തകൾ ക്രമീകരിക്കാനും അവ ക്രമീകരിക്കാനും നിങ്ങൾ ശരിക്കും ആഗ്രഹിക്കുന്നു. അതിലും മികച്ചത്, അക്ഷരമാലാക്രമത്തിലും തീമാറ്റിക് ക്രമത്തിലും, അങ്ങനെ ചിന്തയുടെ വ്യക്തത ഒടുവിൽ വരുന്നു. ഇനി എന്ത് കുഴപ്പം സംഭവിക്കുമെന്ന് സങ്കൽപ്പിക്കുക " ഇലക്ട്രോണിക് തലച്ചോറുകൾ»എല്ലാ ഡാറ്റയുടെയും വ്യക്തമായ ഘടനയും Microsoft SQL സെർവറും ഇല്ലാത്ത ഏതൊരു കമ്പ്യൂട്ടറും:

MS SQL സെർവർ

ഈ സോഫ്റ്റ്‌വെയർ ഉൽപ്പന്നം Microsoft കോർപ്പറേഷൻ വികസിപ്പിച്ച ഒരു റിലേഷണൽ ഡാറ്റാബേസ് മാനേജ്‌മെന്റ് സിസ്റ്റമാണ് (DBMS). ഡാറ്റ കൈകാര്യം ചെയ്യാൻ പ്രത്യേകം വികസിപ്പിച്ചെടുത്ത ട്രാൻസാക്റ്റ്-എസ്‌ക്യുഎൽ ഭാഷ ഉപയോഗിക്കുന്നു. ഒരു ഡാറ്റാബേസ് തിരഞ്ഞെടുക്കുന്നതിനും പരിഷ്കരിക്കുന്നതിനുമുള്ള ഭാഷാ കമാൻഡുകൾ ഘടനാപരമായ അന്വേഷണങ്ങളുടെ അടിസ്ഥാനത്തിലാണ് നിർമ്മിച്ചിരിക്കുന്നത്:


എല്ലാ ഘടനാപരമായ മൂലകങ്ങളുടെയും പരസ്പര ബന്ധത്തിലാണ് റിലേഷണൽ ഡാറ്റാബേസുകൾ നിർമ്മിച്ചിരിക്കുന്നത്, അവയുടെ നെസ്റ്റിംഗ് കാരണം. റിലേഷണൽ ഡാറ്റാബേസുകൾക്ക് ഏറ്റവും സാധാരണമായ ഡാറ്റാ തരങ്ങൾക്കുള്ള ബിൽറ്റ്-ഇൻ പിന്തുണയുണ്ട്. ഇതിന് നന്ദി, SQL സെർവർ ട്രിഗറുകളും സംഭരിച്ച നടപടിക്രമങ്ങളും ഉപയോഗിച്ച് ഡാറ്റ പ്രോഗ്രമാറ്റിക്കായി രൂപപ്പെടുത്തുന്നതിനുള്ള പിന്തുണ സമന്വയിപ്പിക്കുന്നു.

MS SQL സെർവർ ഫീച്ചറുകളുടെ അവലോകനം


ഡെവലപ്പർമാർക്കായി മൈക്രോസോഫ്റ്റ് സൃഷ്ടിച്ച പ്രത്യേക സോഫ്റ്റ്‌വെയറിന്റെ ഒരു നീണ്ട നിരയുടെ ഭാഗമാണ് DBMS. ഇതിനർത്ഥം ഈ ശൃംഖലയുടെ എല്ലാ ലിങ്കുകളും (അപ്ലിക്കേഷനുകൾ) പരസ്പരം ആഴത്തിൽ സംയോജിപ്പിച്ചിരിക്കുന്നു എന്നാണ്.

അതായത്, അവരുടെ ഉപകരണങ്ങൾ പരസ്പരം എളുപ്പത്തിൽ സംവദിക്കുന്നു, ഇത് പ്രോഗ്രാം കോഡ് വികസിപ്പിക്കുന്നതിനും എഴുതുന്നതിനുമുള്ള പ്രക്രിയയെ വളരെ ലളിതമാക്കുന്നു. അത്തരമൊരു ബന്ധത്തിന്റെ ഉദാഹരണമാണ് എംഎസ് വിഷ്വൽ സ്റ്റുഡിയോ പ്രോഗ്രാമിംഗ് പരിസ്ഥിതി. ഇതിന്റെ ഇൻസ്റ്റലേഷൻ പാക്കേജിൽ ഇതിനകം തന്നെ SQL സെർവർ എക്സ്പ്രസ് എഡിഷൻ ഉൾപ്പെടുന്നു.

തീർച്ചയായും, ഇത് ലോക വിപണിയിലെ ജനപ്രിയ ഡിബിഎംഎസ് മാത്രമല്ല. എന്നാൽ ഈ ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൽ ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നതിനാൽ വിൻഡോസ് പ്രവർത്തിക്കുന്ന കമ്പ്യൂട്ടറുകൾക്ക് ഇത് കൂടുതൽ സ്വീകാര്യമാണ്. ഇതുകൊണ്ടു മാത്രമല്ല.

MS SQL സെർവറിന്റെ പ്രയോജനങ്ങൾ:

  • ഉയർന്ന പ്രകടനവും തെറ്റ് സഹിഷ്ണുതയും ഉണ്ട്;
  • ഇത് ഒരു മൾട്ടി-യൂസർ DBMS ആണ് കൂടാതെ ക്ലയന്റ്-സെർവർ തത്വത്തിൽ പ്രവർത്തിക്കുന്നു;

    സിസ്റ്റത്തിന്റെ ക്ലയന്റ് ഭാഗം ഉപയോക്തൃ അഭ്യർത്ഥനകൾ സൃഷ്ടിക്കുന്നതിനും പ്രോസസ്സിംഗിനായി സെർവറിലേക്ക് അയയ്ക്കുന്നതിനും പിന്തുണയ്ക്കുന്നു.

  • വിൻഡോസ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റവുമായി കർശനമായ സംയോജനം;
  • വിദൂര കണക്ഷനുകൾക്കുള്ള പിന്തുണ;
  • ജനപ്രിയ ഡാറ്റ തരങ്ങൾക്കുള്ള പിന്തുണ, അതുപോലെ ട്രിഗറുകളും സംഭരിച്ച നടപടിക്രമങ്ങളും സൃഷ്ടിക്കാനുള്ള കഴിവ്;
  • ഉപയോക്തൃ റോളുകൾക്കുള്ള അന്തർനിർമ്മിത പിന്തുണ;
  • വിപുലമായ ഡാറ്റാബേസ് ബാക്കപ്പ് പ്രവർത്തനം;
  • ഉയർന്ന സുരക്ഷ;
  • ഓരോ ലക്കത്തിലും നിരവധി പ്രത്യേക പതിപ്പുകൾ ഉൾപ്പെടുന്നു.

SQL സെർവറിന്റെ പരിണാമം

ഈ ജനപ്രിയ DBMS-ന്റെ എല്ലാ പതിപ്പുകളുടെയും പരിണാമത്തിന്റെ ചരിത്രം പരിഗണിക്കുമ്പോൾ അതിന്റെ സവിശേഷതകൾ വളരെ എളുപ്പത്തിൽ കാണാൻ കഴിയും. ഡവലപ്പർമാർ സുപ്രധാനവും അടിസ്ഥാനപരവുമായ മാറ്റങ്ങൾ വരുത്തിയ റിലീസുകളിൽ മാത്രം ഞങ്ങൾ കൂടുതൽ വിശദമായി വസിക്കും:

  • മൈക്രോസോഫ്റ്റ് SQL സെർവർ 1.0 - 1990-ൽ വീണ്ടും പുറത്തിറങ്ങി. അപ്പോഴും, വിദഗ്ദ്ധർ ഡാറ്റ പ്രോസസ്സിംഗിന്റെ ഉയർന്ന വേഗത ശ്രദ്ധിച്ചു, മൾട്ടി-യൂസർ മോഡിൽ പരമാവധി ലോഡിൽ പോലും പ്രകടമാക്കുന്നു;
  • SQL സെർവർ 6.0 - 1995-ൽ പുറത്തിറങ്ങി. കഴ്‌സറുകൾക്കും ഡാറ്റ റെപ്ലിക്കേഷനുമുള്ള പിന്തുണ നടപ്പിലാക്കിയ ലോകത്തിലെ ആദ്യത്തെ പതിപ്പായിരുന്നു ഈ പതിപ്പ്;
  • SQL സെർവർ 2000 - ഈ പതിപ്പിൽ സെർവറിന് പൂർണ്ണമായും പുതിയ എഞ്ചിൻ ലഭിച്ചു. മിക്ക മാറ്റങ്ങളും ആപ്ലിക്കേഷന്റെ ഉപയോക്തൃ വശത്തെ മാത്രം ബാധിക്കുന്നു;
  • SQL സെർവർ 2005 - DBMS-ന്റെ സ്കേലബിളിറ്റി വർദ്ധിച്ചു, മാനേജ്മെന്റും അഡ്മിനിസ്ട്രേഷൻ പ്രക്രിയയും വളരെ ലളിതമാക്കിയിരിക്കുന്നു. .NET സോഫ്റ്റ്‌വെയർ പ്ലാറ്റ്‌ഫോമിനെ പിന്തുണയ്ക്കുന്നതിനായി ഒരു പുതിയ API അവതരിപ്പിച്ചു;
  • ക്ലൗഡ് സാങ്കേതികവിദ്യകളുടെയും ബിസിനസ് അനലിറ്റിക്‌സ് ഉപകരണങ്ങളുടെയും തലത്തിൽ DBMS-ന്റെ ഇടപെടൽ വികസിപ്പിക്കുന്നതിനാണ് തുടർന്നുള്ള റിലീസുകൾ ലക്ഷ്യമിടുന്നത്.

അടിസ്ഥാന സിസ്റ്റം കിറ്റിൽ SQL സെർവർ ക്രമീകരിക്കുന്നതിനുള്ള നിരവധി യൂട്ടിലിറ്റികൾ ഉൾപ്പെടുന്നു. ഇതിൽ ഉൾപ്പെടുന്നവ:


കോൺഫിഗറേഷൻ മാനേജർ. എല്ലാ നെറ്റ്‌വർക്ക് ക്രമീകരണങ്ങളും ഡാറ്റാബേസ് സെർവർ സേവനങ്ങളും നിയന്ത്രിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഒരു നെറ്റ്‌വർക്കിനുള്ളിൽ SQL സെർവർ കോൺഫിഗർ ചെയ്യാൻ ഉപയോഗിക്കുന്നു.
  • SQL സെർവർ പിശകും ഉപയോഗ റിപ്പോർട്ടിംഗും:


മൈക്രോസോഫ്റ്റ് പിന്തുണയിലേക്ക് പിശക് റിപ്പോർട്ടുകൾ അയക്കുന്നത് കോൺഫിഗർ ചെയ്യാൻ യൂട്ടിലിറ്റി ഉപയോഗിക്കുന്നു.


ഡാറ്റാബേസ് സെർവറിന്റെ പ്രവർത്തനം ഒപ്റ്റിമൈസ് ചെയ്യാൻ ഉപയോഗിക്കുന്നു. അതായത്, DBMS-ന്റെ ചില സവിശേഷതകളും ഘടകങ്ങളും പ്രവർത്തനക്ഷമമാക്കുകയോ പ്രവർത്തനരഹിതമാക്കുകയോ ചെയ്തുകൊണ്ട് നിങ്ങൾക്ക് SQL സെർവറിന്റെ പ്രവർത്തനം ഇഷ്ടാനുസൃതമാക്കാനാകും.

സോഫ്റ്റ്‌വെയർ പാക്കേജിന്റെ പതിപ്പും പതിപ്പും അനുസരിച്ച് Microsoft SQL സെർവറിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന യൂട്ടിലിറ്റികളുടെ സെറ്റ് വ്യത്യാസപ്പെടാം. ഉദാഹരണത്തിന്, 2008 പതിപ്പിൽ നിങ്ങൾ കണ്ടെത്തുകയില്ല SQL സെർവർ സർഫേസ് ഏരിയ കോൺഫിഗറേഷൻ.

Microsoft SQL സെർവർ ആരംഭിക്കുന്നു

ഉദാഹരണത്തിന്, ഡാറ്റാബേസ് സെർവറിന്റെ 2005 പതിപ്പ് ഉപയോഗിക്കും. സെർവർ പല തരത്തിൽ ആരംഭിക്കാം:

  • യൂട്ടിലിറ്റി വഴി SQL സെർവർ കോൺഫിഗറേഷൻ മാനേജർ. ഇടതുവശത്തുള്ള ആപ്ലിക്കേഷൻ വിൻഡോയിൽ, "SQL സെർവർ 2005 സേവനങ്ങൾ" തിരഞ്ഞെടുക്കുക, വലതുവശത്ത് - ഞങ്ങൾക്ക് ആവശ്യമായ ഡാറ്റാബേസ് സെർവർ ഉദാഹരണം. ഞങ്ങൾ അത് അടയാളപ്പെടുത്തി വലത് മൗസ് ബട്ടണിന്റെ ഉപമെനുവിൽ "ആരംഭിക്കുക" തിരഞ്ഞെടുക്കുക.

  • പരിസ്ഥിതി ഉപയോഗിക്കുന്നത് SQL സെർവർ മാനേജ്മെന്റ്സ്റ്റുഡിയോ എക്സ്പ്രസ്. ഇത് എക്സ്പ്രസ് എഡിഷൻ ഇൻസ്റ്റലേഷൻ പാക്കേജിൽ ഉൾപ്പെടുത്തിയിട്ടില്ല. അതിനാൽ, ഇത് ഔദ്യോഗിക Microsoft വെബ്സൈറ്റിൽ നിന്ന് പ്രത്യേകം ഡൗൺലോഡ് ചെയ്യണം.

ഡാറ്റാബേസ് സെർവർ ആരംഭിക്കുന്നതിന്, ആപ്ലിക്കേഷൻ സമാരംഭിക്കുക. ഡയലോഗ് ബോക്സിൽ " സെർവറിലേക്കുള്ള കണക്ഷൻ"സെർവർ നാമം" ഫീൽഡിൽ, നമുക്ക് ആവശ്യമുള്ള ഉദാഹരണം തിരഞ്ഞെടുക്കുക. ഫീൽഡിൽ " പ്രാമാണീകരണം"മൂല്യം ഉപേക്ഷിക്കുക" പരീക്ഷ വിൻഡോസ് ആധികാരികത " കൂടാതെ "കണക്റ്റ്" ബട്ടണിൽ ക്ലിക്ക് ചെയ്യുക:

SQL സെർവർ അഡ്മിനിസ്ട്രേഷൻ അടിസ്ഥാനങ്ങൾ

നിങ്ങൾ MS SQL സെർവർ ആരംഭിക്കുന്നതിന് മുമ്പ്, അതിന്റെ കോൺഫിഗറേഷന്റെയും അഡ്മിനിസ്ട്രേഷന്റെയും അടിസ്ഥാന കഴിവുകൾ നിങ്ങൾ സ്വയം പരിചയപ്പെടേണ്ടതുണ്ട്. DBMS-ൽ ഉൾപ്പെടുത്തിയിട്ടുള്ള നിരവധി യൂട്ടിലിറ്റികളുടെ കൂടുതൽ വിശദമായ അവലോകനത്തോടെ നമുക്ക് ആരംഭിക്കാം:

  • SQL സെർവർ സർഫേസ് ഏരിയ കോൺഫിഗറേഷൻ- ഡാറ്റാബേസ് സെർവറിന്റെ ഏതെങ്കിലും സവിശേഷത പ്രവർത്തനക്ഷമമാക്കുകയോ പ്രവർത്തനരഹിതമാക്കുകയോ ചെയ്യണമെങ്കിൽ നിങ്ങൾ പോകേണ്ട സ്ഥലമാണിത്. വിൻഡോയുടെ ചുവടെ രണ്ട് ഇനങ്ങളുണ്ട്: ആദ്യത്തേത് നെറ്റ്‌വർക്ക് പാരാമീറ്ററുകൾക്ക് ഉത്തരവാദിയാണ്, രണ്ടാമത്തേതിൽ നിങ്ങൾക്ക് സ്ഥിരസ്ഥിതിയായി അപ്രാപ്തമാക്കിയ ഒരു സേവനമോ പ്രവർത്തനമോ സജീവമാക്കാം. ഉദാഹരണത്തിന്, T-SQL അന്വേഷണങ്ങൾ വഴി .NET പ്ലാറ്റ്‌ഫോമുമായുള്ള സംയോജനം പ്രവർത്തനക്ഷമമാക്കുക:

എസ്‌ക്യുഎൽ സെർവർ മാനേജ്‌മെന്റ് സ്റ്റുഡിയോയ്ക്ക് രണ്ട് പ്രാഥമിക ഉപയോഗങ്ങളുണ്ട്: ഡാറ്റാബേസ് സെർവറുകൾ നിയന്ത്രിക്കുന്നതും ഡാറ്റാബേസ് ഒബ്‌ജക്റ്റുകൾ കൈകാര്യം ചെയ്യുന്നതും. ഈ പ്രവർത്തനങ്ങൾ ചുവടെ ചർച്ചചെയ്യുന്നു.

ഡാറ്റാബേസ് സെർവർ അഡ്മിനിസ്ട്രേഷൻ

SQL സെർവർ മാനേജ്മെന്റ് സ്റ്റുഡിയോ ഉപയോഗിച്ച് നിങ്ങൾക്ക് നിർവഹിക്കാൻ കഴിയുന്ന അഡ്മിനിസ്ട്രേറ്റീവ് ജോലികളിൽ ഉൾപ്പെടുന്നു, എന്നാൽ ഇവയിൽ മാത്രം പരിമിതപ്പെടുന്നില്ല:

    സെർവർ രജിസ്ട്രേഷൻ;

    സെർവറിലേക്കുള്ള കണക്ഷൻ;

    പുതിയ സെർവർ ഗ്രൂപ്പുകൾ സൃഷ്ടിക്കുന്നു;

    ഒന്നിലധികം സെർവറുകൾ കൈകാര്യം ചെയ്യുക;

    സെർവറുകൾ ആരംഭിക്കുകയും നിർത്തുകയും ചെയ്യുന്നു.

ഈ അഡ്മിനിസ്ട്രേഷൻ ജോലികൾ ഇനിപ്പറയുന്ന ഉപവിഭാഗങ്ങളിൽ വിവരിച്ചിരിക്കുന്നു.

സെർവർ രജിസ്ട്രേഷൻ

എസ്‌ക്യുഎൽ സെർവർ മാനേജ്‌മെന്റ് സ്റ്റുഡിയോ സെർവറുകൾ രജിസ്റ്റർ ചെയ്യുന്ന പ്രവർത്തനത്തെ ഡാറ്റാബേസുകളും അവയുടെ ഒബ്‌ജക്റ്റുകളും പര്യവേക്ഷണം ചെയ്യുന്ന പ്രവർത്തനത്തിൽ നിന്ന് വേർതിരിക്കുന്നു. (രണ്ട് തരത്തിലുള്ള പ്രവർത്തനങ്ങളും ഒബ്‌ജക്റ്റ് എക്‌സ്‌പ്ലോറർ മുഖേന നടത്താവുന്നതാണ്.) ഏതെങ്കിലും സെർവറിന്റെ ഡാറ്റാബേസുകളും ഒബ്‌ജക്റ്റുകളും നിങ്ങൾക്ക് ഉപയോഗിക്കുന്നതിന് മുമ്പ്, അത് ലോക്കൽ ആയാലും റിമോട്ട് ആയാലും അത് രജിസ്റ്റർ ചെയ്തിരിക്കണം.

നിങ്ങൾ ആദ്യം SQL സെർവർ മാനേജ്മെന്റ് സ്റ്റുഡിയോ ആരംഭിക്കുമ്പോഴോ അതിനുശേഷമോ സെർവർ രജിസ്റ്റർ ചെയ്യാം. ഡാറ്റാബേസ് സെർവർ രജിസ്റ്റർ ചെയ്യാൻ, ക്ലിക്ക് ചെയ്യുക വലത് ക്ലിക്കിൽഒബ്‌ജക്റ്റ് എക്‌സ്‌പ്ലോററിൽ ആവശ്യമുള്ള സെർവർ ഒപ്പം സന്ദർഭ മെനുരജിസ്റ്റർ തിരഞ്ഞെടുക്കുക. ഒബ്‌ജക്റ്റ് ബ്രൗസർ പാനൽ മറച്ചിരിക്കുകയാണെങ്കിൽ, മെനു കമാൻഡ് View --> എക്‌സിക്യൂട്ട് ചെയ്‌ത് അത് തുറക്കുക ഒബ്ജക്റ്റ് എക്സ്പ്ലോറർ. ചുവടെയുള്ള ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്നതുപോലെ പുതിയ സെർവർ രജിസ്ട്രേഷൻ ഡയലോഗ് ബോക്സ് തുറക്കും:

നിങ്ങൾ രജിസ്റ്റർ ചെയ്യാൻ ആഗ്രഹിക്കുന്ന സെർവറിന്റെ പേരും ആ സെർവറിനായുള്ള പ്രാമാണീകരണ തരവും തിരഞ്ഞെടുക്കുക (അതായത്, വിൻഡോസ് ഓതന്റിക്കേഷൻ അല്ലെങ്കിൽ SQL സെർവർ ഓതന്റിക്കേഷൻ), തുടർന്ന് സംരക്ഷിക്കുക ക്ലിക്കുചെയ്യുക.

സെർവറിലേക്ക് ബന്ധിപ്പിക്കുന്നു

SQL സെർവർ മാനേജ്‌മെന്റ് സ്റ്റുഡിയോ ഒരു സെർവർ രജിസ്റ്റർ ചെയ്യുന്നതിനും സെർവറുമായി ബന്ധിപ്പിക്കുന്നതിനുമുള്ള ചുമതലകളും വേർതിരിക്കുന്നു. ഒരു സെർവർ രജിസ്റ്റർ ചെയ്യുമ്പോൾ എന്നാണ് ഇതിനർത്ഥം ഓട്ടോമാറ്റിക് കണക്ഷൻഈ സെർവർ നടക്കുന്നില്ല. ഒരു രജിസ്റ്റർ ചെയ്ത സെർവറിലേക്ക് കണക്റ്റുചെയ്യുന്നതിന്, ഒബ്ജക്റ്റ് ഇൻസ്പെക്ടർ വിൻഡോയിലെ ആവശ്യമുള്ള സെർവറിൽ നിങ്ങൾ വലത്-ക്ലിക്കുചെയ്ത് ദൃശ്യമാകുന്ന സന്ദർഭ മെനുവിൽ നിന്ന് കണക്റ്റ് തിരഞ്ഞെടുക്കുക.

ഒരു പുതിയ സെർവർ ഗ്രൂപ്പ് സൃഷ്ടിക്കുന്നു

രജിസ്റ്റർ ചെയ്ത സെർവറുകൾ പാനലിൽ ഒരു പുതിയ സെർവർ ഗ്രൂപ്പ് സൃഷ്ടിക്കാൻ, റൈറ്റ് ക്ലിക്ക് ചെയ്യുക ലോക്കൽ നോഡ്സെർവർ ഗ്രൂപ്പുകൾ പ്രാദേശിക സെർവറുകൾ) രജിസ്റ്റർ ചെയ്ത സെർവർ വിൻഡോയിലും സന്ദർഭ മെനുവിലും, പുതിയ സെർവർ ഗ്രൂപ്പ് തിരഞ്ഞെടുക്കുക. തുറക്കുന്ന പുതിയ സെർവർ ഗ്രൂപ്പ് പ്രോപ്പർട്ടീസ് ഡയലോഗ് ബോക്സിൽ, പുതിയ ഗ്രൂപ്പ്സെർവറുകൾ) ഗ്രൂപ്പിനായി ഒരു അദ്വിതീയ നാമം നൽകുക, കൂടാതെ, ഓപ്ഷണലായി, അതിന്റെ വിവരണം.

ഒന്നിലധികം സെർവറുകൾ കൈകാര്യം ചെയ്യുന്നു

ഒബ്‌ജക്റ്റ് എക്‌സ്‌പ്ലോറർ ഉപയോഗിച്ച്, ഒരൊറ്റ കമ്പ്യൂട്ടറിൽ ഒന്നിലധികം ഡാറ്റാബേസ് സെർവറുകൾ (ഇൻസ്റ്റൻസുകൾ എന്ന് വിളിക്കുന്നു) നിയന്ത്രിക്കാൻ SQL സെർവർ മാനേജ്‌മെന്റ് സ്റ്റുഡിയോ നിങ്ങളെ അനുവദിക്കുന്നു. ഡാറ്റാബേസ് സെർവർ ഘടകത്തിന്റെ ഓരോ സംഭവത്തിനും അതിന്റേതായ ഡാറ്റാബേസ് ഒബ്‌ജക്റ്റുകൾ (സിസ്റ്റം, ഉപയോക്തൃ ഡാറ്റാബേസുകൾ) ഉണ്ട്, അവ ഇൻസ്‌റ്റൻസുകൾക്കിടയിൽ പങ്കിടില്ല.

സെർവറും അതിന്റെ കോൺഫിഗറേഷനും നിയന്ത്രിക്കുന്നതിന്, ഒബ്‌ജക്റ്റ് എക്‌സ്‌പ്ലോററിലെ സെർവർ നാമത്തിൽ വലത്-ക്ലിക്കുചെയ്ത് ദൃശ്യമാകുന്ന സന്ദർഭ മെനുവിൽ നിന്ന് പ്രോപ്പർട്ടികൾ തിരഞ്ഞെടുക്കുക. സെർവർ പ്രോപ്പർട്ടീസ് ഡയലോഗ് ബോക്സ് തുറക്കും, അതിൽ പൊതുവായ, സുരക്ഷ, അനുമതികൾ മുതലായ നിരവധി പേജുകൾ അടങ്ങിയിരിക്കുന്നു.

പൊതുവായ പേജ് പ്രദർശിപ്പിക്കുന്നു പൊതു ഗുണങ്ങൾസെർവറുകൾ:

സെർവറിന്റെ പ്രാമാണീകരണ മോഡിനെയും ലോഗിൻ ഓഡിറ്റ് രീതിയെയും കുറിച്ചുള്ള വിവരങ്ങൾ സുരക്ഷാ പേജിൽ അടങ്ങിയിരിക്കുന്നു. സെർവറിലേക്ക് ആക്‌സസ് ഉള്ള എല്ലാ അക്കൗണ്ടുകളും റോളുകളും പെർമിഷൻ പേജ് പ്രദർശിപ്പിക്കുന്നു. ഈ അക്കൗണ്ടുകൾക്കും റോളുകൾക്കും നൽകാവുന്ന എല്ലാ അനുമതികളും പേജിന്റെ ചുവടെ പ്രദർശിപ്പിക്കുന്നു.

നിങ്ങൾക്ക് ഒരു പുതിയ പേര് നൽകി സെർവറിന്റെ പേര് മാറ്റാം. ഇത് ചെയ്യുന്നതിന്, ഒബ്ജക്റ്റ് എക്സ്പ്ലോറർ വിൻഡോയിൽ ആവശ്യമായ സെർവറിൽ വലത്-ക്ലിക്കുചെയ്ത് സന്ദർഭ മെനുവിൽ നിന്ന് രജിസ്റ്റർ തിരഞ്ഞെടുക്കുക. നിങ്ങൾക്ക് ഇപ്പോൾ സെർവറിന് ഒരു പുതിയ പേര് നൽകാനും അതിന്റെ വിവരണം മാറ്റാനും കഴിയും. ആവശ്യമില്ലെങ്കിൽ സെർവറുകളുടെ പേര് മാറ്റരുത്, കാരണം അവയുമായി ലിങ്ക് ചെയ്യുന്ന മറ്റ് സെർവറുകളെ ഇത് ബാധിച്ചേക്കാം.

സെർവറുകൾ ആരംഭിക്കുകയും നിർത്തുകയും ചെയ്യുന്നു

ഡാറ്റാബേസ് എഞ്ചിൻ സെർവർ സ്റ്റാർട്ടപ്പിൽ സ്വയമേവ സ്വയമേവ ആരംഭിക്കുന്നു ഓപ്പറേറ്റിംഗ് സിസ്റ്റംവിൻഡോസ്. SQL സെർവർ മാനേജ്മെന്റ് സ്റ്റുഡിയോ ഉപയോഗിച്ച് ഒരു സെർവർ ആരംഭിക്കുന്നതിന്, ഒബ്ജക്റ്റ് ഇൻസ്പെക്ടറിൽ ആവശ്യമുള്ള സെർവറിൽ വലത്-ക്ലിക്കുചെയ്ത് സന്ദർഭ മെനുവിൽ നിന്ന് ആരംഭിക്കുക തിരഞ്ഞെടുക്കുക. സെർവറിൽ ഉചിതമായ പ്രവർത്തനങ്ങൾ ചെയ്യുന്നതിനുള്ള സ്റ്റോപ്പ്, പോസ് ഓപ്‌ഷനുകളും ഈ മെനുവിൽ അടങ്ങിയിരിക്കുന്നു.

ഒബ്ജക്റ്റ് എക്സ്പ്ലോറർ ഉപയോഗിച്ച് ഡാറ്റാബേസുകൾ കൈകാര്യം ചെയ്യുന്നു

SQL സെർവർ മാനേജ്മെന്റ് സ്റ്റുഡിയോ ഉപയോഗിച്ച് നിങ്ങൾക്ക് നിർവഹിക്കാൻ കഴിയുന്ന അഡ്മിനിസ്ട്രേറ്റീവ് ജോലികൾ ഉൾപ്പെടുന്നു:

    ഉപയോഗിക്കാതെ ഡാറ്റാബേസുകൾ സൃഷ്ടിക്കുന്നു ഇടപാട്-SQL ഭാഷ;

    ട്രാൻസാക്റ്റ്-എസ്‌ക്യുഎൽ ഭാഷ ഉപയോഗിക്കാതെ ഡാറ്റാബേസുകൾ പരിഷ്‌ക്കരിക്കുന്നു;

    Transact-SQL ഭാഷ ഉപയോഗിക്കാതെ പട്ടികകൾ കൈകാര്യം ചെയ്യുക;

    സൃഷ്ടിയും നിർവ്വഹണവും SQL പ്രസ്താവനകൾ(അടുത്ത ലേഖനത്തിൽ വിവരിച്ചിരിക്കുന്നു).

T-SQL ഉപയോഗിക്കാതെ ഡാറ്റാബേസുകൾ സൃഷ്ടിക്കുന്നു

ഒബ്ജക്റ്റ് ബ്രൗസർ ഉപയോഗിച്ച് ഒരു പുതിയ ഡാറ്റാബേസ് സൃഷ്ടിക്കാൻ കഴിയും ഒബ്ജക്റ്റ് എക്സ്പ്ലോറർ. അതിന്റെ പേര് സൂചിപ്പിക്കുന്നത് പോലെ, ഒബ്ജക്റ്റ് എക്സ്പ്ലോറർ സെർവർ ഒബ്ജക്റ്റുകൾ പര്യവേക്ഷണം ചെയ്യാനും ഉപയോഗിക്കാം. ഈ ടൂളിന്റെ പാനലിൽ നിന്ന് നിങ്ങൾക്ക് എല്ലാ സെർവർ ഒബ്ജക്റ്റുകളും കാണാനും സെർവറും ഡാറ്റാബേസുകളും നിയന്ത്രിക്കാനും കഴിയും. സെർവർ ഒബ്‌ജക്റ്റ് ശ്രേണി ട്രീയിൽ മറ്റ് ഫോൾഡറുകൾക്കൊപ്പം ഒരു ഡാറ്റാബേസ് ഫോൾഡർ അടങ്ങിയിരിക്കുന്നു. ഈ ഫോൾഡറിൽ ഒരു ഫോൾഡർ ഉൾപ്പെടെ നിരവധി ഉപഫോൾഡറുകൾ അടങ്ങിയിരിക്കുന്നു സിസ്റ്റം ഡാറ്റാബേസുകൾഡാറ്റയും ഉപയോക്താവ് സൃഷ്ടിച്ച ഓരോ ഡാറ്റാബേസിനും ഒരു ഫോൾഡറും.

ഒബ്ജക്റ്റ് എക്സ്പ്ലോറർ ഉപയോഗിച്ച് ഒരു ഡാറ്റാബേസ് സൃഷ്ടിക്കുന്നതിന്, ഡാറ്റാബേസ് നോഡിൽ വലത്-ക്ലിക്കുചെയ്ത് പുതിയ ഡാറ്റാബേസ് മെനു ഇനം തിരഞ്ഞെടുക്കുക. തുറക്കുന്ന പുതിയ ഡാറ്റാബേസ് ഡയലോഗ് ബോക്സിൽ, ഡാറ്റാബേസ് നെയിം ഫീൽഡിൽ, ഒരു പേര് നൽകുക പുതിയ അടിത്തറഡാറ്റ, തുടർന്ന് ശരി ക്ലിക്കുചെയ്യുക.

ഓരോ ഡാറ്റാബേസിനും ഫയൽ തരം, പ്രാരംഭ വലുപ്പം മുതലായവ പോലുള്ള നിരവധി ഗുണങ്ങളുണ്ട്. പുതിയ ഡാറ്റാബേസ് ഡയലോഗ് ബോക്സിന്റെ ഇടത് പാളിയിൽ ഡാറ്റാബേസ് പ്രോപ്പർട്ടി പേജുകളുടെ ഒരു ലിസ്റ്റ് സ്ഥിതി ചെയ്യുന്നു. ഡാറ്റാബേസ് പ്രോപ്പർട്ടീസ് ഡയലോഗ് ബോക്‌സിന്റെ പൊതുവായ പേജിൽ ഡാറ്റാബേസിന്റെ പേര്, ഉടമ, ശേഖരണം എന്നിവ പോലുള്ള വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു:

ഒരു നിർദ്ദിഷ്‌ട ഡാറ്റാബേസിന്റെ ഡാറ്റാ ഫയലുകളുടെ പ്രോപ്പർട്ടികൾ ഫയലുകൾ പേജിൽ ലിസ്‌റ്റ് ചെയ്‌തിരിക്കുന്നു, കൂടാതെ ഫയലിന്റെ പേരും പ്രാരംഭ വലുപ്പവും, ഡാറ്റാബേസിന്റെ സ്ഥാനം, ഫയൽ തരം (ഉദാഹരണത്തിന്, പ്രാഥമികം) എന്നിവ പോലുള്ള വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു. ഡാറ്റാബേസ് നിരവധി ഫയലുകളിൽ സൂക്ഷിക്കാൻ കഴിയും. SQL സെർവറിൽ ഇത് ഉപയോഗിക്കുന്നു ചലനാത്മക നിയന്ത്രണംഡിസ്ക് സ്പേസ്. ഇതിനർത്ഥം ഡാറ്റാബേസ് വലുപ്പം സ്വയമേവ വളരാനും ആവശ്യാനുസരണം ചുരുങ്ങാനും ക്രമീകരിക്കാൻ കഴിയും എന്നാണ്.

മാറ്റാൻ വേണ്ടി ഓട്ടോഗ്രോത്ത് പ്രോപ്പർട്ടി(ഓട്ടോഗ്രോത്ത്) ഫയലുകൾ പേജിൽ, ഓട്ടോഗ്രോത്ത് കോളത്തിൽ, എലിപ്‌സിസ് ഐക്കണിൽ ക്ലിക്ക് ചെയ്യുക (...) കൂടാതെ ചേഞ്ച് ഓട്ടോഗ്രോത്ത് ഡയലോഗ് ബോക്സിൽ ഉചിതമായ മാറ്റങ്ങൾ വരുത്തുക. ഡാറ്റാബേസ് വലുപ്പത്തിന്റെ യാന്ത്രിക വളർച്ച അനുവദിക്കുന്നതിന്, നിങ്ങൾ സജ്ജീകരിക്കേണ്ടതുണ്ട് ഓട്ടോഗ്രോത്ത് ചെക്ക്ബോക്സ് പ്രവർത്തനക്ഷമമാക്കുക. എല്ലാ സമയത്തും നിലവിലുള്ള വലിപ്പംചേർത്ത ഡാറ്റ സംഭരിക്കുന്നതിന് ഫയൽ പര്യാപ്തമല്ല, ഫയലിലേക്ക് അധിക ഡിസ്ക് സ്ഥലം അനുവദിക്കുന്നതിന് സെർവർ സ്വയമേവ സിസ്റ്റത്തോട് അഭ്യർത്ഥിക്കുന്നു. അധിക വോളിയം ഡിസ്ക് സ്പേസ്(ശതമാനത്തിലോ മെഗാബൈറ്റിലോ) സൂചിപ്പിച്ചിരിക്കുന്നു ഫയൽ വളർച്ചാ ഫീൽഡ്അതേ ഡയലോഗ് ബോക്സിൽ. വിഭാഗത്തിലും പരമാവധി ഫയൽ വലുപ്പംപരിമിതപ്പെടുത്താം പരമാവധി വലിപ്പംലിമിറ്റഡ് ടു (MB) സ്വിച്ച് തിരഞ്ഞെടുത്ത് ഫയൽ, അല്ലെങ്കിൽ അൺലിമിറ്റഡ് സ്വിച്ച് തിരഞ്ഞെടുത്ത് വലുപ്പ നിയന്ത്രണങ്ങൾ നീക്കം ചെയ്യുക (ഇതാണ് സ്ഥിരസ്ഥിതി ക്രമീകരണം). ഫയൽ വലുപ്പം പരിമിതമാണെങ്കിൽ, അതിന്റെ അനുവദനീയമായ പരമാവധി വലുപ്പം നിങ്ങൾ വ്യക്തമാക്കണം.

ഡാറ്റാബേസ് പ്രോപ്പർട്ടീസ് ഡയലോഗ് ബോക്സിലെ ഫയൽഗ്രൂപ്പുകൾ പേജ്, ഡാറ്റാബേസ് ഫയൽ ഉൾപ്പെടുന്ന ഫയൽഗ്രൂപ്പുകളുടെ പേരുകൾ, ഫയൽഗ്രൂപ്പ് പാർട്ടീഷൻ (സ്ഥിരസ്ഥിതി അല്ലെങ്കിൽ സ്പഷ്ടമായത്), ഫയൽഗ്രൂപ്പിൽ നടത്താൻ അനുവദിക്കുന്ന പ്രവർത്തനങ്ങൾ (റീഡ്-റൈറ്റ് അല്ലെങ്കിൽ റീഡ്-മാത്രം) എന്നിവ പ്രദർശിപ്പിക്കുന്നു. വായന).

ഡാറ്റാബേസ് പ്രോപ്പർട്ടീസ് ഡയലോഗ് ബോക്സിലെ ഓപ്ഷനുകൾ പേജിൽ, നിങ്ങൾക്ക് എല്ലാ ഡാറ്റാബേസ്-ലെവൽ ഓപ്ഷനുകളും കാണാനും പരിഷ്ക്കരിക്കാനും കഴിയും. പാരാമീറ്റർ ഗ്രൂപ്പുകൾ ഓട്ടോമാറ്റിക്, കണ്ടെയ്‌ൻമെന്റ്, കഴ്‌സർ, മറ്റുള്ളവ, റിക്കവറി, സർവീസ് ബ്രോക്കർ, സ്റ്റേറ്റ് എന്നിവയാണ്. സ്റ്റേറ്റ് ഗ്രൂപ്പിൽ, ഉദാഹരണത്തിന്, ഇനിപ്പറയുന്ന നാല് പാരാമീറ്ററുകൾ അടങ്ങിയിരിക്കുന്നു:

ഡാറ്റാബേസ് വായന-മാത്രം

ഡാറ്റാബേസിലേക്കുള്ള ആക്സസ് സ്ഥാപിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു പൂർണ്ണമായ പ്രവേശനംഅല്ലെങ്കിൽ വായന-മാത്രം പ്രവേശനം. പിന്നീടുള്ള സാഹചര്യത്തിൽ, ഉപയോക്താക്കൾക്ക് ഡാറ്റ പരിഷ്കരിക്കാൻ കഴിയില്ല. ഈ പരാമീറ്ററിന്റെ ഡിഫോൾട്ട് മൂല്യം തെറ്റാണ്.

പ്രവേശനം നിയന്ത്രിക്കുക

ഡാറ്റാബേസ് ഒരേസമയം ഉപയോഗിക്കാനാകുന്ന ഉപയോക്താക്കളുടെ എണ്ണം സജ്ജമാക്കുന്നു. സ്ഥിര മൂല്യം MULTI_USER ആണ്.

ഡാറ്റാബേസ് സ്റ്റേറ്റ്

ഡാറ്റാബേസിന്റെ അവസ്ഥ വിവരിക്കുന്നു. ഈ പരാമീറ്ററിന്റെ ഡിഫോൾട്ട് മൂല്യം സാധാരണമാണ്.

എൻക്രിപ്ഷൻ പ്രവർത്തനക്ഷമമാക്കി

ഡാറ്റാബേസ് എൻക്രിപ്ഷൻ മോഡ് വ്യക്തമാക്കുന്നു. ഈ പരാമീറ്ററിന്റെ ഡിഫോൾട്ട് മൂല്യം തെറ്റാണ്.

വിപുലീകരിച്ച പ്രോപ്പർട്ടീസ് പേജ് നിലവിലെ ഡാറ്റാബേസിനായി അധിക പ്രോപ്പർട്ടികൾ പ്രദർശിപ്പിക്കുന്നു. ഈ പേജിൽ നിങ്ങൾക്ക് നിലവിലുള്ള പ്രോപ്പർട്ടികൾ ഇല്ലാതാക്കാനും പുതിയവ ചേർക്കാനും കഴിയും.

അനുമതികൾ പേജ് എല്ലാ ഉപയോക്താക്കളും റോളുകളും അനുബന്ധ അനുമതികളും പ്രദർശിപ്പിക്കുന്നു.

മറ്റ് പേജുകൾ ട്രാക്കിംഗ് മാറ്റുന്നു, മിററിംഗ് ( കണ്ണാടി പ്രതിഫലനം) കൂടാതെ ട്രാൻസാക്ഷൻ ലോഗ് ഷിപ്പിംഗ് ഡാറ്റ ലഭ്യതയുമായി ബന്ധപ്പെട്ട കഴിവുകൾ വിവരിക്കുന്നു.

ഡാറ്റാബേസ് പരിഷ്ക്കരണം

ഒബ്‌ജക്റ്റ് ബ്രൗസർ ഉപയോഗിച്ച് നിങ്ങൾക്ക് പരിഷ്‌ക്കരിക്കാനാകും നിലവിലുള്ള അടിസ്ഥാനങ്ങൾഡാറ്റാബേസ് ഫയലുകളും ഫയൽ ഗ്രൂപ്പുകളും മാറ്റുന്നതിലൂടെ ഡാറ്റ. ഒരു ഡാറ്റാബേസിലേക്ക് പുതിയ ഫയലുകൾ ചേർക്കുന്നതിന്, ആവശ്യമുള്ള ഡാറ്റാബേസിൽ വലത്-ക്ലിക്കുചെയ്ത് സന്ദർഭ മെനുവിൽ നിന്ന് പ്രോപ്പർട്ടികൾ തിരഞ്ഞെടുക്കുക. തുറക്കുന്ന ഡാറ്റാബേസ് പ്രോപ്പർട്ടീസ് ഡയലോഗ് ബോക്സിൽ, ഫയലുകൾ പേജ് തിരഞ്ഞെടുത്ത് ഡാറ്റാബേസ് ഫയലുകൾ വിഭാഗത്തിന്റെ ചുവടെയുള്ള ചേർക്കുക ബട്ടണിൽ ക്ലിക്കുചെയ്യുക. വിഭാഗത്തിൽ ചേർക്കും പുതിയ വര, ലോജിക്കൽ നെയിം ഫീൽഡിൽ നിങ്ങൾ ചേർക്കേണ്ട ഡാറ്റാബേസ് ഫയലിന്റെ പേര് നൽകണം, മറ്റ് ഫീൽഡുകളിൽ ഈ ഫയലിന്റെ ആവശ്യമായ പ്രോപ്പർട്ടികൾ സജ്ജമാക്കുക. ഫയൽ ഗ്രൂപ്പുകൾ പേജ് തിരഞ്ഞെടുത്ത് ചേർക്കുക ബട്ടൺ ക്ലിക്കുചെയ്തുകൊണ്ട് നിങ്ങൾക്ക് ഡാറ്റാബേസിനായി ഒരു ദ്വിതീയ ഫയൽഗ്രൂപ്പ് ചേർക്കാനും കഴിയും.

മുമ്പ് സൂചിപ്പിച്ച ഡാറ്റാബേസ് പ്രോപ്പർട്ടികൾ സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്റർ അല്ലെങ്കിൽ ഡാറ്റാബേസ് ഉടമയ്ക്ക് മാത്രമേ പരിഷ്കരിക്കാൻ കഴിയൂ.

ഒബ്ജക്റ്റ് എക്സ്പ്ലോറർ ഉപയോഗിച്ച് ഡാറ്റാബേസുകൾ ഇല്ലാതാക്കാൻ, ആവശ്യമുള്ള ഡാറ്റാബേസിന്റെ പേരിൽ വലത്-ക്ലിക്കുചെയ്ത് തുറക്കുന്ന സന്ദർഭ മെനുവിൽ നിന്ന് ഇല്ലാതാക്കുക തിരഞ്ഞെടുക്കുക.

ടേബിൾ മാനേജ്മെന്റ്

ഡാറ്റാബേസ് സൃഷ്ടിച്ച ശേഷം, ആവശ്യമായ എല്ലാ പട്ടികകളും സൃഷ്ടിക്കുക എന്നതാണ് അടുത്ത ചുമതല. ഒരു ഡാറ്റാബേസ് സൃഷ്‌ടിക്കുന്നതിന് സമാനമായി, ട്രാൻസാക്റ്റ്-എസ്‌ക്യുഎൽ അല്ലെങ്കിൽ ഒബ്‌ജക്റ്റ് എക്‌സ്‌പ്ലോറർ ഉപയോഗിച്ച് അതിലെ പട്ടികകളും സൃഷ്‌ടിക്കാനാകും. ഒരു ഡാറ്റാബേസ് സൃഷ്ടിക്കുന്നത് പോലെ, ഇവിടെ നമ്മൾ ഒബ്ജക്റ്റ് എക്സ്പ്ലോറർ ഉപയോഗിച്ച് മാത്രം പട്ടികകൾ സൃഷ്ടിക്കുന്നത് നോക്കാം.

പട്ടികകൾ സൃഷ്ടിക്കുന്നത് പരിശീലിക്കുന്നതിന്, നമുക്ക് സാമ്പിൾ ഡിബി ഡാറ്റാബേസിൽ ഒരു ഡിപ്പാർട്ട്മെന്റ് ടേബിൾ ഉണ്ടാക്കാം. ഒബ്‌ജക്റ്റ് എക്‌സ്‌പ്ലോറർ ഉപയോഗിച്ച് ഒരു ഡാറ്റാബേസ് ടേബിൾ സൃഷ്‌ടിക്കാൻ, ഡാറ്റാബേസ് നോഡ് വികസിപ്പിക്കുക, തുടർന്ന് ആവശ്യമുള്ള ഡാറ്റാബേസ് നോഡ്, ടേബിൾസ് ഫോൾഡറിൽ വലത്-ക്ലിക്കുചെയ്ത് തുറക്കുന്ന സന്ദർഭ മെനുവിൽ നിന്ന് പുതിയ ടേബിൾ തിരഞ്ഞെടുക്കുക. കൂടെ മുകളിൽ വലത് വശംമാനേജ്മെന്റ് സ്റ്റുഡിയോ വിൻഡോ ഒരു പുതിയ പട്ടികയ്ക്കായി നിരകൾ സൃഷ്ടിക്കുന്നതിനുള്ള ഒരു വിൻഡോ തുറക്കുന്നു. പട്ടിക നിരയുടെ പേരുകൾ, അവയുടെ ഡാറ്റ തരങ്ങൾ, വലത് വശത്ത് കാണിച്ചിരിക്കുന്നതുപോലെ ഓരോ കോളത്തിനും അസാധുവായ മൂല്യങ്ങളുടെ മിഴിവ് എന്നിവ നൽകുക. മുകളിലെ പാനൽചുവടെയുള്ള ചിത്രത്തിൽ:

ഒരു കോളത്തിനായി സിസ്റ്റം പിന്തുണയ്ക്കുന്ന ഡാറ്റാ തരങ്ങളിൽ ഒന്ന് തിരഞ്ഞെടുക്കാൻ, ഡാറ്റ ടൈപ്പ് കോളത്തിൽ, ബോക്‌സിന്റെ വലത് അറ്റത്തുള്ള താഴേക്ക് അഭിമുഖീകരിക്കുന്ന ത്രികോണം തിരഞ്ഞെടുത്ത് ക്ലിക്കുചെയ്യുക (നിങ്ങൾ ഒരു സെൽ തിരഞ്ഞെടുത്തതിന് ശേഷം ഈ ത്രികോണം ദൃശ്യമാകും). തൽഫലമായി, തുറക്കുന്ന ഡ്രോപ്പ്-ഡൗൺ ലിസ്റ്റിൽ, കോളത്തിന് ആവശ്യമായ ഡാറ്റ തരം തിരഞ്ഞെടുക്കുക.

നിങ്ങൾക്ക് കോളം പ്രോപ്പർട്ടീസ് ടാബിൽ (ചിത്രത്തിലെ താഴെയുള്ള പാനൽ) നിലവിലുള്ള കോളത്തിന്റെ ഡാറ്റ തരം മാറ്റാനാകും. ചാർ പോലെയുള്ള ചില ഡാറ്റാ തരങ്ങൾക്ക്, ദശാംശം പോലെയുള്ളവയ്ക്ക്, നിരയുടെ പ്രോപ്പർട്ടീസ് ടാബിലെ സ്കെയിൽ, പ്രിസിഷൻ ലൈനുകളിൽ സ്കെയിലും കൃത്യതയും വ്യക്തമാക്കേണ്ടതുണ്ട്. int പോലെയുള്ള മറ്റു ചിലത്, ഈ പ്രോപ്പർട്ടികളൊന്നും വ്യക്തമാക്കേണ്ടതില്ല. (ഇതിനുള്ള മൂല്യങ്ങൾ അസാധുവാണ് നിർദ്ദിഷ്ട തരംസാധ്യമായ എല്ലാ കോളം പ്രോപ്പർട്ടികളുടെ പട്ടികയിൽ ഷേഡുള്ള ഫോണ്ടിൽ ഡാറ്റ ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്നു.)

അനുവദിക്കുക ശൂന്യമായ മൂല്യങ്ങൾവേണ്ടി ഈ നിരയുടെ, നിങ്ങൾ അതിനായി അനുബന്ധ ഫീൽഡ് ചെക്ക്ബോക്സ് സജ്ജമാക്കണം. കൂടാതെ, ഒരു നിരയ്ക്ക് സ്ഥിര മൂല്യം ആവശ്യമാണെങ്കിൽ, അത് കോളം പ്രോപ്പർട്ടീസ് പാനലിന്റെ ഡിഫോൾട്ട് മൂല്യത്തിലോ ബൈൻഡിംഗ് ലൈനിലോ നൽകണം. ഒരു മൂല്യം വ്യക്തമായി നൽകിയിട്ടില്ലെങ്കിൽ, ഒരു കോളം സെല്ലിലേക്ക് ഒരു സ്ഥിര മൂല്യം സ്വയമേവ അസൈൻ ചെയ്യപ്പെടും.

ഡിപ്പാർട്ട്‌മെന്റ് ടേബിളിന്റെ പ്രാഥമിക താക്കോലാണ് നമ്പർ കോളം. കോളം ഒരു പട്ടികയുടെ പ്രാഥമിക കീ ആക്കുന്നതിന്, അതിൽ വലത്-ക്ലിക്കുചെയ്ത് സന്ദർഭ മെനുവിൽ നിന്ന് പ്രാഥമിക കീ സജ്ജമാക്കുക തിരഞ്ഞെടുക്കുക.

നിങ്ങൾ എല്ലാ പട്ടിക സൃഷ്ടിക്കൽ ജോലികളും പൂർത്തിയാക്കിക്കഴിഞ്ഞാൽ, ടേബിൾ ഡിസൈനർ ടാബിലെ ക്രോസിൽ ക്ലിക്ക് ചെയ്യുക. നിങ്ങളുടെ മാറ്റങ്ങൾ സംരക്ഷിക്കണോ എന്ന് ചോദിക്കുന്ന ഒരു ഡയലോഗ് ബോക്സ് തുറക്കും. അതെ ക്ലിക്ക് ചെയ്യുക, അത് പേര് തിരഞ്ഞെടുക്കുക ഡയലോഗ് ബോക്സ് തുറക്കും, പട്ടികയ്ക്ക് ഒരു പേര് നൽകാൻ നിങ്ങളോട് ആവശ്യപ്പെടും. ആവശ്യമുള്ള പട്ടികയുടെ പേര് നൽകി ശരി ക്ലിക്കുചെയ്യുക. പട്ടിക താഴെ സംരക്ഷിക്കപ്പെടും നിർദ്ദിഷ്ട പേര്. പ്രദർശിപ്പിക്കാനുള്ള പുതിയ മേശഡാറ്റാബേസ് ശ്രേണിയിൽ, ഒബ്ജക്റ്റ് എക്സ്പ്ലോറർ ടൂൾബാറിൽ, പുതുക്കുക ഐക്കണിൽ ക്ലിക്കുചെയ്യുക.

നിലവിലുള്ള ഒരു പട്ടികയുടെ പ്രോപ്പർട്ടികൾ കാണുന്നതിനും മാറ്റുന്നതിനും, ആവശ്യമുള്ള പട്ടിക ഉൾക്കൊള്ളുന്ന ഡാറ്റാബേസ് വികസിപ്പിക്കുക, ആ ഡാറ്റാബേസിലെ ടേബിൾസ് നോഡ് വികസിപ്പിക്കുക, ആവശ്യമുള്ള പട്ടികയിൽ വലത്-ക്ലിക്ക് ചെയ്യുക, തുടർന്ന് സന്ദർഭ മെനുവിൽ നിന്ന് പ്രോപ്പർട്ടികൾ തിരഞ്ഞെടുക്കുക. ഇത് ടേബിളിനായി ടേബിൾ പ്രോപ്പർട്ടീസ് ഡയലോഗ് ബോക്സ് തുറക്കും. ഉദാഹരണമായി, സാമ്പിൾ ഡിബി ഡാറ്റാബേസിലെ ജീവനക്കാരുടെ പട്ടികയ്ക്കുള്ള ജനറൽ ടാബിലെ ടേബിൾ പ്രോപ്പർട്ടീസ് ഡയലോഗ് ബോക്സ് ചുവടെയുള്ള ചിത്രം കാണിക്കുന്നു.

ഒരു പട്ടികയുടെ പേരുമാറ്റാൻ, പട്ടികകൾ ഫോൾഡറിൽ, പട്ടിക ലിസ്റ്റിൽ വലത്-ക്ലിക്കുചെയ്ത് സന്ദർഭ മെനുവിൽ നിന്ന് പേരുമാറ്റുക തിരഞ്ഞെടുക്കുക. ഒരു പട്ടിക ഇല്ലാതാക്കാൻ, അതിൽ വലത്-ക്ലിക്കുചെയ്ത് ഇല്ലാതാക്കുക തിരഞ്ഞെടുക്കുക.

സാമ്പിൾ ഡിബി ഡാറ്റാബേസിന്റെ നാല് ടേബിളുകളും (എംപ്ലോയി, ഡിപ്പാർട്ട്‌മെന്റ്, പ്രോജക്റ്റ്, വർക്ക്സ്_ഓൺ - നിങ്ങൾക്ക് സോഴ്‌സ് കോഡിൽ വിശദമായ ടേബിൾ ഘടന കണ്ടെത്താൻ കഴിയും) സൃഷ്ടിച്ച ശേഷം, ഒരു എന്റിറ്റി-റിലേഷൻഷിപ്പ് ഡയഗ്രം പ്രദർശിപ്പിക്കുന്നതിന് നിങ്ങൾക്ക് SQL സെർവർ മാനേജ്‌മെന്റ് സ്റ്റുഡിയോയുടെ മറ്റൊരു സവിശേഷത ഉപയോഗിക്കാം - ഡയഗ്രം (ER) (എന്റ്റിറ്റി-റിലേഷൻഷിപ്പ്)ഈ ഡാറ്റാബേസ്. (ഡാറ്റാബേസ് ടേബിളുകൾ ഒരു എന്റിറ്റി-റിലേഷൻഷിപ്പ് (ER) ഡയഗ്രമായി പരിവർത്തനം ചെയ്യുന്ന പ്രക്രിയയെ റിവേഴ്സ് എഞ്ചിനീയറിംഗ് എന്ന് വിളിക്കുന്നു.)

സാമ്പിൾ ഡിബി ഡാറ്റാബേസിനായി ഒരു ഇആർ ഡയഗ്രം സൃഷ്ടിക്കുന്നതിന്, അതിന്റെ ഡാറ്റാബേസ് ഡയഗ്രം സബ്ഫോൾഡറിൽ വലത്-ക്ലിക്കുചെയ്ത് സന്ദർഭ മെനുവിൽ നിന്ന് പുതിയ ഡാറ്റാബേസ് ഡയഗ്രം തിരഞ്ഞെടുക്കുക. സഹായ ഒബ്‌ജക്‌റ്റുകൾ സൃഷ്‌ടിക്കണോ എന്ന് ചോദിക്കുന്ന ഒരു ഡയലോഗ് ബോക്‌സ് ദൃശ്യമാകുകയാണെങ്കിൽ, അതെ തിരഞ്ഞെടുക്കുക.

ഇത് ആഡ് ടേബിൾ ഡയലോഗ് ബോക്സ് തുറക്കും, ചാർട്ടിലേക്ക് ചേർക്കാൻ പട്ടികകൾ തിരഞ്ഞെടുക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ആവശ്യമായ എല്ലാ പട്ടികകളും നിങ്ങൾ ചേർത്തുകഴിഞ്ഞാൽ (ഈ സാഹചര്യത്തിൽ, നാലെണ്ണം), അടയ്ക്കുക ക്ലിക്കുചെയ്യുക, വിസാർഡ് ചുവടെയുള്ള ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്നതിന് സമാനമായ ഒരു ചാർട്ട് സൃഷ്ടിക്കും:

ചിത്രം കാണിക്കുന്നത് സാമ്പിൾ ഡിബി ഡാറ്റാബേസിന്റെ ഇന്റർമീഡിയറ്റ് ഇആർ ഡയഗ്രം മാത്രമാണ്, അന്തിമ ഇആർ ഡയഗ്രം അല്ല, കാരണം ഇത് നാല് പട്ടികകളെയും അവയുടെ നിരകൾ (അതിന്റെ അനുബന്ധ പ്രൈമറി കീകളും) കാണിക്കുന്നുണ്ടെങ്കിലും, അത് ഇപ്പോഴും പട്ടികകൾ തമ്മിലുള്ള ബന്ധങ്ങൾ കാണിക്കുന്നില്ല. രണ്ട് പട്ടികകൾ തമ്മിലുള്ള ബന്ധം അടിസ്ഥാനമാക്കിയുള്ളതാണ് പ്രാഥമിക കീപട്ടികകളിലൊന്നും മറ്റേ പട്ടികയുടെ സാധ്യമായ അനുബന്ധ കോളവും (അല്ലെങ്കിൽ നിരകൾ).

സാമ്പിൾ ഡിബി ഡാറ്റാബേസിലെ പട്ടികകൾ തമ്മിൽ മൂന്ന് ബന്ധങ്ങളുണ്ട്. ഡിപ്പാർട്ട്‌മെന്റ് ടേബിളിന് എംപ്ലോയി ടേബിളുമായി 1:N ബന്ധമുണ്ട്, കാരണം ഡിപ്പാർട്ട്‌മെന്റ് ടേബിളിന്റെ പ്രാഥമിക കീയിലെ (നമ്പർ കോളം) ഓരോ മൂല്യവും എംപ്ലോയി ടേബിളിന്റെ ഡിപ്പാർട്ട്‌മെന്റ് നമ്പർ കോളത്തിലെ ഒന്നോ അതിലധികമോ മൂല്യങ്ങളുമായി പൊരുത്തപ്പെടുന്നു (ഒരു ഡിപ്പാർട്ട്‌മെന്റിന് ഒന്നിലധികം ജീവനക്കാർ ഉണ്ടായിരിക്കാം).

അതുപോലെ, Employee, Works_on ടേബിളുകൾ തമ്മിൽ ഒരു ബന്ധമുണ്ട്, കാരണം Employee ടേബിളിന്റെ (Id) പ്രാഥമിക കീ കോളത്തിൽ ഉള്ള മൂല്യങ്ങൾ മാത്രമേ Works_on ടേബിളിന്റെ EmpId കോളത്തിലും ഉള്ളൂ. പ്രോജക്റ്റും Works_on ടേബിളുകളും തമ്മിൽ മൂന്നാമത്തെ ബന്ധം നിലവിലുണ്ട്, കാരണം പ്രോജക്റ്റ് ടേബിളിന്റെ (നമ്പർ) പ്രാഥമിക കീയിൽ ഉള്ള മൂല്യങ്ങൾ മാത്രമാണ് Works_on പട്ടികയുടെ ProjectNumber കോളത്തിലും ഉള്ളത്.

ഈ മൂന്ന് ബന്ധങ്ങൾ സൃഷ്ടിക്കുന്നതിന്, ഓരോ ടേബിളിനും അനുയോജ്യമായ നിരകൾ വ്യക്തമാക്കി ER ഡയഗ്രം പുനർനിർമ്മിക്കേണ്ടതുണ്ട്. പ്രധാന നിരകൾമറ്റ് പട്ടികകൾ. ഈ നിരയെ വിളിക്കുന്നു വിദേശ കീ ( വിദേശ കീ) . ഇത് എങ്ങനെ ചെയ്യപ്പെടുന്നു എന്നറിയാൻ, ജീവനക്കാരുടെ പട്ടികയിലെ ഡിപ്പാർട്ട്മെന്റ് നമ്പർ കോളം ഇങ്ങനെ നിർവചിക്കാം ബാഹ്യ കീവകുപ്പ് പട്ടികകൾ. ഇത് ചെയ്യുന്നതിന്, ഇനിപ്പറയുന്ന ഘട്ടങ്ങൾ ചെയ്യുക:


മറ്റ് രണ്ട് ബന്ധങ്ങളും സമാനമായ രീതിയിൽ സൃഷ്ടിക്കപ്പെടുന്നു. സാമ്പിൾ ഡിബി ഡാറ്റാബേസ് പട്ടികകൾ തമ്മിലുള്ള മൂന്ന് ബന്ധങ്ങളും കാണിക്കുന്ന ഒരു ER ഡയഗ്രം ചുവടെയുള്ള ചിത്രം കാണിക്കുന്നു: