מענק, לדחות הרשאות מסד נתונים DENY
שפת בקרת הנתונים (DCL) היא קבוצת משנה של שפת השאילתות המובנית (SQL) ומאפשרת למנהלי מסד נתונים להגדיר את גישת האבטחה למסדי נתונים יחסיים. היא משלימה את שפת Data Definition Language (DDL), המשמשת להוספה ולמחיקה של אובייקטי מסד נתונים, ואת Data Manipulation Language (DML) המשמשת לאחזור, הוספה ושינוי של תוכן מסד נתונים.
DCL היא הפשוטה ביותר של קבוצות המשנה , שכן היא מורכבת משלוש פקודות בלבד: GRANT, REVOKE, ו- DENY. משולבים, אלה שלוש פקודות לספק למנהלים את הגמישות להגדיר ולהסיר הרשאות מסד נתונים בצורה מפורטת ביותר.
הוספת הרשאות עם פקודה מענק
הפקודה GRANT משמשת את מנהלי המערכת להוספת הרשאות חדשות למשתמש מסד נתונים . יש לו תחביר פשוט מאוד, מוגדר כדלקמן:
מענק [זכות] על [אובייקט] ל- [משתמש] [עם אפשרות מענק]הנה סקירה על כל אחד מהפרמטרים שאתה יכול לספק עם פקודה זו:
- הרשאה יכולה להיות מילת המפתח ALL (כדי להעניק מגוון רחב של הרשאות) או הרשאת מסד נתונים ספציפית או קבוצה של הרשאות. דוגמאות כוללות CREATE DATABASE, SELECT, INSERT, UPDATE, DELETE, EXECUTE ו- CREATE VIEW.
- אובייקט יכול להיות כל אובייקט מסד נתונים. אפשרויות ההרשאה התקפות משתנות בהתאם לסוג אובייקט מסד הנתונים שתכלול בסעיף זה. בדרך כלל, האובייקט יהיה גם מסד נתונים, פונקציה, פרוצדורה מאוחסנת , טבלה או תצוגה.
- המשתמש יכול להיות כל משתמש באתר. כמו כן, באפשרותך להחליף תפקיד עבור המשתמש בסעיף זה אם ברצונך להשתמש באבטחת מסדי נתונים מבוססת תפקידים.
- אם תכלול את האופציה אופציונלית עם אופציה מענק בסוף פקודת המענק, לא רק תעניק למשתמש המוגדר את ההרשאות המוגדרות במשפט SQL, אלא גם תיתן למשתמש את היכולת להעניק את אותן הרשאות למשתמשים אחרים במסד הנתונים. מסיבה זו, השתמש בסעיף זה בזהירות.
לדוגמה, נניח שברצונך להעניק למשתמש ג'ו את היכולת לאחזר מידע מטבלת העובדים במסד נתונים הנקרא HR. באפשרותך להשתמש בפקודת SQL הבאה:
מענק בחר על HR.employees לג 'וג 'ו עכשיו יש את היכולת לאחזר מידע מהשולחן עובדים. עם זאת, הוא לא יוכל להעניק למשתמשים אחרים הרשאה לאחזר מידע מאותו טבלה, משום שלא הוספת את הסעיף אופציה עם מענק בהצהרה המענק.
ביטול גישה למסד הנתונים
הפקודה REVOKE משמשת להסרת גישת מסד נתונים ממשתמש שהוענק לו בעבר. התחביר עבור פקודה זו מוגדר כדלקמן:
ביטול [אפשרות מענק עבור] [אישור] ב [אובייקט] מ [משתמש] [CASCADE]הנה את rundown על הפרמטרים של הפקודה REVOKE:
- הרשאה מציינת את הרשאות מסד הנתונים להסרה מהמשתמש המזוהה. הפקודה מבטלת את הטענות GRANT ו- DENY שנעשו בעבר עבור ההיתר המזוהה.
- אובייקט יכול להיות כל אובייקט מסד נתונים. אפשרויות ההרשאה התקפות משתנות בהתאם לסוג אובייקט מסד הנתונים שתכלול בסעיף זה. בדרך כלל, האובייקט יהיה גם מסד נתונים, פונקציה, פרוצדורה מאוחסנת, טבלה או תצוגה.
- המשתמש יכול להיות כל משתמש באתר. כמו כן, באפשרותך להחליף תפקיד עבור המשתמש בסעיף זה אם ברצונך להשתמש באבטחת מסדי נתונים מבוססת תפקידים.
- הסעיף אפשרות בחירה עבור סעיף מסיר את היכולת של המשתמש שצוין להעניק את ההרשאה המפורטת למשתמשים אחרים. הערה : אם תכלול את הסעיף אפשרות בחירה עבור סעיף בהצהרה REVOKE, ההרשאה העיקרית לא תבוטל. סעיף זה משחרר רק את יכולת המענק.
- האפשרות CASCADE גם מבטלת את ההרשאה שצוינה מכל משתמש שהמשתמש שצוין קיבל את ההרשאה.
לדוגמה, הפקודה הבאה מבטלת את ההרשאה שניתנה לג'ו בדוגמה הקודמת:
סרב לבחור על HR.employees מ ג 'ובמפורש מונעת גישה למסד הנתונים
הפקודה DENY משמשת כדי למנוע במפורש ממשתמש לקבל הרשאה מסוימת. דבר זה מועיל כאשר משתמש הוא חבר בתפקיד או בקבוצה המוענקת להרשאה, וברצונך למנוע ממשתמש זה לירושה את ההרשאה על-ידי יצירת חריגה. התחביר עבור פקודה זו הוא כדלקמן:
DENY [הרשאה] על [Object] ל- [User] הפרמטרים עבור הפקודה DENY זהים לאלו המשמשים את הפקודה GRANT.
לדוגמה, אם ברצונכם להבטיח שמתיו לעולם לא יקבל את היכולת למחוק מידע מטבלת העובדים, הוציאו את הפקודה הבאה: