יום חמישי, 17 במאי 2012

הגדרת פרמטר דינמי לפי הרשאות משתמש

שלום לכולם,

לאחרונה נשאלתי שאלה מעניינת... כיצד ניתן לבנות פרמטר ל- stored process שמציג ערכים דינמיים אבל בכפוף להרשאות של המשתמש. לדוגמה: משתמש א' יראה ברשימת הערכים של הפרמטר ערכים מסויימים ומשתמש ב' יראה באותה הרשימה ערכים אחרים.

ראשית, חשוב לציין שהבלוג הזה מתייחס אך ורק לערכים דינמיים עבור פרמטר של Stored Process. עבור Row Level Permissions באופן כללי יש לפעול לפי ההוראות באתר של SAS בכתובת: http://support.sas.com/documentation/cdl/en/birlpug/64020/HTML/default/viewer.htm#titlepage.htm

ובכן... לגבי השאלה. הפתרון הוא למעשה די פשוט. להלן הרעיון:

1. בנה טבלה עם ערכים חוקיים לכל משתמש
2. בנה view מעלה הטבלה שמציג לכל משתמש רק את הערכים החוקיים עבורו
3. רשום את ה- view או את הטבלה ב- SAS Metadata Server
4. הגדר Stored Process עם פרמטר דינמי שהערכים הדינמיים מגיעים מה- view של שלב 2
5. קשר את ה- Stored Process ל- Information Map
וזהו!

כל החוכמה היא לבנות את ה- view כך שיציג את הערכים החוקיים של המשתמש. להלן קוד לדוגמה:


כעת, יש לבנות Stored Process ולהגדיר לו פרמטר חדש מסוג מלל דינמי ולהפנות ל- VW_USERTREE

כאשר מוסיפים את ה- STP ל- Information Map ומפעילים ניתן לראות שהמשתמש isreyg רואה רק את הערך north ברשימת הערכים לפרמטר:



אייל גונן
מיה מחשבים

תגובה 1:

  1. לתשומת לב מי שמתכוון להשתמש ביכולת זו: זה עובד רק בגרסה SAS 9.3 ולא בגרסאות קודמות של SAS!

    השבמחק