|
вызов msdb.dbo.sp_send_dbmail под фикс. логином
|
|||
---|---|---|---|
#18+
Здравствуйте! Подскажите, в чем может быть причина отказа вызова msdb.dbo.sp_send_dbmail в хранимой процедуре (обертке) с конструкцией WITH EXECUTE AS 'Domen\User1'? У нас дано: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
Этот Скрипт работает. Письмо получено . Мне надо дать права на отправку писем для других пользователей. Для этого в процедуре обертке ставлю WITH EXECUTE AS ALTER PROCEDURE [dbo].[user_send_mail]...... WITH EXECUTE AS 'Domen\User1' И после этого , под ЛЮБЫМ пользователем (и админом тоже) получаю: Код: sql 1.
В чем может быть причина отказа? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 11:56 |
|
вызов msdb.dbo.sp_send_dbmail под фикс. логином
|
|||
---|---|---|---|
#18+
Вероятно потому, что у Domen\User1 нет прав на запуск sp_send_dbmail ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 12:44 |
|
вызов msdb.dbo.sp_send_dbmail под фикс. логином
|
|||
---|---|---|---|
#18+
KRS544, Код: sql 1. 2.
Результат без изменений. Или это не те права? И по прежнему каких-то прав не хватает? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 13:10 |
|
вызов msdb.dbo.sp_send_dbmail под фикс. логином
|
|||
---|---|---|---|
#18+
Александр М., Предложение with execute as процедуры это уровень базы данных а не сервера. Применяя такую конструкцию вы пойдете в msdb под учеткой гостя а не domain\user. Легче всего в тпком случае использовать цифровую подпись процедуры чтобы прокинуть права на запуск Ну или если хотите дырок в безопасности то сделайте базу trustworthy. Логин также должен быть отмаплен в мсдб, у владельца вашей бд должно быть право authenticate ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 13:11 |
|
вызов msdb.dbo.sp_send_dbmail под фикс. логином
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5.
а так ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 13:14 |
|
вызов msdb.dbo.sp_send_dbmail под фикс. логином
|
|||
---|---|---|---|
#18+
И уберите WITH EXECUTE AS 'Domen\User1' в процедуре, уже не нужно И да, trustworthy ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 13:15 |
|
вызов msdb.dbo.sp_send_dbmail под фикс. логином
|
|||
---|---|---|---|
#18+
Александр М., справку же читать - для слабаков. Поищите DatabaseMailUserRole. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 13:24 |
|
вызов msdb.dbo.sp_send_dbmail под фикс. логином
|
|||
---|---|---|---|
#18+
felix_ff Предложение with execute as процедуры это уровень базы данных а не сервера. Применяя такую конструкцию вы пойдете в msdb под учеткой гостя а не domain\user. Т.е. БЕЗ with execute as процедуры в msdb попадаю под логином domain\user1 и тогда у меня все работает. А с этой включенной опцией уже как гость? В процедуре обертке никак не получится использовать отдельно? Код: sql 1. 2. 3.
Гляну в этом направлении. Если не получится , буду читать про " цифровую подпись процедуры чтобы прокинуть права на запуск " ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 13:55 |
|
вызов msdb.dbo.sp_send_dbmail под фикс. логином
|
|||
---|---|---|---|
#18+
KRS544 а так Увы , нет ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 14:13 |
|
вызов msdb.dbo.sp_send_dbmail под фикс. логином
|
|||
---|---|---|---|
#18+
Александр М., EXECUTE AS login = [domain\user1] ..... REVERT для такого у вас должно выполняться три условия: у учетки которая исполняет данную инструкцию должно быть право impersonate на логин что бы выйти из контекста базы у вас должно для вашей базы быть установлено trustworthy что бы войти в базу в измененном контексте дополнительно должно у владельца вашей БД должно быть право authenticate на целевую базу или если целевой базой является master то authenticate server ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 15:05 |
|
вызов msdb.dbo.sp_send_dbmail под фикс. логином
|
|||
---|---|---|---|
#18+
felix_ff Легче всего в таком случае использовать цифровую подпись процедуры чтобы прокинуть права на запуск СПАСИБО!!! А когда знаешь направление поиска, остальное уже легко. Решение взято отсюда . Вопрос закрыт. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2020, 19:06 |
|
|
start [/forum/topic.php?fid=46&fpage=71&tid=1686570]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 337ms |
total: | 456ms |
0 / 0 |