Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql SP_发送邮件的执行权限不工作?_Sql_Sql Server_Sp Send Dbmail - Fatal编程技术网

Sql SP_发送邮件的执行权限不工作?

Sql SP_发送邮件的执行权限不工作?,sql,sql-server,sp-send-dbmail,Sql,Sql Server,Sp Send Dbmail,关于这件事,我诚恳地请求你的指导 我正在尝试从SQL SERVER执行存储过程。我在VB.NET应用程序中使用了它 当在连接字符串中使用“SA”登录时,我可以毫无问题地执行代码,但如果不是。。。我收到这个错误 The EXECUTE permission was denied on the object 'sp_send_dbmail', database 'msdb', schema 'dbo'. 因此,我在这个站点和其他站点中搜索,指出要向命令未执行的帐户添加权限,即DatabaseMai

关于这件事,我诚恳地请求你的指导

我正在尝试从SQL SERVER执行存储过程。我在VB.NET应用程序中使用了它

当在连接字符串中使用“SA”登录时,我可以毫无问题地执行代码,但如果不是。。。我收到这个错误

The EXECUTE permission was denied on the object 'sp_send_dbmail', database 'msdb', schema 'dbo'.
因此,我在这个站点和其他站点中搜索,指出要向命令未执行的帐户添加权限,即DatabaseMailUserRole

我想我已经做到了,但没有用这个

以下是我所做事情的截图

准予执行

下面是我希望在存储过程中运行的命令

                    exec msdb.dbo.sp_send_dbmail 
                    @profile_name = 'SendSQLMail', 
                    @recipients = 'test@gmail.com', 
                    @blind_copy_recipients ='test2@gmail.com',
                    @subject = 'TESTS', 
                    @body =  "A SOMETHING",
                    @execute_query_database = '[FF]',
                    @body_format = 'text'
如果你需要更多关于我工作的细节,请告诉我

编辑:


我想授予访问权限的用户名是FF

,如果它为
sa
工作,我看到的唯一问题是权限。尝试将
sa
用户的相同权限添加到
msdb
的用户中。我正在添加截图以供参考

这里我用黄色突出显示了所需的权限


对于任何用户,请确保
msdb
具有
服务器角色
公共
&
系统管理员
,并且还为试图从中执行存储过程的
msdb
表选择了
用户映射

如果它为
sa
工作,我看到的唯一问题是权限。尝试将
sa
用户的相同权限添加到
msdb
的用户中。我正在添加截图以供参考

这里我用黄色突出显示了所需的权限


对于任何用户,请确保
msdb
具有
服务器角色
公共
&
系统管理员
,并且
用户映射
也被选择用于
msdb
表,您正试图从该表执行存储过程。

因此,请告诉我我所做的是错误的还是错误的

首先我读了这个

我得到了这段代码并试图运行它,什么也没有发生,嗯,发生了错误

那么最常见的解决方案是:

EXEC msdb.dbo.sp_addrolemember @rolename = 'DatabaseMailUserRole'
    ,@membername = 'ff';
GO
也不起作用

但是当我使用

ALTER DATABASE <mydatabase> SET TRUSTWORTHY ON
ALTER数据库集可信

它工作得很好。。。但是,将数据库设置为可信是否会产生后果?请注意,这只是一个内部网络项目。

所以,请告诉我我所做的是错误的还是

首先我读了这个

我得到了这段代码并试图运行它,什么也没有发生,嗯,发生了错误

那么最常见的解决方案是:

EXEC msdb.dbo.sp_addrolemember @rolename = 'DatabaseMailUserRole'
    ,@membername = 'ff';
GO
也不起作用

但是当我使用

ALTER DATABASE <mydatabase> SET TRUSTWORTHY ON
ALTER数据库集可信

它工作得很好。。。但是,将数据库设置为可信是否会产生后果?请注意这只是一个内部网络项目。

@marc\u s我不知道。。。抱歉,我的意思是,使用SA测试sp_dbsendmail可以正常工作,但如果其他登录,则无法正常工作。@marc_s我不。。。抱歉,我的意思是,使用SA测试sp_dbsendmail可以正常工作,但如果其他登录名无法正常工作。我检查了,我也检查了DatabaseMailUserRole,但它仍然不工作我检查了,我也检查了DatabaseMailUserRole,但它仍然不工作