Don Asked: 2023-10-13 01:36:11 +0800 CST2023-10-13 01:36:11 +0800 CST 2023-10-13 01:36:11 +0800 CST 具有 SQLAgentUserRole 的开发人员仅具有查看访问权限 772 我有一位开发人员需要能够在 SQL Server 代理中创建作业。它们是安全组 SQLDA 的一部分,我在 msdb 中授予了该组 SQLAgentUserRole。他们仍然只能查看访问权限。我是否还需要在 msdb 中授予他们 db_datawriter 以便他们能够创建工作? 运行 SQLServer 2019。权限通过 Active Directory 组进行管理。 sql-server 1 个回答 Voted Best Answer Dan Co 2023-10-20T19:37:24+08:002023-10-20T19:37:24+08:00 如果正确映射,您的开发人员 Windows 组帐户可以创建/修改/删除具有SQLAgentUserRole. 您不需要添加db_datawriter数据库角色。 要创建作业,用户必须是 SQL Server 代理固定数据库角色或 sysadmin 固定服务器角色之一的成员。作业只能由其所有者或 sysadmin 角色的成员编辑。关联 下面使用 SQL 身份验证的示例sp_add_job代码(适用于 Windows 身份验证): /* map the user correctly*/ USE [msdb] GO CREATE USER [dev] FOR LOGIN [dev] GO USE [msdb] GO ALTER ROLE [SQLAgentUserRole] ADD MEMBER [dev] GO USE msdb; GO EXECUTE AS LOGIN = 'dev'; EXEC dbo.sp_add_job @job_name = N'NightlyBackups'; GO REVERT; GO
如果正确映射,您的开发人员 Windows 组帐户可以创建/修改/删除具有
SQLAgentUserRole
. 您不需要添加db_datawriter
数据库角色。下面使用 SQL 身份验证的示例sp_add_job代码(适用于 Windows 身份验证):