我很谦虚地要求您提供有关此事的指导。
我正在尝试从SQL SERVER执行存储过程。我在VB.NET应用程序中使用了它。
在连接字符串中使用“ SA”登录名时,我可以执行代码,没问题,但是如果没有,我会收到此错误
The EXECUTE permission was denied on the object 'sp_send_dbmail', database 'msdb', schema 'dbo'.
因此,我在此站点和其他站点中进行了搜索,指出要向不执行命令的帐户添加权限到DatabaseMailUserRole。
我想我已经做到了,虽然没有使用这个method
这是我所做的操作的屏幕截图。
下面是我要在存储过程中运行的命令。
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
答案 0 :(得分:1)
所以,请告诉我我做错了还是什么。
首先我读了这个artice
GRANT EXECUTE ON object::sp_send_dbmail TO DatabaseMailUserRole
我得到了这段代码并试图运行它,什么都没发生,好吧,错误发生了。
然后是最常见的解决方案:
EXEC msdb.dbo.sp_addrolemember @rolename = 'DatabaseMailUserRole'
,@membername = 'ff';
GO
也不起作用...
但是当我使用
ALTER DATABASE <mydatabase> SET TRUSTWORTHY ON
工作正常...但是,将数据库设置为 TRUSTWORTHY 是否会产生后果?请注意,这只是一个内部网络项目。
答案 1 :(得分:0)