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

Откуда:
Сообщений: 5
Добрый день, коллеги!

У меня SQL server 12.0.5589.7

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

WHILE(@MIN <= @MAX)
BEGIN
		
		
		SELECT @HFFolderName=HFFolderName,@ExecFileName=ExecFileName FROM [dbo].[HFDetails] WHERE ID=@MIN
		
		SET @Sqlcmd='SQLCMD -E -b -S '+@ServerName+' -d '+@EngagementDb+ ' -i "'+@currentdirectory+'Database scripts\'+@HFFolderName+'\'+@ExecFileName+'"'

		SET @SQLString2 ='exec @Ret=master.dbo.xp_cmdshell '
		SET @SQLString2=@SQLString2+''''+@Sqlcmd+''''
		
		INSERT INTO @tempError
		EXEC sp_executesql @SQLString2,@ParmDefinition,@Ret=@OutRet OUTPUT

		
		IF @OutRet=0 
		BEGIN
			SET @TimeStamp=CONVERT(NVARCHAR(25),GETDATE(),121)
						
			UPDATE E1.EngagementDBInstallationDetails SET Installed=1,InstallationEndTime=GETDATE() 
						WHERE InstallationName=@HFFolderName AND FileName=@ExecFileName
			
			PRINT @TimeStamp+' : Successfully executed Database scripts\'+@HFFolderName+'\'+@ExecFileName 
			PRINT ' '
			
		END
		ELSE
		BEGIN
			
			SET @TimeStamp=CONVERT(NVARCHAR(25),GETDATE(),121)
			
						
			SELECT @StrErr=@StrErr+CHAR(13)+CHAR(10)+Error FROM @tempError WHERE Error IS NOT NULL
			
			UPDATE E1.EngagementDBInstallationDetails SET Installed=2,InstallationEndTime=GETDATE() 
						WHERE InstallationName=@HFFolderName AND FileName=@ExecFileName
						
			PRINT @TimeStamp+' : Error while executing Database scripts\'+@HFFolderName+'\'+@ExecFileName
			PRINT ' ' 
			PRINT @StrErr
			PRINT ' '
						
			BREAK;			
		END
	
		DELETE FROM @tempError

		SET @MIN=@MIN+1

END


В неопределенный момент процесс крашится с ошибкой ACCESS DENIED. Всегда на разных файлах.

Такое впечатление, что периодически пропадает доступ к базе.
Может ли быть такое?
12 дек 18, 16:08    [21761778]     Ответить | Цитировать Сообщить модератору
 Re: Плавающая ошибка: Access Denied  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2394
XTraktor,

может ACCESS DENIED это он не про базу, а про файлик?
12 дек 18, 16:09    [21761782]     Ответить | Цитировать Сообщить модератору
 Re: Плавающая ошибка: Access Denied  [new]
Danion
Member

Откуда: Москва
Сообщений: 203
XTraktor,

А точный текст ошибки можно?
Например access denied(5) - это нет доступа к файлу в Винде.
12 дек 18, 16:23    [21761804]     Ответить | Цитировать Сообщить модератору
 Re: Плавающая ошибка: Access Denied  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31355
XTraktor
В неопределенный момент процесс крашится с ошибкой ACCESS DENIED. Всегда на разных файлах.
У ошибки есть текст, номер, номер строки, возможно, ещё имя процедуры.
Не надо ошибки пересказывать своими словами :-)
12 дек 18, 16:33    [21761816]     Ответить | Цитировать Сообщить модератору
 Re: Плавающая ошибка: Access Denied  [new]
XTraktor
Member

Откуда:
Сообщений: 5
alexeyvg, Ошибка возвращается из этой процедуры:

INSERT INTO @tempError
EXEC sp_executesql @SQLString2,@ParmDefinition,@Ret=@OutRet OUTPUT


точный текст Access is denied. Подозреваю что это вывод SP_EXECUTESQL

В логах я не вижу ошибок, поэтому не могу точно сопоставить c конкретным событием.
Если у Вас есть мысли как отдебажить этот момент, буду очень благодарен :)
12 дек 18, 17:08    [21761864]     Ответить | Цитировать Сообщить модератору
 Re: Плавающая ошибка: Access Denied  [new]
XTraktor
Member

Откуда:
Сообщений: 5
StarikNavy,

Возможно, только непонятно почему каждый раз на новом файле пададает, причем может на том, который уже нормально выполнялся в предыдущих попытках. Файлов 140 штук. Может на 5-м вывалиться а может на 120-м.
12 дек 18, 17:40    [21761920]     Ответить | Цитировать Сообщить модератору
 Re: Плавающая ошибка: Access Denied  [new]
XTraktor
Member

Откуда:
Сообщений: 5
Если в вышеприведенном кусочке кода закомментить BRAKE, скрипт после ошибки идет длольше по списку. И таких фейлов может быть несколько за один проход. Каждый раз разное количество на разных файлах.
12 дек 18, 17:49    [21761936]     Ответить | Цитировать Сообщить модератору
 Re: Плавающая ошибка: Access Denied  [new]
invm
Member

Откуда: Москва
Сообщений: 9345
XTraktor
точный текст Access is denied. Подозреваю что это вывод SP_EXECUTESQL
Это вывод xp_cmdshell.
12 дек 18, 18:01    [21761952]     Ответить | Цитировать Сообщить модератору
 Re: Плавающая ошибка: Access Denied  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7754
XTraktor,

файл кто-то держит на запись или антивирь.
12 дек 18, 18:25    [21761984]     Ответить | Цитировать Сообщить модератору
 Re: Плавающая ошибка: Access Denied  [new]
XTraktor
Member

Откуда:
Сообщений: 5
Владислав Колосов,
В файлы ничего не пишется.
Антивирь отключал....
12 дек 18, 18:38    [21761998]     Ответить | Цитировать Сообщить модератору
 Re: Плавающая ошибка: Access Denied  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1723
Коллеги, а другой процесс начал копировать / создавать новый файл или перезаписывать / дополнять существующий файл, а код ТС-а как раз этот файл попробовал обработать - не это ли причина?
12 дек 18, 22:43    [21762214]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить