הרשאות

dror0548

New member
הרשאות

יש לי אפלקציה ב DOTNET שניגשת ל DB עם שם משתמש וסיסמא שהגדרתי ב DB עם הרשאות כתיבה עדכון וכו.(לאלפלקציה יש צורך כזה)
האלפלקציה מתחברת ל DB עם connectionstring הכל עובד תקין.

הבעיה שהמפתחים רואים את השם והסיסמא ב connectionstring ואז פותחים את SSMS עם השם והסיסמא שיש
להם ואז עושים שינויים ב DB לא דרך האפלקציה

איך אני מונע את זה ?
תודה
 

sinaiy

New member
אפשר לעטוף את הממשק

ניתן לעטוף את הממשק עם VIEWS ו STORED PROCEDURES עם DEFINER בעל הרשאות מתאימות וליצור משתמש חלש שיכול לעבוד רק מולם.
אפשרות שנייה זה בצד הקליינט לעטוף את המודול של החיבור ע"י מודול שאין לכל המפתחים גישה אליו
 
2 אפשרויות

אפשרות אחת היא לחסום גישה ממחשבי המפתחים לשרת הproduction באמצעות firewall. בצורה הזאת הם לא יכולים להיכנס עם SSMS לשרת.

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

pitoach

New member
הפתרון פשוט מאוד להתבסס על הרשאות מערכת

ההפעלה
כל אפליקציה מופעלת על ידי משתמש מסויים (אחד או יותר) ולכן ניתן לתת לו הרשאות מתאימות בלי להישתמש בכלל בססמה בקוד. המשתמש שמפעיל את האפליקציה למשל IUSER ב IIS מוגדר במסד הנתונים עם הרשאות המתאימות
משתמש מקומי (מפתח שרוצה להיכנס ל SSMS) לא יכול לדעת מה הססמה של המשתמש שמפעיל את האפליקציה ותיאורטית לא יכול להיכנס עם המשתמש של האפליקציה (יכול עם קצת מאמץ אם הוא מפתח כי אחרי הכל הוא יכול לעקוף כל דבר אם הוא יודע לפתח אבל זה לא פעולה טריוויאלית). הוא נאלץ להיכנס עם משתמש של עצמו שיש לו הרשאות מתאימות שאתה רוצה כמובן

* זהו פתרון מאוד נוח למשל אם אתה מנהל DC ומשתמשים. ניתן לקבוע הרשאות לקבוצות משתמשים ולא רק למשתמש בודד.
 
למעלה