SQL இல் பயனர்கள் மற்றும் பாத்திரங்களுக்கு அணுகல் கட்டுப்பாடுகள்

பாதுகாப்பானது, அங்கீகாரமற்ற வெளியாட்களின் பார்வையிடும் மற்றும் வெளிநாட்டினர் தங்கள் அதிகாரத்தை மீறுவதற்கு முயற்சிக்கும் முக்கிய வணிகத் தரவரிசைகளின் ஜிகாபைட்ஸைக் காப்பாற்ற முயற்சிக்கும் தரவுத்தள நிர்வாகிகளுக்கு மிக முக்கியமானதாகும். அனைத்து தொடர்புடைய தரவுத்தள நிர்வாக அமைப்புகளும் இந்த அச்சுறுத்தல்களைக் குறைக்க வடிவமைக்கப்பட்ட சில வகையான உள்ளார்ந்த பாதுகாப்பு வழிமுறைகளை வழங்குகின்றன. மைக்ரோசாஃப்ட் அக்சஸ் வழங்கிய எளிமையான கடவுச்சொல் பாதுகாப்பிலிருந்து அவை ஆரக்கிள் மற்றும் மைக்ரோசாஃப்ட் SQL சர்வர் போன்ற முன்னேறிய தொடர்புடைய தரவுத்தளங்களால் ஆதரிக்கப்படும் சிக்கலான பயனர் / பாத்திர அமைப்புக்கு வழங்கப்படுகின்றன. கட்டமைக்கப்பட்ட வினவல் மொழி (அல்லது SQL ) ஐ செயல்படுத்துகின்ற எல்லா தரவுத்தளங்களுக்கும் பொதுவான பாதுகாப்பு வழிமுறைகளில் இந்த கட்டுரை கவனம் செலுத்துகிறது. தரவு அணுகல் கட்டுப்பாடுகளை வலுப்படுத்தி, உங்கள் தரவின் பாதுகாப்பை உறுதிப்படுத்துவதன் மூலம் ஒன்றாக இணைந்து செயல்படுவோம்.

பயனர்கள்

சர்வர் அடிப்படையிலான தரவுத்தளங்கள் அனைத்தும் கணினி இயக்க முறைமைகளில் பயன்படுத்தப்படும் ஒரு பயனர் கருத்தை ஆதரிக்கின்றன. நீங்கள் மைக்ரோசாப்ட் விண்டோஸ் NT மற்றும் விண்டோஸ் 2000 இல் காணப்படும் பயனர் / குழு வரிசைக்கு தெரிந்திருந்தால், SQL சர்வர் மற்றும் ஆரக்கிள் ஆகியவற்றால் ஆதரிக்கப்படும் பயனர் / பங்கு குழுக்கள் மிகவும் ஒத்ததாக இருக்கும்.

உங்கள் தரவுத்தளத்தை அணுகும் ஒவ்வொரு நபருக்கான தனிப்பட்ட தரவுத்தள பயனர் கணக்குகளை நீங்கள் உருவாக்க பரிந்துரைக்கப்படுகிறது. இது பயனர் இடையே கணக்குகளை பகிர்ந்து அல்லது உங்கள் தரவுத்தள அணுக வேண்டும் என்று ஒவ்வொரு வகை பயனர் ஒரு பயனர் கணக்கை பயன்படுத்த தொழில்நுட்ப ரீதியாக சாத்தியம், ஆனால் நான் கடுமையாக இரண்டு காரணங்களுக்காக இந்த நடைமுறை ஊக்கம். முதலாவதாக, தனிப்பட்ட பொறுப்புணர்வு நீக்கப்பட்டால், ஒரு பயனர் உங்கள் தரவுத்தளத்தில் மாற்றம் செய்தால் (தன்னை $ 5,000 உயர்த்துவதன் மூலம் சொல்லலாம்), நீங்கள் தணிக்கை பதிவுகள் பயன்படுத்தி ஒரு குறிப்பிட்ட நபரிடம் அதை மீண்டும் கண்டுபிடிக்க முடியாது. கூடுதலாக, ஒரு குறிப்பிட்ட பயனர் உங்கள் நிறுவனத்தை விட்டு வெளியேறினால், நீங்கள் அவரால் அல்லது தரவுத்தளத்திலிருந்து அணுகலை அகற்ற விரும்பினால், எல்லா பயனர்களும் நம்பியிருக்கும் கடவுச்சொல்லை மாற்றும்படி கட்டாயப்படுத்தப்படுவீர்கள்.

பயனர் கணக்குகளை உருவாக்குவதற்கான வழிமுறைகள் மேடையில் இருந்து மேடையில் வேறுபடுகின்றன, மேலும் உங்கள் DBMS- சார்ந்த ஆவணங்களை சரியான செயல்முறைக்கு நீங்கள் கண்டிப்பாகப் பரிசீலிக்க வேண்டும். மைக்ரோசாப்ட் SQL சர்வர் பயனர்கள், ஸ்ப்ரெட்ஷேடரின் சேமித்த செயல்முறையின் பயன்பாட்டை விசாரிக்க வேண்டும். ஆரக்கிள் தரவுத்தள நிர்வாகிகள் CREATE USER கட்டளை பயனுள்ளதாக இருக்கும். நீங்கள் மாற்று அங்கீகாரத் திட்டங்களை ஆராய வேண்டும். எடுத்துக்காட்டாக, மைக்ரோசாப்ட் SQL சர்வர் விண்டோஸ் NT ஒருங்கிணைந்த பாதுகாப்பு பயன்பாடு ஆதரிக்கிறது. இந்தத் திட்டத்தின் கீழ், பயனர்கள் தங்கள் விண்டோஸ் NT பயனர் கணக்குகளால் தரவுத்தளத்தில் அடையாளம் காணப்படுவர், தரவுத்தளத்தை அணுக கூடுதல் பயனர் ஐடி மற்றும் கடவுச்சொல்லை உள்ளிட வேண்டியதில்லை. இந்த அணுகுமுறை தரவுத்தள நிர்வாகிகளிடையே மிகவும் பிரபலமாக உள்ளது, ஏனெனில் இது கணக்கு நிர்வாகத்தின் சுமைகளை நெட்வொர்க் நிர்வாக ஊழியர்களுக்கு மாற்றியமைக்கிறது மற்றும் இறுதி பயனருக்கு ஒற்றை உள்நுழைவுக்கான எளிமையை வழங்குகிறது.

பாத்திரங்கள்

நீங்கள் ஒரு சிறிய எண்ணிக்கையிலான பயனருடன் சூழலில் இருந்தால், பயனர் கணக்குகளை உருவாக்கி, நேரடியாக அனுமதிப்பதற்கான அனுமதிகள் உங்கள் தேவைகளுக்கு போதுமானதாக இருக்கும். இருப்பினும், அதிக எண்ணிக்கையிலான பயனர்கள் இருந்தால், கணக்குகள் மற்றும் முறையான அனுமதிகள் ஆகியவற்றைப் பராமரிப்பது சுலபமாக இருக்கும். இந்த சுமையை எளிதாக்க, தொடர்புடைய தரவுத்தளங்கள் பாத்திரங்களின் கருத்தை ஆதரிக்கின்றன. தரவுத்தள பாத்திரங்கள் விண்டோஸ் NT குழுக்களுக்கும் இதேபோல் செயல்படும். பயனர் கணக்குகள் பங்கு (கள்) க்கு ஒதுக்கப்பட்டுள்ளன, பின்னர் தனிப்பட்ட பயனர் கணக்குகளை விட முழு அனுமதிப்பத்திரங்களை அனுமதிக்கின்றன. உதாரணமாக, நாம் ஒரு டிபிஏ பாத்திரத்தை உருவாக்கி, எங்கள் நிர்வாக ஊழியர்களின் பயனர் கணக்குகளை இந்த பாத்திரத்தில் சேர்க்கலாம். நாம் இதை செய்தபின், பங்கு அனைவருக்கும் (மற்றும் எதிர்கால) நிர்வாகிகளுக்கு அனுமதிப்பதன் மூலம் ஒரு குறிப்பிட்ட அனுமதியை ஒதுக்க முடியும். மீண்டும், பாத்திரங்களை உருவாக்குவதற்கான நடைமுறைகள் மேடையில் இருந்து தளத்திற்கு மாறுபடும். ஆரக்கிள் DBA க்கள் CREATE ROLE தொடரியல் பயன்படுத்த வேண்டும் போது MS SQL சர்வர் நிர்வாகிகள் sp_addrole சேமித்து செயல்முறை விசாரிக்க வேண்டும்.

அனுமதிகள் வழங்குதல்

இப்போது நாங்கள் எங்கள் தரவுத்தளத்தில் பயனர்களை சேர்த்துள்ளோம், அனுமதிகளை சேர்ப்பதன் மூலம் பாதுகாப்பை வலுப்படுத்தும் நேரம் இது. எங்கள் பயனர்களுக்கு பொருத்தமான தரவுத்தள அனுமதிகள் வழங்குவதற்கு எங்கள் முதல் படி இருக்கும். SQL GRANT அறிக்கையின் பயன்பாட்டின் மூலம் இதை நாங்கள் நிறைவேற்றுவோம்.

இங்கே அறிக்கையின் தொடரியல்:

GRANT <அனுமதிகள்>
[இல்

]
<பயனர் / பாத்திரம்>
[குரல் தேர்வு]

இப்போது, ​​இந்த அறிக்கையை வரி-மூலம்-வரி பார்க்கலாம். முதல் வரி, GRANT , நாம் வழங்கும் குறிப்பிட்ட அட்டவணை அனுமதியைக் குறிப்பிட அனுமதிக்கிறது. இவை அட்டவணை-நிலை அனுமதிகள் (SELECT, INSERT, UPDATE மற்றும் DELETE போன்றவை) அல்லது தரவுத்தள அனுமதிகள் (CREATE TABLE, ALTER DATABASE மற்றும் GRANT போன்றவை). ஒரு GRANT அறிக்கையில் ஒன்றுக்கு மேற்பட்ட அனுமதிகளை வழங்கலாம், ஆனால் அட்டவணை நிலை அனுமதிகள் மற்றும் தரவுத்தள-நிலை அனுமதிகள் ஒற்றை அறிக்கையில் இணைக்கப்படாமல் இருக்கலாம்.

இரண்டாவது வரி,

இல், அட்டவணை-நிலை அனுமதிகளுக்கான பாதிக்கப்பட்ட அட்டவணையை குறிப்பிடுவதற்குப் பயன்படுத்தப்படுகிறது. தரவுத்தள அளவிலான அனுமதிகள் வழங்கப்பட்டால், இந்த வரி விலக்கப்பட்டிருக்கும். மூன்றாவது கோடு பயனீட்டாளர்களுக்கு அனுமதியளிக்கப்படும் பயனர் அல்லது பாத்திரத்தை குறிப்பிடுகிறது.

கடைசியாக, நான்காவது கோணம், GRANT OPTION உடன் விருப்பமானது. இந்த வரி அறிக்கையில் சேர்க்கப்பட்டால், பாதிக்கப்பட்ட பயனர் மற்ற பயனர்களுக்கு இதே அனுமதிகளை வழங்க அனுமதிக்கப்படுவார். அனுமதிப்பத்திரங்கள் ஒரு பங்கிற்கு ஒதுக்கப்படும் போது வழங்கப்பட்ட GRANT விருப்பத்தை குறிப்பிட முடியாது என்பதை நினைவில் கொள்க.

எடுத்துக்காட்டுகள்

சில உதாரணங்களை பார்க்கலாம். எங்கள் முதல் காட்சியில், சமீபத்தில் வாடிக்கையாளர் பதிவுகள் சேர்ப்பது மற்றும் பராமரிக்கப்படும் 42 தரவு நுழைவு இயக்குநர்களின் குழுவை நாங்கள் பணியமர்த்தியுள்ளோம். வாடிக்கையாளர்களின் அட்டவணையில் தகவலை அணுகவும், இந்த தகவலை மாற்றவும், அட்டவணையில் புதிய பதிவுகளை சேர்க்கவும் வேண்டும். தரவுத்தளத்திலிருந்து ஒரு பதிவை முற்றிலும் நீக்க முடியாது. முதலாவதாக, ஒவ்வொரு ஆபரேட்டருக்கும் பயனர் கணக்குகளை உருவாக்க வேண்டும், பின்னர் அனைத்தையும் DataEntry என்ற புதிய பாத்திரத்தில் சேர்க்க வேண்டும். அடுத்து, அவர்களுக்கு பின்வரும் அனுமதிகள் வழங்குவதற்கு பின்வரும் SQL அறிக்கை பயன்படுத்த வேண்டும்:

GRANT SELECT, INSERT, UPDATE
வாடிக்கையாளர்கள் மீது
DataEntry செய்ய

மற்றும் அது எல்லாம் இருக்கிறது! தரவுத்தள-நிலை அனுமதிகளை நாங்கள் ஒதுக்கிக் கொண்டிருக்கும் ஒரு வழக்கை இப்போது பார்க்கலாம். எங்கள் தரவுத்தளத்தில் புதிய அட்டவணைகளை சேர்க்க DBA பாத்திரத்தை உறுப்பினர்கள் அனுமதிக்க வேண்டும். மேலும், மற்ற பயனர்கள் அதைச் செய்ய அனுமதிப்பதை அவர்கள் அனுமதிக்க வேண்டும். இங்கே SQL அறிக்கை:

GRANT உருவாக்குதல் அட்டவணை
DBA க்கு
GRANT OPTION உடன்

எங்கள் DBA கள் மற்ற பயனர்களுக்கு இந்த அனுமதியை ஒதுக்க முடியும் என்பதை உறுதிப்படுத்த நாங்கள் GRANT OPTION வரியை உள்ளடக்கியுள்ளோம் என்பதை கவனிக்கவும்.

அனுமதிகளை நீக்குதல்

நாம் அனுமதிகளை வழங்கியவுடன், அது ஒரு பிந்தைய தேதியில் அவற்றைத் திரும்பப் பெற தேவையானது என்பதை நிரூபிக்கிறது. அதிர்ஷ்டவசமாக, எல்.ஓ.ஓ முன் வழங்கப்பட்ட அனுமதியை அகற்ற REVOKE கட்டளையை எங்களுக்கு வழங்குகிறது. இங்கே தொடரியல்:

REVOKE [அனுமதிப்பத்திரம்]] <அனுமதிகளை>

இல்
<பயனர் / பாத்திரம்> இருந்து

இந்த கட்டளையின் தொடரியல் GRANT கட்டளையைப் போலவே உள்ளது என்பதை நீங்கள் கவனிக்க வேண்டும். ஒரே வித்தியாசம் என்னவென்றால், GRANT OPTION ஆனது கட்டளை முடிவில் விட REVOKE கட்டளை வரியில் குறிப்பிடப்பட்டுள்ளது. உதாரணமாக, வாடிக்கையாளர்களின் தரவுத்தளத்திலிருந்து பதிவுகளை அகற்றுவதற்கு மேரி முன் அனுமதி வழங்கியதைத் திரும்பப்பெற வேண்டும் என்று கற்பனை செய்வோம். பின்வரும் கட்டளையைப் பயன்படுத்துவோம்:

REVOKE DELETE
வாடிக்கையாளர்கள் மீது
மேரி இருந்து

மற்றும் அது எல்லாம் இருக்கிறது! மைக்ரோசாப்ட் SQL சேவையகத்தால் ஆதரிக்கப்படும் ஒரு கூடுதல் இயங்குமுறை உள்ளது - இது DENY கட்டளை. இந்த கட்டளையானது ஒரு பயனருக்கு ஒரு அனுமதியினை வெளிப்படையாக மறுக்க பயன்படும், அவை தற்போதைய அல்லது எதிர்கால பங்களிப்பு மூலம் பெறலாம். இங்கே தொடரியல்:

டெனி <அனுமதிகள்>

இல்
<பயனர் / பாத்திரம்

எடுத்துக்காட்டுகள்

எங்கள் முந்தைய எடுத்துக்காட்டுக்கு திரும்புவோம், மேரி வாடிக்கையாளர்களின் மேசையில் அணுகுவதற்கான நிர்வாக மேலாளரின் உறுப்பினராக இருப்பார் என்று கற்பனை செய்து பார்க்கலாம். முந்தைய REVOKE அறிக்கையின் அட்டவணைக்கு அவரின் அணுகலை மறுக்க போதுமானதாக இருக்காது. தனது பயனர் கணக்கை இலக்காகக் கொண்ட GRANT அறிக்கையின் மூலம் அவரால் அனுமதிக்கப்பட்ட அனுமதி நீக்கப்படும், ஆனால் மேலாளர்கள் பாத்திரத்தில் தனது உறுப்பினர் மூலம் பெற்ற அனுமதியை பாதிக்காது. இருப்பினும், நாம் ஒரு டெனி அறிக்கையைப் பயன்படுத்தினால், அது அனுமதியின் உரிமையைத் தடுத்துவிடும். இங்கே கட்டளை:

டென்னி டெலிட்
வாடிக்கையாளர்கள் மீது
மரியாள்

DENY கட்டளை அடிப்படையில் தரவுத்தள அணுகல் கட்டுப்பாடுகள் ஒரு "எதிர்மறை அனுமதி" உருவாக்குகிறது. வாடிக்கையாளர்கள் அட்டவணைகளில் இருந்து வரிசைகளை அகற்றுவதற்கு மேரி அனுமதி வழங்க முடிவு செய்தால், நாங்கள் GRANT கட்டளையைப் பயன்படுத்த முடியாது. அந்த கட்டளையை ஏற்கனவே உள்ள DENY உடனடியாக மீறப்படும். அதற்கு பதிலாக, நாம் முதலில் REVOKE கட்டளையை கீழ்கண்டவாறு எதிர்மறை அனுமதியை நீக்க வேண்டும்.

REVOKE DELETE
வாடிக்கையாளர்கள் மீது
மேரி இருந்து

இந்த கட்டளை சாதகமான அனுமதியை அகற்றுவதற்கு பயன்படும் அதே போலவே நீங்கள் கவனிக்க வேண்டும். DENY மற்றும் GRANT ஆகிய இரண்டும் இதேபோன்ற பாணியில் இரு வேலைகளையும் கட்டளையிட வேண்டும் என்பதை நினைவில் கொள்ளவும், அவை தரவுத்தள அணுகல் கட்டுப்பாட்டு நுட்பத்தில் அனுமதிகள் (நேர்மறை அல்லது எதிர்மறையானவை) உருவாக்குகின்றன. REVOKE கட்டளை குறிப்பிட்ட பயனருக்கு அனைத்து நேர்மறை மற்றும் எதிர்மறை அனுமதியை நீக்குகிறது. இந்த கட்டளை வெளியிடப்பட்டவுடன், மேரி அந்த அனுமதி வைத்திருக்கும் பாத்திரத்தில் உறுப்பினராக இருந்தால், அட்டவணையில் இருந்து வரிசைகளை நீக்க முடியும். மாற்றாக, தனது கணக்கிற்கு நேரடியாக அனுமதி வழங்குவதற்கு GRANT கட்டளை வழங்கப்படும்.

இந்த கட்டுரையின் படி முழுவதும், நீங்கள் நிலையான வினவல் மொழி ஆதரவு அணுகல் கட்டுப்பாட்டு வழிமுறைகள் பற்றி ஒரு நல்ல ஒப்பந்தம் கற்று. இந்த அறிமுகம் ஒரு நல்ல தொடக்க புள்ளியாக உங்களுக்கு வழங்கப்பட வேண்டும், ஆனால் உங்கள் கணினி ஆதரவுடன் மேம்பட்ட பாதுகாப்பு நடவடிக்கைகளை அறிய உங்கள் DBMS ஆவணங்கள் குறித்து நீங்கள் ஊக்குவிக்கிறேன். பல தரவுத்தளங்கள் குறிப்பிட்ட நெடுவரிசையில் அனுமதிகள் வழங்குவதைப் போன்ற கூடுதல் மேம்பட்ட அணுகல் கட்டுப்பாட்டு வழிமுறைகளை ஆதரிக்கின்றன.