我正在尝试使用sp_send_dbmail
带有附件的 SQL Server 存储过程发送电子邮件,
我的帐户没有sysadmin
权限,当以普通 SQL Server 用户身份发送附件时,我收到此错误
无法模拟客户端连接安全上下文。附加文件需要集成客户端登录
有没有办法在不使用sysadmin
权限的情况下发送带有附件的 SQL Server 电子邮件?
我正在尝试使用sp_send_dbmail
带有附件的 SQL Server 存储过程发送电子邮件,
我的帐户没有sysadmin
权限,当以普通 SQL Server 用户身份发送附件时,我收到此错误
无法模拟客户端连接安全上下文。附加文件需要集成客户端登录
有没有办法在不使用sysadmin
权限的情况下发送带有附件的 SQL Server 电子邮件?
好吧,如果您查看 sp_send_dbmail 的 MSDN 文档,它会说:
数据库邮件使用当前用户的 Microsoft Windows 安全上下文来控制对文件的访问。因此,通过 SQL Server 身份验证进行身份验证的用户无法使用 @file_attachments 附加文件。Windows 不允许 SQL Server 从远程计算机向另一台远程计算机提供凭据。因此,如果从运行 SQL Server 的计算机以外的计算机运行命令,则数据库邮件可能无法从网络共享附加文件。
因此,很明显,您必须使用Windows 身份验证(Integrated Security=SSPI;
在您的连接字符串中)连接到 SQL Server,才能将文件附加到电子邮件。
这样问题就解决了,你只需要给sql用户提供sysadmin权限,
命令:sp_addsrvrolemember 'User', 'sysadmin'