Sql-Server
如何將 SQL 代理代理授予 MSSQL 2014 中的公共角色
我想在 MSSQL 2014 中將 SQL 代理代理授予 msdb 數據庫中的公共角色。
我有以下查詢,我希望它返回一些有效的輸出。
USE [msdb] SELECT sp.name AS proxyname FROM dbo.sysproxylogin spl JOIN sys.database_principals dp ON dp.sid = spl.sid JOIN sysproxies sp ON sp.proxy_id = spl.proxy_id WHERE principal_id = USER_ID('public');
在回答您的問題之前,我想提請您注意授予代理上的公共 Msdb 角色的權限。
在向代理上的安全主體授予權限時必須小心謹慎,**尤其是在向代理上的公共 Msdb 角色授予權限時。數據庫中的每個使用者都是公共角色的成員,因此當公共 Msdb 角色被授予對代理的訪問權限時,每個使用者都可以訪問代理。**您可以查詢 sysproxylogin 系統表以獲取與每個 SQL Server 代理代理帳戶關聯的 SQL Server 登錄列表。
您可以通過使用以下 TSQL 來實現這一點(假設您的代理已正確創建)。
USE msdb ; GO EXEC dbo.sp_grant_login_to_proxy @msdb_role = N'public', @proxy_name = N'Proxy Name' ; GO
有關使用的詳細
sp_grant_login_to_proxy
資訊。