הצטרפו לקבוצות שלנו לקבלת עדכונים מרוכזים פעם בשבוע:

ווטסאפ:
http://wa.dwh.co.il
טלגרם:
http://telegram.dwh.co.il

חיוב להשתמש באוביקט להרשאות

More
18 years 6 months ago #1247 by jannat
בוקר טוב,

יש לי שאלה, אם תוכלו לעזור.... ???

כל דוח חייב לעבור את מערכת ההרשאות, וכל משתמש מאופשר לפי סיווגו לראות חלק מהנתונים. (BO5 , DB2)

נבנתה טבלת הרשאות בה יש את השדות: שם_משתמש, סיווג_משתמש

עמ"נ שההרשאה תבואנה לידי ביטוי, בניתי אובייקט "BO משתמש"
אשר בשליפתו יוצר JOIN לטבלת הרשאות ומפלטר את השדה "שם _משתמש" לפי שם היוזר שנכנס לדוח המוגדר לי ב varebale גלובאלי.

>> כיצד אוכל לחייב את המשתמש להשתמש באובייקט זה "BO משתמש"?
>> כיצד אוכל למנוע מהמשתמש להסיר את האוביקט בדוח מוכן ?

תודה רבה.

Please התחברות to join the conversation.

More
18 years 6 months ago #1248 by Me
את לא מחייבת אותו להשתמש באוביקט את פותרת ברמת העולם!
כל אוביקט מתוך טבלת הנתונים שלך מתבסס על שתי טבלאות טבלאת הנתונים וטבלת ההרשאות וע"י כך נוצר לך החיתוך

Please התחברות to join the conversation.

More
18 years 6 months ago #1250 by תמיר
זאת דרך אחת שיכולה להיות קצת כבדה משום שזה דורש להכנס לכל אחד מהאובייקטים ולשנות את הTables. אחרי שנה ייתחלף דיזיינר וקצת יהיה קשה לו להבין למה הSQL מתנהג בצורה זאת.

דרך אלטרנטיבית שיכולה להיות טובה. היא ליצור view (או טעינה) של שתי הטבלאות ולהשתמש בview בעולם במקום הטבלאות המקוריות.

תמיר

Please התחברות to join the conversation.

More
18 years 6 months ago #1251 by jannat
ME- תודה רבה, אבל כיוון שמדובר במס' עולמות שבכל עולם קיימים למעלה מ50 אובייקטים זה לא נראה לי ישים.

תמיר- לא הבנתי איך הveiw יפתור לי את הבעיה, הרי אני אצטרך עדיין להפעיל מנגון הרשאות על היוזר, דהיינו לפלטר את הView לפי השם משתמש.
אם תוכל להרחיב יותר.

תודה מראש.
ענת.

Please התחברות to join the conversation.

More
18 years 6 months ago #1252 by תמיר
את המנגנון של הTable, את מכירה ואת אומרת שזה לא פרקטי בגלל כמות האובייקטים.

אין בBO מנגנון דומה על טבלה וכדי לבצע את המגבלה על טבלה שלמה, יש ליצור view. לדוגמא: אם יש לך טבלה A וטבלת הרשאות B, ואת רוצה שכל פעם שמישהו יגע בטבלת A זה יבצע לו אוטומטית join לטבלה B, אין דרך לבצע זאת על כל הטבלה באופן גורף.

לכן:

יש לעשות view המחבר בין שתי הטבלאות כך שבכל מקרה שמשתמשים בטבלת A יתבצע join לB ובview זה משתמשים בעולם.

תמיר

Please התחברות to join the conversation.

More
18 years 6 months ago #1253 by Me
בחייאת תמיר התוצאה של ה SQL תהייה אותו דבר
מה זה משנה אם זה ב VIEW הביצועים אותו דבר
ביידיש אומרים דה זלבה זאך (או דה זלבה דרק )

ולשאלה
נניח שיש לי טבלת מכירות וטבלת משתמשים
מכירות  לפי אזור
צפון 1000
דרום 2000
מרכז 5600

טבלת הרשאות
שם משתמש BO
שם אזור מותר

תמיר -צפון
יואב - דרום
משה -מרכז

יש JOIN בין שם אזור בטבלת מכירות לשם אזור בטבלת הרשאות
פה הייתי לוקח את העצה של תמיר ובונה VIEW וחושף מטבלת הרשאות את שם המשתמש בלבד
מטבלת מכירות בוחר *
על ה VIEW הייתי עושה self join
שדה אזור = @variable(BOUSER)
וכעת המשתמש תמיד כאשר יבחר אוביקט מהטבלה יתבצע לו החיתוך ע"פ שם המשתמש
אל תשכחי לא צריך לשנות את האוביקטים אלא RENAME לטבלה

חלופות לפתרון ששוה לבדוק זה CONNECTION  MAPPING
וכן הרשאות ברמת ROW RESTRICTION

אני בטוח שיואב כבר שם כמה מאמרים בנושא

תמיר חולה עלייך

Please התחברות to join the conversation.

More
18 years 6 months ago #1255 by תמיר
תמיר חולה על מי?

בכל מקרה, ברור שהSQL יהיה אותו דבר (חסר לו שלא), הView הוא לצרכי הרשאות בלבד!

Please התחברות to join the conversation.

More
18 years 6 months ago #1257 by jannat
1. תודה לכולכם!! :)

2. ציינתי בהתחלה שמדובר בBO5, ונראה שהפתרון/הדוגמא מדוברת עבור BOXI

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

???

Please התחברות to join the conversation.

More
18 years 6 months ago #1258 by Me
אין קשר בין VIEW לאינדקס
האינדקס ימשיך לעבוד גם אם זה VIEW
ואת חותכת על שדה עם אינדקס

Please התחברות to join the conversation.

More
18 years 6 months ago #1260 by jannat
תודה רבה! עזרתם לי מאוד!  ;)

Please התחברות to join the conversation.

Moderators: Yoav
Time to create page: 0.360 seconds