ניהול הרשאות קריאה/כתיבה בסיסי תחת חלונות XP

‏ • 6 בספטמבר, 2006

מאמר זה ידון בנושא מתן הרשאות קריאה/כתיבה לקבצים ולספריות תחת מערכת ההפעלה חלונות XP תוך שימת דגש על נקודת המבט של המתכנת.
המאמר יוצא מנקודת הנחה כי על המחשב מותקן IIS 5.x וכי כבר מוגדר עליו אתר אינטרנט.

הבעייה

רבים מכם המתכנתים אשר עובדים עם בסיסי נתונים של אקסס ודאי נתקלתם בהודעת השגיאה הבאה:
[Microsoft][ODBC Microsoft Access Driver] Operation must use an updateable query.

כמו כן יכול להיות כי נתקלתם בבעיות כתיבה הקשורות לאובייקט FSO או לאובייקטים השונים של העלאת תמונות.
שגיאות אלו כולן נובעות מכך שאין הרשאת כתיבת (נכונה) לקובץ / תקייה בהם הינכם מנסים לבצע את פעולת השמירה/עדכון.

הפיתרון

כל אתר אינטרנט המוגדר תחת IIS פועל על שם משתמש מסויים שקיים במערכת ההפעלה.
כברירת המחדל בעת התקנת IIS, נוצר אתר ברירת מחדל וכן שם משתמש אשר עליו עובד האתר.
שם המשתמש הוא לרוב IUSR_ComputerName, אך יכול להיות כי בחרתם ליצור שם משתמש משלכם ולהריץ עליו את האתר.

כך או כך, במסגרת שם המשתמש שעליו עובד האתר, עובדים כל הסקריפטים הקיימים בתוכו.
עליכם לוודא כי לשם משתמש זה ישנן ההרשאות המתאימות לקבצים / תקיות אליהן הסקריפט שלכם מנסה לגשת.

התהליך



  1. הפעילו את האפשרות לערוך הרשאות עבור תקיות / קבצים:
    הכנסו ללוח הבקרה (Start => Control Panel), ביחרו ב – Folder Options (בתצוגה קלאסית), עברו ללשונית ה- View
    והסירו את הסימון מ- "Use simple file sharing (recommended)" (אחרון ברשימה)


  2. הריצו את ממשק הניהול של IIS לצורך מציאת שם המשתמש עליו עובד האתר.


  3. הכנסו למאפיינים של האתר




  4. ביחרו בלשונית "Directory Security" ולאחר מכן ב- "Edit"


  5. שם המשתמש עליו עובד האתר מצויין למעלה




  6. פיתחו חלון אקספלורר ונווטו לספרייה אליה ברצונכם לכתוב מידע.
    ספרייה זו יכול להיות לדוגמא ספריית ה DB המכילה את בסיס הנתונים שלכם
    או ספריית Pictures אשר אליה הסקריפט שלכם מנסה להעלות קבצים.


  7. הקליקו על הכפתור הימני והכנסו למאפיינים שלה.




  8. בחרו את לשונית ה- "Security"


  9. כעת תראו רשימה של כל המשתמשים / קבוצות להם יש הרשאות כלשהן על התקייה הזו.
    אם שם המשתמש שמצאתם בסעיף 5 קיים ברשימה, ודאו כי יש לו הרשאת כתיבה / שינוי:

    • הקליקו על שם המשתמש.
    • וודאו שהתיבות Modify, Read&Execute, List Folder Contents, Read , Write כולן מסומנות (תחת Allow)

    אם שם המשתמש אינו קיים, ליחצו על "Add", ובחלון שיפתח רישמו את שם המשתמש, ליחצו "OK" ואז תנו לו את ההרשאות המתאימות
    כפי שצויין לעיל.




  10. באופן ברירת המחדל, ההרשאה שנתתם בסעיף הקודם תחול על כל התקיות/הקבצים אשר נמצאים בתוך תקיית האב לה
    הגדרתם כעת את ההרשאות, והסקריפט שלכם אמור כעת להיות מסוגל לכתוב לתוך תקייה זו או
    להריץ שאילתות INSERT,UPDATE,DELETE על בסיס הנתונים הקיים בתקייה זו או בכל תקיה פנימית אחרת.


  11. לעיתים, הקבצים / התקיות הפנימיות לא יקבלו את ההרשאה שהגדרתם לתקיית האב, מכיוון שהגדרתם לתקייה פנימית לעבוד באופן
    עצמאי מבחינת הרשאות או מסיבות אחרות. במצב כזה תצטרכו להחיל את ההגדרות "בכח" על הקבצים והתקיות הפנימיים:

    • ביחרו Advanced
    • בתחתית החלון שיפתח ביחרו "Replace permission entries on all child ….", ליחצו "OK" ובחלון שיפתח ביחרו "Yes"


    בהצלחה!

    המאמר נכתב ע"י אלון שכטר

    תגיות: , , , ,

    תגובות בפייסבוק