הרצת Package של DTS מטריגר

natile

New member
הרצת Package של DTS מטריגר

שלום אני חדש בפורום . האם מישהו אולי יודע אם יש איזו שהיא להריץ package שנמצא ב-DTS מתוך טריגר של insert לטבלה ? ואם כן אפשר להעביר לו פרמטרים? תודה לכל מי שיודע
 
ניתן, אבל לא מומלץ

ניתן להריץ dts package באמצעות command line utility בשם DTSrun. מאחר ומדובר בcommand line utility ולא בפקודה פנימית של SQL Server, אז אתה חייב להוציא פקודה למערכת ההפעלה. הדרך להוציא פקודה למערכת ההפעלה היא באמצעות xp_cmdshell. הבעיה היא שxp_cmdshell רץ עם ההרשאות של הacount, שמריץ את הservice של הinstance של SQL Server. ההרשאות האלו חזקות מההרשאות של רוב מוחלט מהמשתמשים. אם נניח אני משתמש רגיל, שניתנה לו הרשאה לעבוד עם xp_cmdshell, ואין לי שום הרשאה על מערכת הקבצים, registry, ניהול משתמשים בשרת וכד', אז באמצעות xp_cmdshell אני יכול לבצע את הפעולות האלו (במיוחד כאשר מקנפגים את הaccount, של הservice כlocal admin). מאחר, אתה שם את הפקודה xp_cmdshell בתוך trigger, אז אתה חייב לתת הרשאות למשתמשים לעבוד עם xp_cmdshell, ולכן אתה חושף את השרת לפגיעה מצד המשתמשים. הערה נוספת - ניתן גם להתייחס לDTS Package כאל רכיב com ולהריץ אותה באמצעות מספר stored procedures ששמן מתחיל בsp_oa. בכל מקרה אותה בעיית אבטחה קיימת גם כאן. ניתן למצוא עוד פרטים על DTSrun, xp_cmdshell וsp_oa* בBOL
 
למעלה