Impersonation: מי מפעיל את הפרוצדורה?

יום שישי, פברואר 17, 2012

פרוצדורות וסקריפטים אחרים כוללים אופציה לבצע אותם בזהות אחרת בעזרת אופציית Execute As, בעיקר בשל בעיית הרשאות. ננסה לראות איך זה נראה "מבפנים".. ניצור Login ולו User עם הרשאות חלקיות, בשעה שאנחנו (כלומר- אני, זה שמריץ את הקודים עם ה-Login וה-User שהוגדרו לי) עם הרשאות sa בשרת ו-dbo בדטבייס בו נעבוד (tempdb), ולמי שלא זוכר- Login הוא אובייקט ברמת השרת ואף הדומיין כולו, ו-User הוא אובייקט ברמת הדטבייס שמייצג בדרך כלל את ה-Login: Use tempdb; Go ...

Execute As & With Execute As

יום חמישי, ינואר 6, 2011

האופרטור Execute As מאפשר לבצע פעולות תחת זהות אחרת מזו שלנו, ללא צורך להתחבר בזהות אחרת, למשל- כדי לבצע בדיקות שהקוד שנכתב על ידי המפתח שיש לא הרשאות יחסית גבוהות יעבוד גם כשיופעל על ידי משתמש שהרשאותיו נמוכות, או לחילופין- להגדיר שקוד מסויים ירוץ בזהות גבוהה מזו של המשתמש. כמובן שבעל הרשאות נמוכות לא יכול להשתמש ב-Execute As כדי לאמץ לעצמו זהות של System Administartor.. דוגמה- ניצור Login חדש במערכת ו-User המשוייך לו: Use tempdb; Go   ...
אין תגובות

פקודת Truncate Table

יום שני, יולי 5, 2010

במערכת של אוראקל נדרשתי להפעיל פרוצדורה גנרית על טבלה שבניתי (הכוונה שהפרוצדורה מקבלת את שם הטבלה כפרמטר וכך אותה פרוצדורה יכולה לטפל בכל הטבלאות), אולם היא נכשלה מכיוון שלעמודת התאריך לא נתתי את השם הסטנדרטי שהפרוצדורה אמורה למצוא אלא את השם שציין הלקוח באפיון. לשנות את שם העמודה כעת עלול להוביל לתקלות ב-ERP שמעביר אליה וממנה נתונים ואולי גם בדוחות, וכדי לחסוך מעצמי את כל כאב הראש חשבתי להתחכם, ליצור View על הטבלה שבו השמות יהיו כנדרש, ולהפעיל את הפרוצדורה עליו: ניתן לבצע פקודות Select, Delete, Update, Insert על View כאשר הוא מוגדר כ-Select על טבלה ללא סיבוכים כמו Group...