powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / xpsql.c: Error 1314 from LogonUser on line 476
3 сообщений из 3, страница 1 из 1
xpsql.c: Error 1314 from LogonUser on line 476
    #32011607
Надежда
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне необходимо средствами SQL-сервера сделать выборку из некоторого .dbf-файла, но он может быть занят другим пользователем.
Не так давно учасниками данного форума был предложен текст программы на Делфи, которая проверяет файл на "занятость" другим пользователем.
Я немного реорганизовала данную программу и вызываю ее из пользовательского приложения через SP при помощи процедуры xp_cmdshell
Вот текст SP

CREATE PROCEDURE Prov_na_Zanyatost @Path_File varchar(100) AS
DECLARE @REZ varchar(1)
SET @Path_File = 'D:\MSSQL7\DTS\SostFile.exe ' + @Path_File
exec @REZ = master..xp_cmdshell @Path_File, no_output
select "return" = @rez

Здесь @Path_File - путь к .dbf-файлу;
SostFile.exe - программа проверяющая состояние .dbf-файла
Процедура возвращает таблицу (других значений мое приложение не воспринимает) содержащую одно поле и одну строку: 0 - файл свободен, 1 - занят
При обращении к данной процедуре от имени SA - все проходит нормально

Любой другой пользователь получает сообщение:

Msg50001, Level1, State 50001
xpsql.c: Error 1314 from LogonUser on line 476
далее следует таблица - результат выполнения процедуры, содержащая не зависимо от состояния .dbf-файла всегда 1

Что бы это значило? Как решить такую проблему?
...
Рейтинг: 0 / 0
xpsql.c: Error 1314 from LogonUser on line 476
    #32011612
Fompro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если Вы обращаетесь к файлу средствами SQL Server'a, то почему бы признак не писать в таблицу на нём же? Что касается Вашего вопроса, то:
When xp_cmdshell is invoked by a user who is a member of the sysadmin fixed server role, xp_cmdshell will be executed under the security context in which the SQL Server service is running. When the user is not a member of the sysadmin group , xp_cmdshell will impersonate the SQL Server Agent proxy account, which is specified using xp_sqlagent_proxy_account . If the proxy account is not available, xp_cmdshell will fail. This is true only for Microsoft? Windows NT? 4.0 and Windows 2000. On Windows 9.x, there is no impersonation and xp_cmdshell is always executed under the security context of the Windows 9.x user who started SQL Server.
...
Рейтинг: 0 / 0
xpsql.c: Error 1314 from LogonUser on line 476
    #32011661
Надежда
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что это за процедура такая xp_sqlagent_proxy_account
в хелпе по SQL серверу ничего подобного не встречается...
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / xpsql.c: Error 1314 from LogonUser on line 476
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]