GRANT, REVOKE మరియు DENY డేటాబేస్ అనుమతులు
డేటా కంట్రోల్ లాంగ్వేజ్ (DCL) స్ట్రక్చర్డ్ క్వరీ లాంగ్వేజ్ (SQL) యొక్క ఉపసమితి మరియు డేటాబేస్ నిర్వాహకులు రిలేషనల్ డేటాబేస్లకు భద్రతా యాక్సెస్ను కాన్ఫిగర్ చేయడానికి అనుమతిస్తుంది. డేటాబేస్ ఆబ్జెక్ట్లను జోడించడానికి మరియు తొలగించడానికి ఉపయోగించే డేటా డెఫినిషన్ లాంగ్వేజ్ (DDL) ని పూర్తి చేస్తుంది, డేటాబేస్ యొక్క కంటెంట్లను తిరిగి, ఇన్సర్ట్ మరియు సవరించడానికి ఉపయోగించే డేటా మానిప్యులేషన్ లాంగ్వేజ్ (DML).
DCL అనేది SQL ఉపశాఖల యొక్క సరళమైనది, ఎందుకంటే దీనిలో మూడు ఆదేశాలు మాత్రమే ఉంటాయి: GRANT, REVOKE, మరియు DENY. కంబైన్డ్, ఈ మూడు ఆదేశాలు డాటాబేస్ అనుమతులను చాలా పొడి రూపంలో సెట్ చేసి తీసివేయడానికి వశ్యతతో నిర్వాహకులను అందిస్తాయి.
GRANT కమాండ్ తో అనుమతులు జోడించడం
GRANT ఆదేశం ఒక డేటాబేస్ వినియోగదారుకు కొత్త అనుమతులను చేర్చడానికి నిర్వాహకులచే ఉపయోగించబడుతుంది. ఇది చాలా సులభమైన వాక్యనిర్మాణం కలిగి ఉంది, ఈ క్రింది విధంగా నిర్వచించబడింది:
GRANT [ఆధిక్యం] [వస్తువు] కు [యూజర్] [GRANT OPTION తో]ఇక్కడ ఈ కమాండుతో మీరు అందించే ప్రతి పారామితులపై తక్కువైనది:
- ప్రివిలేజ్ ALL (పలు రకాల అనుమతులను మంజూరు చేయడానికి) లేదా నిర్దిష్ట డేటాబేస్ అనుమతి లేదా అనుమతుల సమితి వంటివి కావచ్చు. ఉదాహరణలలో CREAT DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE మరియు వీక్షణను సృష్టించండి.
- ఆబ్జెక్ట్ ఏ డేటాబేస్ వస్తువు అయినా కావచ్చు. మీరు ఈ నిబంధనలో చేర్చిన డేటాబేస్ వస్తువు యొక్క రకమైన ఆధారంగా చెల్లుబాటు అయ్యే అధికార ఎంపికలు ఉంటాయి. సాధారణంగా, వస్తువు ఒక డేటాబేస్, ఫంక్షన్, నిల్వ ప్రక్రియ , పట్టిక లేదా వీక్షణ గాని ఉంటుంది.
- యూజర్ ఏ డేటాబేస్ యూజర్ ఉంటుంది. మీరు పాత్ర ఆధారిత డేటాబేస్ సెక్యూరిటీ ఉపయోగించాలనుకుంటే మీరు ఈ నిబంధనలో వినియోగదారుకు పాత్రను ప్రత్యామ్నాయం చేయవచ్చు.
- మీరు GRANT ఆదేశం ముగింపులో GRANT OPTION నిబంధనతో ఐచ్ఛికాన్ని కలిగి ఉంటే, పేర్కొన్న వినియోగదారుని SQL స్టేట్మెంట్లో నిర్వచించిన అనుమతులను మాత్రమే మంజూరు చేయదు, కాని యూజర్ డేటాబేస్ వాడుకదారులకు ఆ అదే అనుమతులను మంజూరు చేయగల సామర్థ్యాన్ని కూడా ఇస్తుంది. ఈ కారణంగా, ఈ నిబంధనను జాగ్రత్తగా ఉపయోగించుకోండి.
ఉదాహరణకు, మీరు ఉద్యోగం పట్టిక నుండి సమాచారాన్ని తిరిగి పొందగల సామర్థ్యాన్ని వినియోగదారులకు కేటాయించాలని కోరుకుంటున్నారని భావించండి. మీరు క్రింది SQL కమాండ్ను ఉపయోగించవచ్చు:
జో HR. ఉద్యోగార్ధులను జోకు పంపండిజో ఇప్పుడు ఉద్యోగుల పట్టిక నుండి సమాచారాన్ని తిరిగి పొందగలుగుతారు. అయినప్పటికీ, GRANT స్టేట్మెంట్లో ఉన్న GRANT OPTION నిబంధనను మీరు చేర్చకపోవడం వలన అతను ఆ పట్టిక నుండి సమాచారాన్ని తిరిగి పొందేందుకు ఇతర వినియోగదారులకు అనుమతి ఇవ్వలేడు.
డేటాబేస్ ప్రాప్యతను రద్దు చేస్తోంది
రివోక్యు కమాండ్ గతంలో మంజూరు చేసిన యూజర్ నుండి డాటాబేస్ ప్రవేశాన్ని తొలగించటానికి ఉపయోగించబడుతుంది. ఈ ఆదేశం కొరకు వాక్యనిర్మాణం ఈ కింది విధంగా నిర్వచించబడింది:
[యూజర్] నుండి [వస్తువు] [వస్తువు] లో [అనుమతి] [అనుమతి] [రిమోట్]ఇక్కడ REVOKE కమాండ్ కోసం పారామితులపై తక్కువైనది:
- గుర్తింపు వినియోగదారు నుండి తొలగించడానికి డేటాబేస్ అనుమతులను నిర్దేశిస్తుంది. ఈ ఆదేశం గతంలో గుర్తింపు పొందిన అనుమతి కోసం చేసిన GRANT మరియు DENY రెండింటినీ రద్దు చేసింది.
- ఆబ్జెక్ట్ ఏ డేటాబేస్ వస్తువు అయినా కావచ్చు. మీరు ఈ నిబంధనలో చేర్చిన డేటాబేస్ వస్తువు యొక్క రకమైన ఆధారంగా చెల్లుబాటు అయ్యే అధికార ఎంపికలు ఉంటాయి. సాధారణంగా, వస్తువు ఒక డేటాబేస్, ఫంక్షన్, నిల్వ ప్రక్రియ, పట్టిక లేదా వీక్షణ గాని ఉంటుంది.
- యూజర్ ఏ డేటాబేస్ యూజర్ ఉంటుంది. మీరు పాత్ర ఆధారిత డేటాబేస్ సెక్యూరిటీ ఉపయోగించాలనుకుంటే మీరు ఈ నిబంధనలో వినియోగదారుకు పాత్రను ప్రత్యామ్నాయం చేయవచ్చు.
- నిబంధన కోసం GRANT OPTION పేర్కొన్న వినియోగదారు యొక్క ఇతర వినియోగదారులకు నిర్దిష్ట అనుమతిని మంజూరు చేయగల సామర్థ్యాన్ని తొలగిస్తుంది. గమనిక : మీరు REVOKE స్టేట్మెంట్లో నిబంధన కోసం GRANT OPTION ను చేర్చినట్లయితే, ప్రాధమిక అనుమతి రద్దు చేయబడదు . ఈ నిబంధన మాత్రమే మంజూరు సామర్థ్యాన్ని ఉపసంహరించుకుంటుంది.
- CASCADE ఐచ్చికము నిర్దిష్ట వినియోగదారుని ఆ అనుమతిని మంజూరు చేయబడిన ఏ వినియోగదారుల నుండి కూడా అనుమతిని రద్దుచేస్తుంది.
ఉదాహరణకు, కింది ఆదేశం మునుపటి ఉదాహరణలో జోకు ఇచ్చిన అనుమతిని ఉపసంహరించుకుంటుంది:
జో నుండి HR. ఉద్యోగార్ధులను ఎంచుకొని రిమోక్ చేయండిడేటాబేస్ ప్రాప్యతను ప్రత్యేకంగా తిరస్కరించడం
ఒక ప్రత్యేక అనుమతిని స్వీకరించడానికి వినియోగదారుని ప్రత్యేకంగా నిరోధించడానికి DENY ఆదేశం ఉపయోగపడుతుంది. అనుమతి పొందిన ఒక పాత్ర లేదా సమూహం యొక్క సభ్యుడిగా ఉన్నప్పుడు ఇది ఉపయోగకరంగా ఉంటుంది మరియు ఒక మినహాయింపును సృష్టించడం ద్వారా అనుమతిని వారసత్వంగా స్వీకరించడానికి మీరు వ్యక్తిగత వినియోగదారుని నిరోధించాలనుకుంటున్నారు. ఈ కమాండ్ కొరకు వాక్యనిర్మాణం ఈ కింది విధంగా ఉంటుంది:
DENY [అనుమతి] [వినియోగదారు] లో [వస్తువు] DENY కమాండ్ కొరకు పారామితులు GRANT కమాండ్ కొరకు వాడే వాటికి సమానంగా ఉంటాయి.
ఉదాహరణకు, మాథ్యూ ఉద్యోగుల పట్టిక నుండి సమాచారాన్ని తొలగించే సామర్థ్యాన్ని ఎప్పటికీ పొందలేదని మీరు కోరుకుంటే, కింది ఆదేశాన్ని జారీచేయండి: