Sql-Server-2012
以下角色創建要求的命令應該是什麼?
我需要創建一個角色,分配的使用者只能訪問“AdventureWorksDB”,他將擁有對數據庫中所有表、視圖和儲存過程的執行權限。我編寫了以下腳本。
USE AdventureWorks2012; GO CREATE USER test1 FOR LOGIN test1; GO CREATE ROLE db_executor GRANT EXECUTE TO db_executor EXEC sp_addrolemember 'db_executor', 'test1'
但他還需要
SQLAgentOperatorRole
SQL 代理的權限。但是,如果我要授予此權限,我必須授予他訪問權限msdb
才能執行此操作。但是如果我給使用者,訪問 msdb 使用者也可以訪問其他數據庫。我該怎麼做才能讓使用者訪問只有一個數據庫廣告才能完全訪問 SQL 代理?
我不確定是否有任何其他選擇,但我相信使用者需要在 MSDB 中,或者應該具有管理員權限來執行或執行任何所需的作業操作。還有一個關於這個的連接項,SQL2005 SQLAgent MSDB 安全形色
或者您可以使用此處提到的選項:
您可以創建一個執行該作業的儲存過程。您可以使用 with
execute as owner
以數據庫所有者身份執行儲存過程。這樣,使用者自己就不需要 sp_start_job 的權限此外,如果可行,您可以閱讀Launching SQL Agent Job from stored procedure not on$$ msdb $$數據庫,或者,SET TRUSTWORTHY ON 的必要性有多大?