Разрешение на выполнение для SP_SEND_MAIL не работает?
Я смиренно прошу вашего руководства по этому вопросу.
Я пытаюсь выполнить хранимую процедуру из 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
2 ответа
Итак, пожалуйста, скажите мне, что я сделал неправильно или что..
Сначала я прочитал эту статью
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 имеет свои последствия? Пожалуйста, обратите внимание, что это просто проект внутренней сети.
Если это работает для sa
Единственное, что я вижу, это разрешения. Попробуйте добавить те же разрешения для sa
пользователь для вашего пользователя для msdb
, Я добавляю скриншот для справки.
Здесь я выделил необходимые разрешения желтым цветом.
Для любого пользователя обязательно msdb
имеет server roles
public
& sysadmin
а также User Mapping
также выбран для msdb
таблица, из которой вы пытаетесь выполнить хранимую процедуру.