Лучший отвечающий
Особенности работы xp_fileexist на MS SQL Server 2005

Вопрос
-
Приветствую уважаемый Форум!
Имеется MS SQL Server 2005 EE, 9.0.3159 и возникла проблема с использованием xp_fileexist.
Хочется сразу отметить два момента:
1. Похоже, что теперь (в отличие от 2000), сия функция ПРАВИЛЬНО работает только из под роли sysadmin. Если же ее запустит пользователь, не имеющий счастья принадлежать к ней, то функция не выругается и не выдаст ошибку - она просто вернет результат, что файл не существует, хотя на самом деле он есть и права на него - Everyone full control.
2. Работа этой функции никак не связана с настройками прокси-аккаунта для xp_cmdshell. Есть аккаунт, нет аккаунта - результат одинаков, см выше.
Хочется знать, этот так и правильно, или я просто не все знаю?26 августа 2007 г. 20:15
Ответы
-
1. Да
2. Да
- Помечено в качестве ответа Nikita PanovModerator 29 мая 2009 г. 11:14
27 августа 2007 г. 6:26
Все ответы
-
1. Да
2. Да
- Помечено в качестве ответа Nikita PanovModerator 29 мая 2009 г. 11:14
27 августа 2007 г. 6:26 -
Andrey Kudievskiy написано: xp_fileexist - недокументированная процедура. Следовательно, удивляться, что её поведение изменяется от версии к версии (а возможно от сервиспака до сервиспака или даже между хотфиксами), не стоит. Моё личное мнение - выносить проверку на существование файла на уровень приложения всегда, когда это возможно.
Это верно, я и не удивляюсь, не скандалю, а просто констатирую факт. Авось кому пригодится
Andrey Kudievskiy написано: Моё личное мнение - выносить проверку на существование файла на уровень приложения всегда, когда это возможно.
Или пользоваться тупым, но "штатным", гарантированно работающим средством:
Code Snippetcreate table #tfn(FileName varchar(max));
insert into #tfnexec xp_cmdshell 'dir \\server\share\file.jpg /b';
if exists(select * from #tfn where FileName='file.jpg')
select 'Exists';
else
select 'Not Exists';
drop table #tfn;27 августа 2007 г. 8:14 -
Ох и не люблю я на продакшене xp_cmdshell разрешать... Как только, не дай Бог, самым случайным образом некий "злоумышленник" получит доступ к Вашему SQL Server'y, считайте, что и ОС у него в руках. Не зря в 2k5 по умолчанию отключено.
27 августа 2007 г. 8:32 -
Это не злоумышленники, а глубоко проверенные люди
, которым таблицы из файлов заливать разрешено
О разрешении xp_cmdshell всем и речи нет.
27 августа 2007 г. 10:47