powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Скрипт Python не находит файл в сети
16 сообщений из 16, страница 1 из 1
Скрипт Python не находит файл в сети
    #39771363
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую скрипт через транзакт, os.path.exists("")

Когда проверяю файл на сервере os.path.exists(R"D:\file1.txt")
но если файл в локальной сети os.path.exists(R"\\localPath\file1.txt")
скрипт выдает что файл не существует.

Если запустить такой же скрипт через IDE то находит оба файла.

Кто подскажет в чем может быть проблема?
...
Рейтинг: 0 / 0
Скрипт Python не находит файл в сети
    #39771421
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452скрипт выдает что файл не существует.А MS SQL Server к этому имеет отношение?
...
Рейтинг: 0 / 0
Скрипт Python не находит файл в сети
    #39771428
Col
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452,
У акаунт из-под которого SQL запушен доступ есть к сетевой шаре?

alexeyvg
2017-й через sp_execute_external_script SQL понимает Python.
Чтиво:
https://docs.microsoft.com/en-us/sql/advanced-analytics/tutorials/quickstart-python-run-using-t-sql?view=sql-server-2017
...
Рейтинг: 0 / 0
Скрипт Python не находит файл в сети
    #39771486
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452Использую скрипт через транзакт, os.path.exists("")

Когда проверяю файл на сервере os.path.exists(R"D:\file1.txt")
но если файл в локальной сети os.path.exists(R"\\localPath\file1.txt")
скрипт выдает что файл не существует.

Если запустить такой же скрипт через IDE то находит оба файла.

Кто подскажет в чем может быть проблема?

Выполните их своего скрипта

whoami.exe

и поймете.
...
Рейтинг: 0 / 0
Скрипт Python не находит файл в сети
    #39771491
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Collex452,
У акаунт из-под которого SQL запушен доступ есть к сетевой шаре?

alexeyvg
2017-й через sp_execute_external_script SQL понимает Python.
Чтиво:
https://docs.microsoft.com/en-us/sql/advanced-analytics/tutorials/quickstart-python-run-using-t-sql?view=sql-server-2017
Да , имеет. Сервер запущен под пользователем у которогоесть доступ к папкам
...
Рейтинг: 0 / 0
Скрипт Python не находит файл в сети
    #39771492
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222lex452Использую скрипт через транзакт, os.path.exists("")

Когда проверяю файл на сервере os.path.exists(R"D:\file1.txt")
но если файл в локальной сети os.path.exists(R"\\localPath\file1.txt")
скрипт выдает что файл не существует.

Если запустить такой же скрипт через IDE то находит оба файла.

Кто подскажет в чем может быть проблема?

Выполните их своего скрипта

whoami.exe

и поймете.
А как запустить ехе в скрипте?
...
Рейтинг: 0 / 0
Скрипт Python не находит файл в сети
    #39771674
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вызвал внутри скрипта getpass.getuser() , выдало пользователя mssqlserver01. Хотя сам запрос выполнял не из под него, мало того я вообще не знаю что это за пользователь. Как запускать скрипт под нужным пользователем?
...
Рейтинг: 0 / 0
Скрипт Python не находит файл в сети
    #39771730
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452,

у меня в обоих скриптах (R и Python) на 2019м CTP2.2
(Java не проверял но по индукции предположу что тоже самое)

процессы запускаются от: nt service\mssqllaunchpad$my_sql_instance_name ,

специальная учётка для этого сервиса, т.е. автоматом пользователь не наследуется

(в смысле если данные передашь из самого SQL запроса, и потом получаешь обратно
- то они под контекстом начального пользователя пройдут без проблем как и полагается,
а дальше на стороне внешних скриптов - эта сервисная учётка изолированным процессом)
Код: sql
1.
2.
3.
exec sp_execute_external_script @language=N'R',
@script=N'OutputDataSet<-data.frame(system("cmd.exe /c whoami",intern=T)[1])'
WITH RESULT SETS((x varchar(100)))

