对象 'sp_sqlagent_update_agent_xps'、数据库 'msdb'、架构 'dbo' 的 EXECUTE 权限被拒绝。 [SQLSTATE 42000](错误 229)

The EXECUTE permission was denied on the object 'sp_sqlagent_update_agent_xps', database 'msdb', schema 'dbo'. [SQLSTATE 42000] (Error 229)

我已经安装了 SQL Server 2016 Express 版,还安装了 SSMS 18.4,现在我在重新启动 SQL Server Agent 服务时遇到问题。

我可以使用我的系统用户登录,但无法使用默认用户名登录,例如:dot (.) or (local) or sa 帐户。

我通过执行以下步骤设法解决了这个错误:

  1. 运行 Services.msc.
  2. 找到 SQL SERVER AGENT 服务并转到属性
  3. 将登录更改为本地帐户

现在,对于 SQL Managmento Studio,连接到您的银行服务器并执行以下步骤:

  1. 找到安全和服务器角色
  2. 单击系统管理员
  3. 添加您的登录用户(计算机名)(用户名)

我在 SQL Server 2017 开发人员版的本地实例上遇到了同样的问题。对我来说,解决方案是:

  • 转到services.msc

  • 找到SQLServer Agent服务,右击属性,点击登录 选项卡并记下 运行正在使用服务** 的用户。对我来说是
    Local System 帐户(默认)。退出对话框

  • 转到 SQL Server Management Studio,登录,打开安全节点, 打开登录,找到用户 运行ning 服务。在我的例子中
    用户是 [NT AUTHORITY\SYSTEM],它与上面的本地系统相关。 右击用户,属性,服务器角色,添加sysadmin priv和 保存。

  • 启动SQL代理

**我授予 sysadmin 的用户与登录 SSMS 的用户不同,它是设置为 运行 服务

的用户

检查你在SQLServer中是否有默认的帐号NT SERVICE\SQLSERVERAGENT 具有sysadmin权限,如果存在则不需要给启动服务的用户授予权限,否则你必须给谁的帐号授予sysadmin权限启动 SQLServer 代理服务。