GRANT, REVOKE ಮತ್ತು DENY ಡೇಟಾಬೇಸ್ ಅನುಮತಿಗಳು
ಡೇಟಾ ಕಂಟ್ರೋಲ್ ಲ್ಯಾಂಗ್ವೇಜ್ (ಡಿಸಿಎಲ್) ಎಂಬುದು ರಚನಾತ್ಮಕ ಪ್ರಶ್ನೆ ಭಾಷೆ (SQL) ನ ಉಪವಿಭಾಗವಾಗಿದೆ ಮತ್ತು ಡೇಟಾಬೇಸ್ ನಿರ್ವಾಹಕರು ಸಂಬಂಧಿತ ಡೇಟಾಬೇಸ್ಗಳಿಗೆ ಭದ್ರತಾ ಪ್ರವೇಶವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ. ಡೇಟಾಬೇಸ್ ಆಬ್ಜೆಕ್ಟ್ಗಳನ್ನು ಸೇರಿಸಲು ಮತ್ತು ಅಳಿಸಲು ಬಳಸಲಾಗುವ ಡಾಟಾ ಡೆಫಿನಿಷನ್ ಲಾಂಗ್ವೇಜ್ (ಡಿಡಿಎಲ್) ಅನ್ನು ಅದು ಪೂರಕಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಡಾಟಾ ಮ್ಯಾನಿಪ್ಯುಲೇಶನ್ ಲಾಂಗ್ವೇಜ್ (ಡಿಎಂಎಲ್) ಡೇಟಾಬೇಸ್ನ ವಿಷಯಗಳನ್ನು ಹಿಂಪಡೆಯಲು, ಸೇರಿಸಲು ಮತ್ತು ಮಾರ್ಪಡಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ.
ಡಿಎಲ್ಎಲ್ ಕೇವಲ SQL ಆಜ್ಞೆಗಳಲ್ಲಿ ಸರಳವಾಗಿದೆ, ಏಕೆಂದರೆ ಅದು ಕೇವಲ ಮೂರು ಕಮಾಂಡ್ಗಳನ್ನು ಒಳಗೊಂಡಿದೆ: ಗ್ರ್ಯಾನ್ಟ್, ರೆವೊಕ್, ಮತ್ತು ಡನ್. ಸಂಯೋಜಿತವಾಗಿ, ಈ ಮೂರು ಆಜ್ಞೆಗಳನ್ನು ನಿರ್ವಾಹಕರು ಡೇಟಾಬೇಸ್ ಅನುಮತಿಗಳನ್ನು ಅತ್ಯಂತ ಹರಳಿನ ರೂಪದಲ್ಲಿ ಹೊಂದಿಸಲು ಮತ್ತು ತೆಗೆದುಹಾಕಲು ಹೊಂದಿಕೊಳ್ಳುವಿಕೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ.
GRANT ಆದೇಶದೊಂದಿಗೆ ಅನುಮತಿಗಳನ್ನು ಸೇರಿಸುವುದು
ಡೇಟಾಬೇಸ್ ಬಳಕೆದಾರರಿಗೆ ಹೊಸ ಅನುಮತಿಗಳನ್ನು ಸೇರಿಸಲು ನಿರ್ವಾಹಕರು GRANT ಆಜ್ಞೆಯನ್ನು ಬಳಸುತ್ತಾರೆ. ಇದು ಸರಳವಾದ ಸಿಂಟ್ಯಾಕ್ಸನ್ನು ಹೊಂದಿದೆ, ಈ ಕೆಳಗಿನಂತೆ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ:
GRANT [ಸವಲತ್ತು] ಆನ್ [ವಸ್ತು] ಗೆ [ಬಳಕೆದಾರ] [ಗ್ರಾಂಟ್ ಆಯ್ಕೆಗಳೊಂದಿಗೆ]ಈ ಆಜ್ಞೆಯೊಂದಿಗೆ ನೀವು ಪೂರೈಸುವ ಪ್ರತಿಯೊಂದು ನಿಯತಾಂಕಗಳಲ್ಲೂ ಓದಲು ಇಲ್ಲಿದೆ:
- ವಿಶೇಷತೆ ಎಎಲ್ಎಲ್ (ವಿವಿಧ ಅನುಮತಿಗಳನ್ನು ನೀಡಲು) ಅಥವಾ ನಿರ್ದಿಷ್ಟ ಡೇಟಾಬೇಸ್ ಅನುಮತಿ ಅಥವಾ ಅನುಮತಿಗಳ ಸೆಟ್ ಆಗಿರಬಹುದು. ಉದಾಹರಣೆಗಳು CREATE DATABASE, ಆಯ್ಕೆ, ಸೇರಿಸು, ನವೀಕರಿಸಿ, ಅಳಿಸಿ, ಅಳಿಸಿ ಮತ್ತು ವೀಕ್ಷಿಸಿ ರಚಿಸಿ.
- ವಸ್ತುವು ಯಾವುದೇ ಡೇಟಾಬೇಸ್ ಆಬ್ಜೆಕ್ಟ್ ಆಗಿರಬಹುದು. ಈ ಷರತ್ತುದಲ್ಲಿ ನೀವು ಒಳಗೊಂಡಿರುವ ಡೇಟಾಬೇಸ್ ವಸ್ತುವಿನ ಪ್ರಕಾರವನ್ನು ಆಧರಿಸಿ ಮಾನ್ಯವಾದ ಸವಲತ್ತು ಆಯ್ಕೆಗಳು ಬದಲಾಗುತ್ತವೆ. ವಿಶಿಷ್ಟವಾಗಿ, ವಸ್ತು ಡೇಟಾಬೇಸ್, ಕಾರ್ಯ, ಸಂಗ್ರಹವಾಗಿರುವ ಕಾರ್ಯವಿಧಾನ , ಟೇಬಲ್ ಅಥವಾ ವೀಕ್ಷಣೆಯಾಗಿರುತ್ತದೆ.
- ಬಳಕೆದಾರ ಯಾವುದೇ ಡೇಟಾಬೇಸ್ ಬಳಕೆದಾರ ಮಾಡಬಹುದು. ನೀವು ಪಾತ್ರ ಆಧಾರಿತ ದತ್ತಸಂಚಯದ ಭದ್ರತೆಯನ್ನು ಬಳಸಲು ಬಯಸಿದರೆ ಈ ಷರತ್ತಿನಲ್ಲಿ ಬಳಕೆದಾರರಿಗೆ ಪಾತ್ರವನ್ನು ಬದಲಿಸಬಹುದು.
- ನೀವು GRANT ಆಜ್ಞೆಯ ಕೊನೆಯಲ್ಲಿ ಐಚ್ಛಿಕವಾದ ಗ್ರಾಂಟ್ ಆಯ್ಕೆಯನ್ನು ಷರತ್ತುವನ್ನು ಸೇರಿಸಿದರೆ, ನಿಗದಿತ ಬಳಕೆದಾರರಿಗೆ SQL ಹೇಳಿಕೆಯಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಅನುಮತಿಗಳನ್ನು ಮಾತ್ರ ನೀಡಲಾಗುವುದಿಲ್ಲ ಆದರೆ ಬಳಕೆದಾರರಿಗೆ ಇತರ ಡೇಟಾಬೇಸ್ ಬಳಕೆದಾರರಿಗೆ ಅದೇ ಅನುಮತಿಗಳನ್ನು ನೀಡುವ ಸಾಮರ್ಥ್ಯವನ್ನು ನೀಡುತ್ತದೆ. ಈ ಕಾರಣಕ್ಕಾಗಿ, ಈ ಷರತ್ತನ್ನು ಆರೈಕೆಯೊಂದಿಗೆ ಬಳಸಿ.
ಉದಾಹರಣೆಗೆ, HR ಎಂಬ ದತ್ತಸಂಚಯದಲ್ಲಿ ನೌಕರರ ಟೇಬಲ್ನಿಂದ ಮಾಹಿತಿಯನ್ನು ಹಿಂಪಡೆಯುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಬಳಕೆದಾರ ಜೋಗೆ ನೀವು ನೀಡಲು ಬಯಸುವಿರಾ ಎಂದು ಊಹಿಸಿಕೊಳ್ಳಿ. ನೀವು ಕೆಳಗಿನ SQL ಆದೇಶವನ್ನು ಬಳಸಬಹುದು:
HR.mployees ಜೋಗೆ ಆಯ್ಕೆಮಾಡಿಕೊಳ್ಳಿಜೋ ಈಗ ನೌಕರರ ಟೇಬಲ್ನಿಂದ ಮಾಹಿತಿಯನ್ನು ಹಿಂಪಡೆಯುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿರುತ್ತಾರೆ. ಹೇಗಾದರೂ, ಅವರು ಆ ಟೇಬಲ್ನಿಂದ ಮಾಹಿತಿಯನ್ನು ಹಿಂಪಡೆಯಲು ಇತರ ಬಳಕೆದಾರರಿಗೆ ಅನುಮತಿ ನೀಡಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ ಏಕೆಂದರೆ ನೀವು GRANT ಹೇಳಿಕೆಯಲ್ಲಿ ಗ್ರಾಂಟ್ ಆಯ್ಕೆಯನ್ನು ಷರತ್ತು ಒಳಗೊಂಡಿಲ್ಲ.
ಡೇಟಾಬೇಸ್ ಪ್ರವೇಶವನ್ನು ರದ್ದುಪಡಿಸುವುದು
ಹಿಂದೆ ಅಂತಹ ಪ್ರವೇಶವನ್ನು ಪಡೆದ ಬಳಕೆದಾರರಿಂದ ಡೇಟಾಬೇಸ್ ಪ್ರವೇಶವನ್ನು ತೆಗೆದುಹಾಕಲು REVOKE ಆಜ್ಞೆಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಈ ಆದೇಶದ ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಈ ಕೆಳಗಿನಂತೆ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ:
[ಆಬ್ಜೆಕ್ಟ್] ಮೇಲೆ [ಬಳಕೆದಾರ] [ಬಳಕೆದಾರ] [ಕ್ಯಾಸ್ಕೇಡ್] ನಲ್ಲಿ [ಅನುಮತಿ] ರಿವಕ್ [ಗಾಗಿ ಆಯ್ಕೆಯ]REVOKE ಆಜ್ಞೆಯ ನಿಯತಾಂಕಗಳಲ್ಲಿ ಓದಲು ಬಿಟ್ಟುಬಿಡು:
- ಗುರುತಿಸಲಾದ ಬಳಕೆದಾರರಿಂದ ತೆಗೆದುಹಾಕಲು ಅನುಮತಿ ಡೇಟಾಬೇಸ್ ಅನುಮತಿಗಳನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಗುರುತಿನ ಅನುಮತಿಗಾಗಿ ಈ ಆದೇಶವು ಮೊದಲು GRANT ಮತ್ತು DENY ಸಮರ್ಥನೆಗಳನ್ನು ರದ್ದುಗೊಳಿಸುತ್ತದೆ.
- ವಸ್ತುವು ಯಾವುದೇ ಡೇಟಾಬೇಸ್ ಆಬ್ಜೆಕ್ಟ್ ಆಗಿರಬಹುದು. ಈ ಷರತ್ತುದಲ್ಲಿ ನೀವು ಒಳಗೊಂಡಿರುವ ಡೇಟಾಬೇಸ್ ವಸ್ತುವಿನ ಪ್ರಕಾರವನ್ನು ಆಧರಿಸಿ ಮಾನ್ಯವಾದ ಸವಲತ್ತು ಆಯ್ಕೆಗಳು ಬದಲಾಗುತ್ತವೆ. ವಿಶಿಷ್ಟವಾಗಿ, ವಸ್ತು ಡೇಟಾಬೇಸ್, ಕಾರ್ಯ, ಸಂಗ್ರಹವಾಗಿರುವ ಕಾರ್ಯವಿಧಾನ, ಟೇಬಲ್ ಅಥವಾ ವೀಕ್ಷಣೆಯಾಗಿರುತ್ತದೆ.
- ಬಳಕೆದಾರ ಯಾವುದೇ ಡೇಟಾಬೇಸ್ ಬಳಕೆದಾರ ಮಾಡಬಹುದು. ನೀವು ಪಾತ್ರ ಆಧಾರಿತ ದತ್ತಸಂಚಯದ ಭದ್ರತೆಯನ್ನು ಬಳಸಲು ಬಯಸಿದರೆ ಈ ಷರತ್ತಿನಲ್ಲಿ ಬಳಕೆದಾರರಿಗೆ ಪಾತ್ರವನ್ನು ಬದಲಿಸಬಹುದು.
- ನಿಗದಿತ ಅನುಮತಿಯನ್ನು ಇತರ ಬಳಕೆದಾರರಿಗೆ ನೀಡುವ ನಿಗದಿತ ಬಳಕೆದಾರರ ಸಾಮರ್ಥ್ಯವನ್ನು ಷರತ್ತುಗೆ ನೀಡುವ ಆಯ್ಕೆಯು ತೆಗೆದುಹಾಕುತ್ತದೆ. ಗಮನಿಸಿ : REVOKE ಹೇಳಿಕೆಯಲ್ಲಿ ಷರತ್ತುಗೆ ನೀವು GRANT ಆಯ್ಕೆಯನ್ನು ಸೇರಿಸಿದರೆ, ಪ್ರಾಥಮಿಕ ಅನುಮತಿಯನ್ನು ಹಿಂಪಡೆಯಲಾಗುವುದಿಲ್ಲ. ಈ ಷರತ್ತು ಮಾತ್ರ ನೀಡುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಮರುಪಡೆಯುತ್ತದೆ.
- CASCADE ಆಯ್ಕೆಯು ಯಾವುದೇ ಬಳಕೆದಾರರಿಂದ ನಿರ್ದಿಷ್ಟ ಅನುಮತಿಯನ್ನು ಮಂಜೂರು ಮಾಡಿದ ನಿರ್ದಿಷ್ಟ ಅನುಮತಿಯನ್ನು ಕೂಡ ರದ್ದುಗೊಳಿಸುತ್ತದೆ.
ಉದಾಹರಣೆಗೆ, ಈ ಹಿಂದಿನ ಆಜ್ಞೆಯು ಹಿಂದಿನ ಉದಾಹರಣೆಯಲ್ಲಿ ಜೋಗೆ ನೀಡಲಾದ ಅನುಮತಿಯನ್ನು ಹಿಂತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ:
ಜೋ ರಿಂದ HR. ಉದ್ಯೋಗಿಗಳನ್ನು ಆಯ್ಕೆ ರಿವೊಕ್ಡೇಟಾಬೇಸ್ ಪ್ರವೇಶವನ್ನು ಬಹಿರಂಗವಾಗಿ ನಿರಾಕರಿಸಲಾಗುತ್ತಿದೆ
ಒಂದು ನಿರ್ದಿಷ್ಟ ಅನುಮತಿಯನ್ನು ಸ್ವೀಕರಿಸದಂತೆ ಬಳಕೆದಾರರನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ತಡೆಯಲು ಡೆನ್ನಿ ಆಜ್ಞೆಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಒಂದು ಬಳಕೆದಾರನು ಅನುಮತಿ ನೀಡಲ್ಪಟ್ಟ ಒಂದು ಪಾತ್ರ ಅಥವಾ ಗುಂಪಿನ ಸದಸ್ಯನಾಗಿದ್ದಾಗ ಇದು ಸಹಾಯವಾಗುತ್ತದೆ, ಮತ್ತು ಆ ವಿನಂತಿಯನ್ನು ರಚಿಸುವುದರ ಮೂಲಕ ಆ ವ್ಯಕ್ತಿಯು ಅನುಮತಿಯನ್ನು ಆನುವಂಶಿಕವಾಗಿ ಪಡೆಯುವುದನ್ನು ತಡೆಗಟ್ಟಲು ನೀವು ಬಯಸುತ್ತೀರಿ. ಈ ಆಜ್ಞೆಯ ಸಿಂಟ್ಯಾಕ್ಸ್ ಹೀಗಿದೆ:
[ಬಳಕೆದಾರ] ಗೆ [ವಸ್ತು] ದಲ್ಲಿ [ಅನುಮತಿ] DENY ಕಮಾಂಡ್ನ ನಿಯತಾಂಕಗಳು GRANT ಕಮಾಂಡ್ಗೆ ಬಳಸಲಾದವುಗಳಿಗೆ ಹೋಲುತ್ತವೆ.
ಉದಾಹರಣೆಗೆ, ನೌಕರರ ಟೇಬಲ್ನಿಂದ ಮಾಹಿತಿಯನ್ನು ಅಳಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಮ್ಯಾಥ್ಯೂ ಸ್ವೀಕರಿಸುವುದಿಲ್ಲವೆಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ನೀವು ಬಯಸಿದಲ್ಲಿ, ಈ ಕೆಳಗಿನ ಆಜ್ಞೆಯನ್ನು ನೀಡಿ: