2017-08-24 38 views
0

我有一個SSIS。當我以用戶K的身份從Visual Studio運行它時,它運行正常。但是,當我以其他用戶A的身份運行它時,它宣稱能夠成功完成,但它什麼都不做(整個過程在一個通過特定目錄中的所有文件的foreach循環容器中)。然後,我嘗試將其作爲一項工作來運行,並且再次聲稱它會成功完成,但即使作業所有者是接近完全訪問的用戶,它也不會執行任何操作。如何檢查SSIS文件訪問權

問題是:如何知道哪些用戶權限用於在作業中執行SSIS?

+0

https://ask.sqlservercentral.com/questions/4428/how-do-i-capture -which-userid-ran-the-ssis-package.html –

+0

作爲一項工作運行時,它使用從SQL Server中看到的路徑。因此,如果您的路徑是D:\ MyPath,它將在VS中查看您的本地D驅動器,並在作爲作業運行時從SQL Server的角度查看D驅動器。你需要破解SSIS包的日誌並做更多的調查。 –

回答

1

通過編程,您可以訪問ssis系統變量UserName(System::UserName)。

您可以在腳本任務的FireInformation命令中使用它,然後用戶名將顯示在執行日誌中。

0

這肯定指向用戶K在系統上沒有所需的權限。

這種情況下的最佳做法是在加載數據的服務器上爲服務帳戶用戶提供系統管理員權限。首先使用相同的帳戶來創建憑證(安全 - >憑證),然後是可以訪問子系統 - SQL Server集成服務軟件包的代理帳戶(SQL Server Agent-> Proxies)。現在,在您創建的用於運行此程序包的SQL Server代理作業中,使用此代理帳戶運行作業。這樣做,任何人都可以通過SQL Server代理作業來訪問軟件包。

使用此鏈接作爲參考 - https://www.red-gate.com/simple-talk/sql/database-administration/setting-up-your-sql-server-agent-correctly/,檢查節 - 「創建SSIS包執行代理」

相關問題