Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 не прикрепляется к письму файл, который на другом ПК  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 582
Не могу отправить письмо с вложением файла, который лежит в сети:
не цепляется вложение
Сообщение 22051, уровень 16, состояние 1, строка 0
Attachment file \\10.0.2.114\c$\Letter\ATTACH\Temp\1.txt is invalid.


EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'email',
@recipients = '1@tank.ru',
@body = 'Test',
@subject = 'Test',
@file_attachments = '\\10.0.2.114\c$\Letter\ATTACH\Temp\1.txt';

файл есть. c машины, где работает служба sql server могу обратиться по указанному адресу.

но запрос,
DECLARE @result int

EXEC @result = master..xp_cmdshell 'DIR \\10.0.2.114\*.txt'


возвращает, что Вход в систему не произведен: имя пользователя или пароль не опознаны.
5 дек 16, 16:25    [19968916]     Ответить | Цитировать Сообщить модератору
 Re: не прикрепляется к письму файл, который на другом ПК  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 582
NewIvanovec,

sql server работает под учеткой доменного админа
5 дек 16, 16:33    [19968972]     Ответить | Цитировать Сообщить модератору
 Re: не прикрепляется к письму файл, который на другом ПК  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 942
Прям один в один.
http://www.sqlservercentral.com/Forums/Topic1346648-1526-2.aspx
TLTR: Доступ к папке на сервере должен быть у этого мистического "доменного админа".
5 дек 16, 16:43    [19969033]     Ответить | Цитировать Сообщить модератору
 Re: не прикрепляется к письму файл, который на другом ПК  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 942
М очень важный нюанс, выполнять такой аттач можно только из-под учетной записи сервера с привелегиями sysadmin.
Иначе не взлетит.
5 дек 16, 16:46    [19969046]     Ответить | Цитировать Сообщить модератору
 Re: не прикрепляется к письму файл, который на другом ПК  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
NewIvanovec
но запрос,
DECLARE @result int

EXEC @result = master..xp_cmdshell 'DIR \\10.0.2.114\*.txt'



возвращает, что Вход в систему не произведен: имя пользователя или пароль не опознаны.
А к сиквелу вы подключены как сисадмин или нет?
BOL
Когда ее вызывает пользователь, не являющийся членом предопределенной роли сервера sysadmin, процедура xp_cmdshell подключается к Windows с помощью имени учетной записи и пароля, которые хранятся в учетных данных с именем ##xp_cmdshell_proxy_account##. Если эти посреднические учетные данные не существуют, то процедура xp_cmdshell завершит выполнение с ошибкой.
5 дек 16, 17:10    [19969178]     Ответить | Цитировать Сообщить модератору
 Re: не прикрепляется к письму файл, который на другом ПК  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 582
Вношу изменения. sql server работает под учеткой LocalSystem.
Agent - под учеткой Network Service.

добавил запись посредник sp_xp_cmdshell_proxy_account.
в окне Managment studio от роли nt authority\система и учётке SA
exec master..xp_cmdshell 'dir "\\10.0.2.114\с$"'
запрос
возвращает Вход в систему не произведен: имя пользователя или пароль не опознаны.
в агенте, который работает под учеткой Network Service та же ошибка

К сообщению приложен файл. Размер - 17Kb
6 дек 16, 15:48    [19973116]     Ответить | Цитировать Сообщить модератору
 Re: не прикрепляется к письму файл, который на другом ПК  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 942
NewIvanovec
sql server работает под учеткой LocalSystem.


Чисто теоретизирую...

Может вам рассмотреть такой вариант:

Безопасность -> Учетные данные -> ##xp_cmdshell_proxy_account## - доменный пользователь <DOMAIN>\<USER>.

Для сетевой папки доступ на чтение для <DOMAIN>\<USER>.

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

Доступ на локальную папку для LocalSystem на чтение, полный доступ на локальную папку для <DOMAIN>\<USER>.

После отправки - удалить из локальной папки временные файлы.
6 дек 16, 19:34    [19973883]     Ответить | Цитировать Сообщить модератору
 Re: не прикрепляется к письму файл, который на другом ПК  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 582
Руслан Дамирович
NewIvanovec
sql server работает под учеткой LocalSystem.


Чисто теоретизирую...

Может вам рассмотреть такой вариант:

Безопасность -> Учетные данные -> ##xp_cmdshell_proxy_account## - доменный пользователь <DOMAIN>\<USER>.

Для сетевой папки доступ на чтение для <DOMAIN>\<USER>.

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

Доступ на локальную папку для LocalSystem на чтение, полный доступ на локальную папку для <DOMAIN>\<USER>.

После отправки - удалить из локальной папки временные файлы.


запустил сервер от учетки с правами доменного админа и проблема решилась.
Но не понятно то, что агент был запущен от этой же учетки и через агент письмо не отправлялось.

может, через какое-то время пойму почему так происходило.
Руслан Дамирович и alexeyvg большое спасибо
7 дек 16, 15:29    [19976780]     Ответить | Цитировать Сообщить модератору
 Re: не прикрепляется к письму файл, который на другом ПК  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
NewIvanovec
запустил сервер от учетки с правами доменного админа и проблема решилась.
Но не понятно то, что агент был запущен от этой же учетки и через агент письмо не отправлялось.
Вы же писали, что "Agent - под учеткой Network Service."
Ну и далее, xp_cmdshell выполняется либо под учёткой сиквела, либо под учёткой xp_cmdshell_proxy_account
А под учёткой агента она не будет выполняться (в смысле, это я всё про авторизацию "снаружи", для ОС).
7 дек 16, 22:28    [19978413]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить