Как узнать, какой пользователь хранимой процедуры SQL обращается к сетевым ресурсам? - PullRequest
2 голосов
/ 30 июля 2010

Меня попросили выяснить причину сбоя программы.Я проследил это к хранимой процедуре SQL.Программа передает имя файла, который st.Proc.предположительно пытается прочитать.

Однако сервер SQL возвращает ошибку, указывающую, что он не может получить доступ к файлу, потому что доступ запрещен.

В строке подключения указано Integrated Security=SSPI;.Я точно знаю, что учетная запись, в которую я вошел для запуска программы, имеет доступ к файлу.

Как я могу точно узнать, какую учетную запись пользователя использует SQL-сервер для доступа к файлу?

Ответы [ 3 ]

3 голосов
/ 30 июля 2010

Windows Process Monitor - хорошее место для начала. http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

Из интереса, что за версия SQL, мы говорим о CLR или просто о чем-то другом?

0 голосов
/ 30 июля 2010

Вы можете посмотреть на эту статью . Пользователь USER_NAME для получения имени пользователя SQL для вошедшего в систему пользователя.

Однако, похоже, что проблема может быть в разрешениях с ФАЙЛОМ, а не с БД. Вы должны убедиться, что соответствующие разрешения установлены для файлов и каталогов, а также для БД.

0 голосов
/ 30 июля 2010

Будет использоваться учетная запись службы SQL Server для доступа к файловой системе.

...