Код: sql
1.
2.
3.
4.
5.
6.
EXEC sp_execute_external_script
@language=N'Python',
@script=N'import os
import pandas as pd
OutputDataSet=pd.DataFrame([os.popen("whoami").read()])'
WITH RESULT SETS((x varchar(100)))

Код: sql
1.
--exec xp_cmdshell 'whoami'
...
Рейтинг: 0 / 0
Скрипт Python не находит файл в сети
    #39771759
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkiv,

Спасибо за ответ, а есть возможность запускать скрипт от учетки пользователя, который его вызывает?
...
Рейтинг: 0 / 0
Скрипт Python не находит файл в сети
    #39771763
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452vikkiv,

Спасибо за ответ, а есть возможность запускать скрипт от учетки пользователя, который его вызывает?
Нет. Есть группа SQLRUserGroup в ней пул пользователей под вызов launchpad. По дефолту 20( все и имя группы и количество вроде во время установки задаётся).
...
Рейтинг: 0 / 0
Скрипт Python не находит файл в сети
    #39771808
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaKlex452vikkiv,

Спасибо за ответ, а есть возможность запускать скрипт от учетки пользователя, который его вызывает?
Нет. Есть группа SQLRUserGroup в ней пул пользователей под вызов launchpad. По дефолту 20( все и имя группы и количество вроде во время установки задаётся).
Кстати мне попадалось про SQLRusergroup, но на сервере у меня ее не находит
...
Рейтинг: 0 / 0
Скрипт Python не находит файл в сети
    #39771872
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452но на сервере у меня ее не находитА у меня находит. А вы как ищете?
...
Рейтинг: 0 / 0
Скрипт Python не находит файл в сети
    #39771877
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

Наверное реализация по пользователям от версии/редакции зависит 2016/2017/2019 {St/EE/Dev..}
например в 2017 St - ни у R ни у Python нет параллелизма
ну и на серверных хозяйствах у админов свои нормы,
так что там вообще по разному бывает
...
Рейтинг: 0 / 0
Скрипт Python не находит файл в сети
    #39771881
Фотография vikkiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lex452vikkiv,

Спасибо за ответ, а есть возможность запускать скрипт от учетки пользователя, который его вызывает?именно этот можно сказать и нет (хотя есть возможность которая по логике попадает в набор таблицы истинности)

в обход лучших практик можно реализовать, вариантов - зависит от фантазии,
от вызова какой-то своей собственноручно написанной Assembly
(C# например, которая собственно и запустит R/Python сервис под нужной учёткой)

до однопользовательского режима (если есть такая уверенность, иначе будут конфликты)
- там можно перед вызовом скрипта динамически учётку LaunchPad сервиса менять,

можно ещё передавать в Python пользователя отдельной переменной (они-же как In так и Out)
- и на той стороне уже запускать сетевые команды в контексте пользователя из этой переменной
(с вытаскиванием нужных Authentication Credentials из Security хранилища).

всё требует довольно серьёзных ограничений по разным причинам
- от конфликтов (clash) до вопросов безопасности
(в т.ч. кто может вызывать процедуру, или ограничить жесткой функцией с кучей проверок во избежание injections)

кратко - в SQL Server R/Python/Java добавили немного для других целей
(это у них в категории Advanced Analytics / Machine Learning Services)
а для ETL и файлообмена существуют другие инструменты..
в смысле IMHO: не надо изобретать велосипед,

в крайнем случае (опять-же безопасность) файлообмен можно кусками реализовать
- обработка/создание через Python, обмен другим инструментарием SQL Server (и производных)
т.е. разбить Python на этапы workflow..
...
Рейтинг: 0 / 0
Скрипт Python не находит файл в сети
    #39771887
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikkiv,

Спасибо за развернутый ответ. Про другие способы я в курсе, хотел именно через питон попробовать, сравнить удобство. А в целом соглашусь что не для этих задач его внедрили
...
Рейтинг: 0 / 0
Скрипт Python не находит файл в сети
    #39771896
lex452
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvglex452но на сервере у меня ее не находитА у меня находит. А вы как ищете?
Пытался добавить пользователя на сервер, и в домене хотей найти его
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Скрипт Python не находит файл в сети
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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