Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: xp_dirtree  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
кто владелец процедуры?
16 июн 11, 11:05    [10820438]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
italiy555
Member

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

Всё дело в том что программа делает всё что надо, т.е и список папок и файлов я получаю, тут к ней не предраться. Но всё это эльдорадо заканчивается, как только это запускают пользователи.Я почему к правам прицепилась, потому что всё работает но не для всех. С exec xp_cmdshell таже ситуация.
16 июн 11, 11:07    [10820456]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
italiy555
Member

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

владелец процедуры которая запускает master.dbo.xp_dirtree -'FL\sql'
16 июн 11, 11:13    [10820505]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
italiy555
Member

Откуда:
Сообщений: 36
неужели ни кто не сталкивался с этой проблемой , master.dbo.xp_dirtree и с xp_cmdshell как то же работают
16 июн 11, 11:19    [10820567]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
invm
Member

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

Да, виноват, такой вызов как у вас будет возвращать список файлов. А копать вам нужно в строну разрешений NTFS.
16 июн 11, 11:20    [10820569]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
italiy555
Member

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

Вы имеете ввиду права на папку, системный администратор у нас проверял, есть все права
16 июн 11, 11:43    [10820803]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
italiy555
HandKot,

владелец процедуры которая запускает master.dbo.xp_dirtree -'FL\sql'


кем является 'FL\sql'
16 июн 11, 12:03    [10820931]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
invm
Member

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

Чудес на свете не бывает. Запустите на сервере procmon с нужными фильтрами и посмотрите живьем что происходит.
16 июн 11, 12:09    [10820964]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
italiy555
Member

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

незнаю как его правильно назвать, в Безопасности, Имена входа, Роли сервера :Public , sisadmin
16 июн 11, 12:10    [10820967]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
если в студии выполнить

Execute master.dbo.xp_dirtree 'тута папка, которая в @otkuda', 1, 1 
от имени 'FL\sql', что будет?


ЗЫЖ
invm
Чудес на свете не бывает
согласен
16 июн 11, 12:18    [10821008]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
и так же
Execute master.dbo.xp_cmdshell 'dir @otkuda\*.*'
16 июн 11, 12:21    [10821025]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
italiy555
Member

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

1) если зайти на машину под FL\SQL и запустить программу, то программа отрабатывает
2) если процедуру сделать с припиской WITH EXECUTE AS OWNER(владелец FL\SQL), то процедура запускается под именем FL\SQL, но master.dbo.xp_dirtree в програмке не отрабатывает, список файлов остается пустой.
16 июн 11, 13:41    [10821651]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
italiy555
Member

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

пробовала уже через master.dbo.xp_cmdshell , но так же список файлов пуст под простым пользователем , а под админовскими правами отрабатывает. Т.е аналогичная ситуация.
16 июн 11, 13:43    [10821672]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
italiy555
Member

Откуда:
Сообщений: 36
invm
italiy555,

Чудес на свете не бывает. Запустите на сервере procmon с нужными фильтрами и посмотрите живьем что происходит.


согласна, но если бы ещё я знала как это делать
16 июн 11, 13:52    [10821745]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
код ХП покажите
16 июн 11, 14:45    [10822243]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
italiy555
Member

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

CREATE PROCEDURE [dbo].[bux_1chag] ---подготовка списка файлов для обработки
@kto int
AS
BEGIN
declare @otkuda as nvarchar(255)
set @otkuda='откуда'

IF OBJECT_ID(N'tempdb..#dir1', N'U') IS NOT NULL
drop table dbo.#dir1

CREATE TABLE #dir1 (fname nvarchar(255), d int, f int)

INSERT INTO #dir1 EXECUTE master.dbo.xp_dirtree @otkuda, 1,1

INSERT INTO bux_copy ( kto, otkuda, fil,dat ,shag1)
SELECT @kto, @otkuda, fname , cast(GETDATE() as date),1 from #dir1 where (fname is not null) and charindex('.txt',fname,1)>0

drop table dbo.#dir1

end
16 июн 11, 14:55    [10822347]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
italiy555
CREATE PROCEDURE [dbo].[bux_1chag]  --- подготовка списка файлов для обработки 
	@kto int
AS BEGIN
	DECLARE	@otkuda NVarChar(255) = 'откуда'
	DECLARE	@dir TABLE (fname NVarChar(255), d int, f int)

	INSERT	@dir EXEC master.dbo.xp_dirtree @otkuda, 1, 1

	INSERT	bux_copy( kto, otkuda,fil  ,dat,shag1)
	SELECT		 @kto,@otkuda,fname,Convert(Date,GetDate()),1
	FROM	@dir
	WHERE	fname LIKE '%.txt'

END
GO
16 июн 11, 16:15    [10823043]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
italiy555
Member

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

Спасибо за вариант, он тоже отработает так же, как мой вариант, т.е с админовскими правами работает, список файлов получает, а от пользователя если запускаешь, то список файлов пуст.
16 июн 11, 16:24    [10823140]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
странно все это.
проделав ряд опытов, стало ясно
1. доступ к папке должена иметь учетная запись под которой работает скуль
2. опция with execute не влияет


почему у вас под админом работает, а под обычным пользователем нет, непонятно
надо смотреть нрастройки сервера
16 июн 11, 16:33    [10823229]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
italiy555
Спасибо за вариант, он тоже отработает так же, как мой вариант
Я просто отформатировал.
А по теме: xp_dirtree фтопку.

AS OWNER (AS 'dbo') + его олицетворение (владелец базы) и установка доверия (TRUSTWORTHY кажись).
Если ничего не путаю.
16 июн 11, 17:05    [10823482]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
SamMan
Member

Откуда: Moscow
Сообщений: 759
Без доп. телодвижений xp_cmdshell требует для исполнения пермишена CONTROL SERVER. Говоря по русски - выполнить ее может только сисадмин.
16 июн 11, 17:07    [10823505]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
italiy555
Member

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

Добрый день,
"AS OWNER (AS 'dbo') + его олицетворение (владелец базы) и установка доверия (TRUSTWORTHY кажись).
--не совсем поняла, вернее совсем не поняла, это куда?
17 июн 11, 06:45    [10825717]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
italiy555
Member

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

Добрый день, где их смотреть и какие, прочитала что роль сервера diskadmin для работы с папками, добавление её для пользоват. не помогло.
Может мне на базу master нужно какие то права дать?
17 июн 11, 06:49    [10825720]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
сервер от какой учетки стартует?
17 июн 11, 08:41    [10825834]     Ответить | Цитировать Сообщить модератору
 Re: xp_dirtree  [new]
italiy555
Member

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

от FL\SQL и все службы от него
17 июн 11, 09:07    [10825926]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить