Sql-Server

授予執行 SQL Server 作業的權限

  • July 26, 2019

我在我的 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以允許人們開始工作。

當然,您也可以將作業的內容放在一個過程中,並授予執行該過程的權限。這將允許更多互動,例如顯示結果文本。

引用自:https://dba.stackexchange.com/questions/10449