GRANT, REVOKE மற்றும் டெனி டேட்டாபேஸ் அனுமதிகள்
தரவுக் கட்டுப்பாட்டு மொழி (டி.சி.எல்) என்பது கட்டமைக்கப்பட்ட வினவல் மொழி (SQL) இன் துணைக்குழு ஆகும். தரவுத்தள நிர்வாகிகள் தொடர்புடைய தரவுத்தளங்களுக்கான பாதுகாப்பு அணுகலை கட்டமைக்க அனுமதிக்கிறது. தரவுத்தள பொருள்களை சேர்க்க மற்றும் நீக்க பயன்படும் தரவு வரையறை மொழி (DDL), மற்றும் ஒரு தரவுத்தளத்தின் உள்ளடக்கங்களை மீட்டெடுக்க, செருக மற்றும் மாற்ற பயன்படும் தரவு கையாளுலார் மொழி (DML).
டி.சி.எல் என்பது SQL உட்பிரிவின் எளிய அம்சமாகும், இது மூன்று கட்டளைகள் மட்டுமே: GRANT, REVOKE, மற்றும் DENY. ஒருங்கிணைந்த, இந்த மூன்று கட்டளைகள் மிகவும் நெகிழ்திறன் முறையில் தரவுத்தள அனுமதியை அமைக்க மற்றும் நீக்க நெகிழ்வுத்திறனை கொண்ட நிர்வாகிகளை வழங்குகிறது.
GRANT கட்டளை மூலம் அனுமதிகள் சேர்த்தல்
GRANT கட்டளை தரவுத்தள பயனாளருக்கு புதிய அனுமதிகளை சேர்க்க நிர்வாகிகளால் பயன்படுத்தப்படுகிறது. இது மிகவும் எளிமையான தொடரியல் உள்ளது, பின்வருமாறு வரையறுக்கப்படுகிறது:
GRANT [விருப்பம்] [பொருள்] மீது [பயனர்] [GRANT OPTION உடன்]இந்த கட்டளையுடன் வழங்கக்கூடிய அளவுருக்கள் ஒவ்வொன்றிலும் தீர்வறிக்கை இருக்கிறது:
- பிரத்தியேக ALL (பலவித அனுமதிப்பத்திரங்களை வழங்க) அல்லது ஒரு குறிப்பிட்ட தரவுத்தள அனுமதிப்பத்திரம் அல்லது அனுமதிப்பத்திரங்கள் ஆகியவற்றில் முக்கியமாக இருக்கலாம். எடுத்துக்காட்டுகள் CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE மற்றும் CREATE VIEW ஆகியவை அடங்கும்.
- பொருள் எந்த தரவுத்தள பொருள் இருக்க முடியும். செல்லுபடியாகும் சலுகை விருப்பங்கள் இந்த பிரிவில் நீங்கள் அடங்கும் தரவுத்தள பொருளின் வகையைப் பொறுத்து மாறுபடும். பொதுவாக, பொருள் ஒரு தரவுத்தளம், செயல்பாடு, சேமித்த செயல்முறை , அட்டவணை அல்லது பார்வை ஆகும்.
- பயனர் எந்த தரவுத்தள பயனர் இருக்க முடியும். நீங்கள் பங்கு அடிப்படையிலான தரவுத்தள பாதுகாப்பைப் பயன்படுத்த விரும்பினால், இந்த விவகாரத்தில் பயனருக்கு பாத்திரத்தை நீங்கள் மாற்ற முடியும்.
- GRANT கட்டளையின் முடிவில் GRANT விருப்பத்தேர்வை விருப்பத்துடன் சேர்த்துக் கொண்டால், குறிப்பிட்ட பயனரால் SQL அறிக்கையில் வரையறுக்கப்பட்ட அனுமதிகள் வழங்கப்படாமல், அதே தரவுத்தள பயனாளர்களுக்கு மற்ற அனுமதியளிக்கும் பயனர்களுக்கு வழங்குவதற்கான திறனைக் கொடுக்கும். இந்த காரணத்திற்காக, இந்த விதியை கவனத்துடன் பயன்படுத்தவும்.
எடுத்துக்காட்டுக்கு, நீங்கள் பயனர் ஜோ எனப்படும் HR என்ற ஒரு தரவுத்தளத்தில் ஊழியர்களின் அட்டவணையில் இருந்து தகவலை மீட்டெடுப்பதற்கான திறனை வழங்க விரும்புகிறீர்கள் எனக் கொள்வோம். நீங்கள் பின்வரும் SQL கட்டளையைப் பயன்படுத்தலாம்:
ஜோ HR. ஊழியர்களுக்கு ஜோஜோ இப்போது ஊழியர்களின் அட்டவணையில் இருந்து தகவலை மீட்டெடுக்க திறனைக் கொண்டிருக்கும். இருப்பினும், GRANT அறிக்கையில் உள்ள GRANT விருப்பம் பிரிவை நீங்கள் சேர்க்கவில்லை என்பதால், அந்த அட்டவணையில் இருந்து தகவலை மீட்டெடுக்க மற்ற பயனர்களுக்கு அவர் அனுமதிக்க முடியாது.
தரவுத்தள அணுகல் விலக்குதல்
REVOKE கட்டளையானது முன்னர் அத்தகைய அணுகலை வழங்கிய பயனரின் தரவுத்தள அணுகலை அகற்றுவதற்காக பயன்படுத்தப்படுகிறது. இந்த கட்டளையின் தொடரியல் பின்வருமாறு வரையறுக்கப்படுகிறது:
[பயனர்] [CASCADE] [பொருள்] மீது [அனுமதி] [அனுமதி]] [REPORT]இங்கே REVOKE கட்டளையின் அளவுருக்கள் மீது தீர்வறிக்கை:
- அனுமதி அடையாளம் பயனர் இருந்து நீக்க தரவுத்தள அனுமதிகள் குறிப்பிடுகிறது. இந்தக் கட்டளை முன்னர் அங்கீகாரம் பெற்ற அனுமதிக்காக உருவாக்கப்பட்ட GRANT மற்றும் DENY இரண்டையும் ரத்து செய்தது.
- பொருள் எந்த தரவுத்தள பொருள் இருக்க முடியும். செல்லுபடியாகும் சலுகை விருப்பங்கள் இந்த பிரிவில் நீங்கள் அடங்கும் தரவுத்தள பொருளின் வகையைப் பொறுத்து மாறுபடும். பொதுவாக, பொருள் ஒரு தரவுத்தளம், செயல்பாடு, சேமித்த செயல்முறை, அட்டவணை அல்லது பார்வை ஆகும்.
- பயனர் எந்த தரவுத்தள பயனர் இருக்க முடியும். நீங்கள் பங்கு அடிப்படையிலான தரவுத்தள பாதுகாப்பைப் பயன்படுத்த விரும்பினால், இந்த விவகாரத்தில் பயனருக்கு பாத்திரத்தை நீங்கள் மாற்ற முடியும்.
- மற்ற பயனர்களுக்கு குறிப்பிட்ட அனுமதியை வழங்குவதற்கான குறிப்பிட்ட பயனரின் திறனை க்ராஸ் க்ராண்ட் அனுமதிக்கிறது. குறிப்பு : நீங்கள் REVOKE அறிக்கையில் உள்ள இடைவெளிக்கு GRANT OPTION சேர்க்கப்பட்டால், முதன்மை அனுமதி ரத்து செய்யப்படாது. இந்த நிபந்தனை வழங்கல் திறனைத் திரும்பப்பெறுகிறது.
- CASCADE விருப்பம் குறிப்பிட்ட பயனரால் அனுமதி வழங்கப்பட்ட எந்த பயனரிடமிருந்து குறிப்பிட்ட அனுமதி ரத்து செய்யப்பட்டது.
உதாரணமாக, பின்வரும் முன்முயற்சியில் ஜோ வழங்கப்பட்ட அனுமதியை கீழ்க்கண்ட கட்டளை ரத்து செய்கிறது:
ஜோ இருந்து HR. ஊழியர்களுக்கான REVOKE தேர்வுதரவுத்தள அணுகலை வெளிப்படையாக மறுக்கிறார்
ஒரு குறிப்பிட்ட அனுமதியை பெறும் பயனரைத் தடுக்க DENY கட்டளை பயன்படுத்தப்படுகிறது. ஒரு பயனர் ஒரு அனுமதிப்பத்திரத்தை வழங்கிய ஒரு பங்காளியின் உறுப்பினராக இருக்கும்போது, இது பயனளிக்கும், மேலும் தனிப்பட்ட பயனரை அனுமதிப்பதன் மூலம் அனுமதிப்பதை அனுமதிக்க வேண்டும். இந்த கட்டளைக்கு தொடரியல் பின்வருமாறு உள்ளது:
[பயனர்] இல் [பொருள்] மீது DENY [அனுமதி] DENY கட்டளையின் அளவுருக்கள் GRANT கட்டளையைப் பயன்படுத்துவதற்கு ஒத்ததாக உள்ளன.
உதாரணமாக, ஊழியர்களின் அட்டவணையில் இருந்து தகவலை நீக்க மத்தேயு ஒருபோதும் ஒருபோதும் பெற மாட்டேன் என்று நீங்கள் விரும்பினால், பின்வரும் கட்டளையை வழங்கவும்: