Implementing
Application Roles
Eric Charran
mailto:echarran@swynk.com
מבוא
SQL
Server תומך במספר תכונות (features)
המאפשרות לקצר את זמן הפיתוח של מסד
הנתונים והאפליקציה. תפקידי
אפליקציות (application roles) הם אובייקטי
מסד נתונים של SQL Server המאפשרים
למפתחים ולמנהלי מסדי נתונים להקצות
הרשאות של SQL Server לאפליקציות במקום
לפרטיים. במקום מצב שבו הענקה, עדכון
והסרה של הרשאות עבור משתמשים, ניהול
האבטחה של משתמש היא פשוטה יותר
באמצעות היכולת להעניק הרשאות
וזכויות לאפליקצית מסד נתונים.
החשיבות
של תפקידי אפליקציות
ארגונים עסקיים זקוקים
לעיתים למגוון רחב של אפליקציות הן
בפונקציונליות והן במטרה על מנת
לתמוך בפעילויות יומיומיות של
הארגון. באופן דומה, ארגונים רבים
זקוקים לקבוצה קטנה או לאפליקציה
יחידה המבוססת בארכיטקטורה הדורשת
התפתחות בהתאם לגדילת הארגון. במקרים
רבים מסוג זה, ישנן מספר דרישות
פונקציונליות עליהן האפליקציה צריכה
לענות. כפועל יוצא מכך, יש לאפשר
תחזוקה נאותה של דרישות האבטחה במסד
הנתונים, בזמן שמעניקים לאפליקציה את
היכולת למחוק, להוסיף ולשנות עצמים
במסד הנתונים. במקרים רבים הנהלת
הארגון רוצה למנוע גישה ישירה
לטבלאות ולעצמים במסד הנתונים
מהמשתמשים. בו זמנית, ייתכן ואותם
המשתמשים יצטרכו לבצע פעולות שונות באובייקטים אלו דרך
אפליקציה.
הדרישה של ארגון לשלול
ממשתמשים גישה ישירה לנתונים דרך
תוכניות כמו מנתח השאילתות של SQL server
או Excel בזמן שמאפשרים לאותם משתמשים
לגשת לנתוני SQL server דרך אפליקציה
רצויה יכולה בצורה פשוטה וגמישה
להתמלא באמצעות מימוש תפקידי
אפליקציות. תפקידי אפליקציות
מאפשרים להגדיר דרישות אבטחה ידועות
מראש ולפעול בהתאם בזמן שהמשתמש
מפעיל אפליקציה והתקשרות עם מסד
הנתונים נדרשת. האפליקציה, באמצעות
התקשרות עם מסד הנתונים, מפעילה את
תפקיד האפליקציה שבאופן מיידי מבטל
את כל ההרשאות הקשורות עם המשתמש
המעיל את האפליקציה, ובכך מאפשר
לאפליקציה לתפקד ע"י הפרמטרים
שהוענקו לה בתפקיד האפליקציה.
שימוש בתפקידי
אפליקציות
תפקידי
אפליקציות קיימים כעצמי מסד נתונים
נפרדים ב – SQL Server . מנהלי מסד נתונים יוצרים תפקידי אפליקציות
ומשימים הרשאות באופן דומה להענקת הרשאות למשתמשים. לאחר שתפקיד האפליקציההוגדר,
מפתחי האפליקציה כותבים קוד על מנת להתחבר למסד הנתונים ולקרוא לפרוצדורה השמורה :
sp_setapprole . פרוצדורה
זו מקבלת שני פרמטרים המציינים את
שם תפקיד האפליקציה והסיסמה שלו.
מאפיינים בתפקידי
אפליקציות
1. מצב תפקידי אפליקציות
כברירת מחדל תפקידי אפליקציות אינם פעילים ועל מנת
להפעילם נדרשת אפליקציה קוראת שתפעיל את התפקיד באמצעות הפרוצדורה השמורה
sp_setapprole.
כמו
כן, תפקידי אפליקציות קיימים כעצמים
בלתי תלויים. במילים אחרות,משתמשים, קבוצות
משתמשים ותפקידים לא מתייחסים
לתפקידי האפליקציות.
2.
תהליך ההתקשרות עם תפקידי אפליקציות
כאשר
אפליקציה זקוקה להתקשרות עם מסד
נתונים, ההרשאות של המשתמש מאפשרות
את החיבור לשרת ולמסד הנתונים.
לכל
המשתמשים חייבות להיות ההרשאות
הנחוצות על מנת לגשת לשרת.
לאחר מכן, האפליקציה קוראת לפרוצדורה השמורה
sp_setapprole ומעבירה לה את שם
התפקיד והסיסמה (לעיתים מקודד). הפרוצדורה
מקבלת את הפרמטרים ומפעילה את תפקיד
האפליקציה המתאים.
לאחר ההפעלה, כל הרשאות המשתמשים מבוטלות .
האפליקציה מקבלת את כל היכולות הקשורות עם תפקיד האפליקציה.