בקרת גישה למשתמשים ותפקידים ב- SQL

הכל יחסי מערכות ניהול מסדי נתונים לספק סוג של מנגנוני אבטחה מהותיים שנועדו למזער את האיומים של אובדן נתונים, השחתת נתונים או גניבת נתונים. הם נעים בין הגנת הסיסמאות הפשוטה שמציעה Microsoft Access למבנה המשתמש / תפקיד המורכב הנתמך על ידי מאגרי מידע מתקדמים כמו נבואה וSQL של ​​מיקרוסופט שרת. חלק ממנגנוני האבטחה משותפים לכל מסדי הנתונים המיישמים את ה-שפת שאילתות מובנית.

אבטחה ברמת המשתמש

מאגרי מידע מבוססי שרתים תומכים ב- מִשׁתַמֵשׁ מושג דומה לזה המשמש במערכות הפעלה ממוחשבות. אם אתה מכיר את ההיררכיה של המשתמש / הקבוצה שנמצאת ב Microsoft Windows NT ו- Windows 2000, תגלה שקבוצות המשתמשים / תפקידים הנתמכים על ידי SQL Server ו- Oracle דומים.

צור חשבונות משתמש בודדים של מסדי נתונים עבור כל אדם עם גישה למסד הנתונים שלך.

הימנע מהקצאת חשבונות כלליים הנגישים למספר אנשים שונים. ראשית, נוהג זה מבטל את האחריות האישית - אם משתמש מבצע שינוי במסד הנתונים שלך (נניח עד כאשר הוא מעניק לעצמו גיוס של 5,000 דולר), לא תוכל לאתר אותו לאדם ספציפי באמצעות ביקורת יומנים. שנית, אם משתמש ספציפי עוזב את הארגון שלך ואתה מעוניין להסיר את הגישה שלו ממסד הנתונים, עליך לשנות את הסיסמה שכל המשתמשים מסתמכים עליה.

instagram viewer
מפתח אתרים
אוסטפנקו אולנה/ Getty Images

השיטות ליצירת חשבונות משתמש משתנות מפלטפורמה לפלטפורמה ועליך לעיין בתיעוד הספציפי שלך ל- DBMS לקבלת ההליך המדויק. על משתמשי Microsoft SQL Server לחקור את השימוש ב- sp_adduser נוהל מאוחסן. מנהלי מסדי נתונים של Oracle ימצאו את צור משתמש פקודה שימושית. ייתכן שתרצה לחקור תוכניות אימות חלופיות. לדוגמה, Microsoft SQL Server תומך בשימוש באבטחה משולבת של Windows NT. על פי תוכנית זו, משתמשים מזוהים למסד הנתונים על ידי חשבונות המשתמש שלהם ב- Windows NT ואינם נדרשים להזין מזהה משתמש וסיסמה נוספים כדי לגשת למסד הנתונים. גישה זו פופולרית בקרב מנהלי מסדי נתונים מכיוון שהיא מסיטה את נטל החשבון ניהול לצוות הנהלת הרשת והוא מספק את הקלות בכניסה יחידה ל- משתמש קצה.

אבטחה ברמת התפקיד

אם אתה נמצא בסביבה עם מספר מועט של משתמשים, סביר להניח שתגלה כי יצירת חשבונות משתמש והקצאת הרשאות ישירות להם מספיקה לצרכיך. עם זאת, אם יש לך מספר רב של משתמשים, תהיה לך המום משמירה על חשבונות והרשאות מתאימות. כדי להקל על הנטל הזה, תמיכה במאגרי מידע יחסיים תפקידים. תפקידי מסד נתונים מתפקדים באופן דומה לקבוצות Windows NT. חשבונות משתמש מוקצים לתפקידים ואז הרשאות מוקצות לתפקיד בכללותו ולא לחשבונות המשתמש הבודדים. לדוגמה, תוכל ליצור תפקיד DBA ואז להוסיף לתפקיד זה את חשבונות המשתמש של הצוות הניהולי שלך. לאחר מכן, תוכל להקצות הרשאה ספציפית לכל המנהלים הנוכחיים (ובעתיד) על ידי הקצאת ההרשאה לתפקיד. שוב הנהלים ליצירת תפקידים משתנים מפלטפורמה לפלטפורמה. מנהלי MS SQL Server צריכים לחקור את sp_addrole הליך מאוחסן ואילו DBA של Oracle צריכים להשתמש ב- צור תפקיד תחביר.

הענקת אישורים

כעת לאחר שהוספנו משתמשים למסד הנתונים שלנו, הגיע הזמן להתחיל לחזק את האבטחה על ידי הוספת הרשאות. הצעד הראשון שלנו יהיה להעניק הרשאות מסד נתונים מתאימות למשתמשים שלנו. נשיג זאת באמצעות הצהרת SQL GRANT.

הנה התחביר של ההצהרה:

מענק. 
[עַל. 
ל. 
[עם אפשרות מענקים]

עכשיו, בואו נסתכל על הצהרה זו שורה אחר שורה. השורה הראשונה, מענק , מאפשר לנו לציין את הרשאות הטבלה הספציפיות שאנו מעניקים. אלה יכולים להיות הרשאות ברמת טבלה (כגון SELECT, INSERT, UPDATE ו- DELETE) או הרשאות מסד נתונים (כגון CREATE TABLE, ALTER DATABASE ו- GRANT). ניתן להעניק יותר מהרשאה אחת בהצהרת GRANT אחת, אך לא ניתן לשלב הרשאות ברמת טבלה והרשאות ברמת מסד נתונים בהצהרה אחת.

השורה השנייה, עַל

לבסוף, השורה הרביעית, עם אפשרות למענק, הוא אופציונלי. אם שורה זו כלולה בהצהרה, המשתמש המושפע רשאי גם להעניק את אותן ההרשאות למשתמשים אחרים. שים לב כי לא ניתן לציין את אפשרות הענקת WITH GRANT כאשר ההרשאות מוקצות לתפקיד.

דוגמאות מענקי מסד נתונים

בואו נסתכל על כמה דוגמאות. בתרחיש הראשון שלנו, שכרנו לאחרונה קבוצה של 42 מפעילי הזנת נתונים שיוסיפו וישמרו רשומות לקוחות. עליהם לגשת למידע בטבלת הלקוחות, לשנות מידע זה ולהוסיף רשומות חדשות לטבלה. הם לא אמורים להיות מסוגלים למחוק רשומה לחלוטין ממסד הנתונים.

ראשית, עלינו ליצור חשבונות משתמש עבור כל מפעיל ואז להוסיף את כולם לתפקיד חדש, הזנת נתונים. לאחר מכן, עלינו להשתמש בהצהרת SQL הבאה כדי להעניק להם את ההרשאות המתאימות:

בחירת מענקים, הוספה, עדכון. 
לקוחות ON. 
אל DataEntry. 

בואו נבחן מקרה בו אנו מקצים הרשאות ברמת מסד הנתונים. אנו רוצים לאפשר לחברי תפקיד ה- DBA להוסיף טבלאות חדשות למסד הנתונים שלנו. יתר על כן, אנו רוצים שהם יוכלו להעניק למשתמשים אחרים הרשאה לעשות את אותו הדבר. הנה משפט SQL:

שולחן ליצירת מענקים. 
ל- DBA. 
עם אפשרות למענק. 

שימו לב שכללנו את השורה WITH GRANT OPTION כדי להבטיח ש- DBA שלנו יוכלו להקצות הרשאה זו למשתמשים אחרים.

הסרת הרשאות

SQL כולל את הפקודה REVOKE להסרת הרשאות שהוענקו בעבר. הנה התחביר:

לבטל [אפשרות למענק עבור]
עַל. 
מ. 

תבחין כי התחביר של פקודה זו דומה לזה של פקודת GRANT. ההבדל היחיד הוא ש With GRANT OPTION מוגדר בשורת הפקודה REVOKE ולא בסוף הפקודה. לדוגמא, בואו נדמיין שאנחנו רוצים לבטל את הרשאתה של מרי בעבר להסיר רשומות ממאגר הלקוחות. נשתמש בפקודה הבאה:

בטל מחיקה. 
לקוחות ON. 
ממרי. 

יש מנגנון אחד נוסף הנתמך על ידי Microsoft SQL Server שכדאי להזכיר - הפקודה DENY. ניתן להשתמש בפקודה זו כדי לשלול במפורש הרשאה ממשתמש שיש לו בדרך אחרת באמצעות חברות בתפקיד הנוכחי או העתידי. הנה התחביר:

לְהַכּחִישׁ. 
עַל. 
ל. 
instagram story viewer