Sql-Server
授予執行 SQL Server 作業的權限
我在我的 MSSQL 伺服器 2005 上有一份工作,我想允許任何數據庫使用者執行。
我不擔心安全性,因為工作實際工作的輸入來自數據庫表。只是執行作業,而不向該表添加記錄將無濟於事。
我只是找不到如何授予該工作的公共權限。
有沒有辦法做到這一點?在這一點上我唯一能想到的就是讓工作不斷地執行(或按計劃),但因為它只需要很少做任何實際的工作(可能每幾個月一次)而且我確實希望這項工作是一旦存在就完成,這似乎不是最佳解決方案。
您可以創建一個執行該作業的儲存過程。您可以使用
with execute as owner
以數據庫所有者身份執行儲存過程。這樣,使用者自己就不需要sp_start_job
.create procedure dbo.DoYourJob with execute as owner as exec sp_start_job @job_name = 'YourJob'
授予執行權限
DoYourJob
以允許人們開始工作。當然,您也可以將作業的內容放在一個過程中,並授予執行該過程的權限。這將允許更多互動,例如顯示結果文本。