دسترسی دادن به کاربر NT Authority/Network Service روی یک پوشه
می خواستم در SQLServer یک job بنویسم که از دیتابیس مستقیما روی یک پوشه روی شبکه backup بگیرد. و نمی دانستم باید به چه کاربرانی روی آن پوشه دسترسی بدهم تا این روند قابل اجرا باشد.
وقتی job را اجرا می کنید در history آن (که از طریق right-click -> View History قابل دسترسی است) می بینید که این job با چه کاربری اجرا شده است. اگر کاربر خاصی برای این job خاص مشخص نکرده باشید با همان کاربری اجرا می شود که کل SQL Server Agent اجرا می شود که این کاربر هم موقع نصب SQL Server تعیین شده است. دقت کنید که برای هر Step از یک job می توان تعیین کرد که با چه کاربری اجرا شود:
(step properties -> Advanced -> Run as user)
در مورد من کل agent با کاربر Nt Authority\Network Service اجرا می شد. حالا سوال اینجاست که چطور به این کاربر باید روی پوشه مورد نظر دسترسی داد؟
از آنجایی که این کاربر (و همین طور کاربر System) جزو کاربران Built-in هر سیستمی هستند شما باید در واقع به سیستم مربوطه دسترسی دهید. یعنی مثلا اگر SQLServer شما روی سروری به نام Server1 اجرا می شود و شما می خواهید نسخه های پشتیبان خود را روی پوشه ای روی Server2 بریزید باید روی پوشه right-click کنید
properties -> security -> Edit -> Add
در قسمت object types کامپیوترها را هم انتخاب کنید. حالا Server1 را جستجو کنید و به ان دسترسی modify یا هر چیز مناسب دیگر بدهید.
دو کاربر System و Network System مربوط به Server1 به پوشه شما دسترسی خواهند داشت. دقت کنید که فقط همین دو کاربر دسترسی خواهند داشت و نه حتی local Administrator