Разрешение на выполнение для SP_SEND_MAIL не работает? - PullRequest
0 голосов
/ 07 сентября 2018

Я смиренно прошу вашего руководства по этому вопросу.

Я пытаюсь выполнить хранимую процедуру из SQL SERVER. Я использовал его в приложении VB.NET.

При использовании логина "SA" в строке подключения я могу без проблем выполнить код, но если нет ... Я получаю эту ошибку

The EXECUTE permission was denied on the object 'sp_send_dbmail', database 'msdb', schema 'dbo'.

Итак, я искал на этом сайте и на других сайтах, указывая на добавление разрешений для учетной записи, с которой команда не выполняется, к DatabaseMailUserRole.

Я думаю, что сделал это, не используя этот метод хотя

Вот скриншоты того, что я сделал.

enter image description here предоставлено исполнение

enter image description here

enter image description here

Ниже приведена команда, которую я хотел бы запустить в хранимой процедуре.

                    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'

Пожалуйста, скажите мне, если вам нужна более подробная информация о моей работе

EDIT:

Имя пользователя, которому я хотел бы предоставить доступ, - FF

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Итак, скажите, пожалуйста, что я сделал неправильно или что ..

Сначала я прочитал это 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 имеет свои последствия? Пожалуйста, обратите внимание, что это просто проект внутренней сети.

0 голосов
/ 07 сентября 2018

Если это работает для sa, я вижу только проблему с разрешениями.Попробуйте добавить такие же разрешения для пользователя sa для пользователя msdb.Я добавляю скриншот для справки.

enter image description here

Здесь я выделил необходимые разрешения желтым цветом.

Для любого пользователя убедитесь, что msdb имеет server roles public & sysadmin и User Mapping также выбрано для таблицы msdb, из которой вы пытаетесь выполнить хранимую процедуру.

...