שימוש באינדקסים באי שיוויונים

28/11/2013

ניצור שתי טבלאות לצורך בדיקה כיצד המערכת מנצל אותם כשיש אי שיוויונים ב-Where: If Object_ID('T1','U') Is Not Null Drop Table T1;Select *Into T1From sys.messages; Alter Table T1 Add Constraint PK_T1 Primary Key Clustered (message_id,language_id);Go If Object_ID('T2','U') Is Not Null Drop Table T2;Select *Into T2From sys.messages; Alter Table T2 Add Constraint PK_T2 Primary Key Clustered (language_id,message_id);Go כדאי לשים לב שיש בכל טבלה הרבה message_id ומעט Language_id, ולכן יצרתי שתי טבלאות – בראשונה message_id ראשון ובשניה language_id ראשון.נתחיל מהמקרה הפשוט –...
תגיות: , ,
אין תגובות

אופרטור Apply: בעקבות ההרצאה של אב"ג

25/11/2013

אמש פונקנו בהרצאה של איציק בן-גן במפגש של ה-User Group. מכיוון שאני עצמי מכיר די טוב את השימושים באופרטור Apply ואף פרסמתי כמה פוסטים עם כל מיני פטנטים, הייתי בטוח שאב"ג לא יחדש לי הרבה, ואוכל להתרכז בליהנות מהאירוע, מהקהל הרב שהתאסף, וכו'. כמובן שהופתעתי לטובה, אב"ג נתן דוגמאות שלא היכרתי, חידש לי לא מעט, ונתן תמורה נאה לכספנו..(ההשתתפות בחינם – למי שלא הבין את ההלצה)עד כה היכרתי את השימוש ב-Apply כדי לשלוף את n הראשונים מכל קבוצה, כשלתומי חשבתי שחוכמולגים כמוני משתמשים באפשרות זו, וההולכים בדרך הישר – ממספרים את השורות בעזרת Row_Number ומפלטרים על פיו.התוצאות של שתי...
אין תגובות

הרשאות חסר ויתר בהרצת קוד דינמי

14/11/2013

הפוסט הזה הוא בהמשך לקודם שסיכם את ההרצאה ב-ISUG. בין היתר הוצע שם פתרון לבעיית ההרשאות בפרוצדורות הכוללות קוד דינמי (שאינו מקבל בירושה את ההרשאה לפרוצדורה) בעזרת Execute As Owner או כל הרשאה אחרת שתאפשר את הקוד הדינמי. כמקובל בעולמנו – לפתרון הזה יש חסרונות משלו, למשל – המשתמש מאבד את זהותו וכעת המערכת תזהה אותו בתור dbo או מישהו אחר, וזה יאפשר לו להגיע למידע שהוא לא אמור היה להגיע אליו. דוגמה שתבהיר את הבעייה המקורית, את הפתרון, את הבעייה בפתרון, ואת הפתרון לבעייה בפתרון.. נתחיל מליצור Login ו-User מעוטי הרשאות להמחשה: --Mixed mode!Use tempdb;Go If Exists (Select...
אין תגובות

SQL דינאמי–הרצאה במפגש ISUG

05/11/2013

אצל רבים המונח SQL דינאמי מתקשר אוטומטית עם SQL Injection וכיצד ניתן לנצל זאת כדי "לדחוף" כל מיני תנאים לא צפויים שיאפשרו לשלוף מידע חסוי ואף לשנות מידע קיים. האזהרות כבודן במקומם, אך ל-SQL דינאמי יש יתרונות ושימושים רבים שכדאי להכיר, ולבעיות האבטחה יש פתרונות. נכון- גם לפתרונות קיימים מעקפים ומחבל זדוני ימצא תמיד פירצה דרכה ניתן להזיק, וזה נכון לא רק ל-SQL דינאמי אלא לכל מערכת שהיא. עד כאן ההתנצלויות לגבי "אבל יש סכנה של SQL Injection.." ומכאן למלאכה. נתחיל מ"איך" ולא מ"למה": יש שתי פונקציות עיקריות שמאפשרות לנו להריץ...
אין תגובות

SQL דינאמי–הרצאה במפגש ISUG, נובמבר 2013

אצל רבים המונח SQL דינאמי מתקשר אוטומטית עם SQL Injection וכיצד ניתן לנצל זאת כדי "לדחוף" כל מיני תנאים לא צפויים שיאפשרו לשלוף מידע חסוי ואף לשנות מידע קיים. האזהרות כבודן במקומם, אך ל-SQL דינאמי יש יתרונות ושימושים רבים שכדאי להכיר, ולבעיות האבטחה יש פתרונות. נכון- גם לפתרונות קיימים מעקפים ומחבל זדוני ימצא תמיד פירצה דרכה ניתן להזיק, וזה נכון לא רק ל-SQL דינאמי אלא לכל מערכת שהיא. עד כאן ההתנצלויות לגבי "אבל יש סכנה של SQL Injection.." ומכאן למלאכה. נתחיל מ"איך" ולא מ"למה": יש שתי פונקציות עיקריות שמאפשרות לנו להריץ...
2 תגובות