Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];

Вниз

Нет доступа при чтении файлов -ем с другого сервера   Найти похожие ветки 

 
Vick   (2003-12-17 10:33) [0]

Доброго всем дня!

Возникла следующая проблема. В MSSQL-е пишу такой код:

exec master..xp_cmdshell "dir e:\StartSQL"

работает отлично, т.к. каталог e:\StartSQL находится на машине, где установлен SQL.
Далее пишу:

exec master..xp_cmdshell "dir \\ServerN\FilesSql"

Пишет, что нету доступа. \\ServerN\FilesSql находится на другом сервере и расшарен на SQL-машине. Как можно получить доступ туда без нарушения безопасности?


 
Ega23   (2003-12-17 10:36) [1]

Попробуй замонтируй как конкретный диск, например Z.


 
sniknik   (2003-12-17 10:50) [2]

не в доступе дело (и вообще не в MSSQL), это же вызывается команда системы. а если то же сделать руками т.е. cmd и в нем

D:\>dir \\puma\distr
Том в устройстве C не имеет метки
Серийный номер тома: 0C5E-12D8
Путь не найден

хотя он есть и dir M:\ (это он и есть подключенный) работает

а через xp_cmdshell в первом случае "Отказано в доступе." во втором работает.

(ограничение команды однако. если только свой dir написать?)


 
Vick   (2003-12-17 10:57) [3]


> sniknik ©


Стоп!!!!! Есть назначеный логически путь к этому каталогу, типа S:\FilesSql, пишет, что путь не найден!!! Или я чего-то не так поняла?


 
MOA   (2003-12-17 11:00) [4]

Хм, а у меня dir \\server\katalog замечательно работает. Только что попробовал на нескольких каталогах (WinXP pro).


 
sniknik   (2003-12-17 11:05) [5]

MOA © (17.12.03 11:00) [4]
может поэтому? > (WinXP pro)
у меня w2k prof.

Vick © (17.12.03 10:57) [3]
> Есть назначеный логически путь к этому каталогу, типа S:\FilesSql
а так dir s:\ ???
запусти в консоли (cmd/command) от системы


 
LordOfSilence   (2003-12-17 11:08) [6]

И снова здравствуйте! ;-)

1. Какая аутентификация взведена на машине, на которой работает MSSQL?
2. От какой учетной записи стартует сервис sqlservr.exe?
3. C какой машины конкретно ты выполняешь команду exec master..xp_cmdshell "dir \\ServerN\FilesSql"?


 
Vick   (2003-12-17 11:09) [7]


> sniknik ©


А это не может быть связано с ограничением доступов именно на самой машине. Сервера запускаются сами и работают без какго-либо пользователя, может аутентификация SQl-сервера не устраивает другой?


 
sniknik   (2003-12-17 11:10) [8]

Vick © (17.12.03 10:57) [3]
сорри
действительно, подключил другой диск (машину)
dir g:\
в консоле нормально из MSSQL "Отказано в доступе." хм..


 
Vick   (2003-12-17 11:12) [9]


> sniknik ©


Ага, я тоже так только что поробовала - тот же эффект. :)


> LordOfSilence ©


> 3. C какой машины конкретно ты выполняешь команду exec master..xp_cmdshell
> "dir \\ServerN\FilesSql"?


Эту коменду запускаю с машины, там где есть SQL-сервер, а файлы находятся на другой машине.


 
sniknik   (2003-12-17 11:13) [10]

LordOfSilence © (17.12.03 11:08) [6]
точно
exec master..xp_cmdshell "dir \\Server\users"
где у меня все права, работает в обоих случаях


 
sniknik   (2003-12-17 11:15) [11]

Vick © (17.12.03 11:12) [9]
там где сработало
подключен на себя(MSSQL на моей локальной машине), авторизация виндовая
Provider=SQLOLEDB.1; Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind
на этом сервере(куда получилось) тот user под которым работаю имеет админские права


 
Vick   (2003-12-17 11:17) [12]


> sniknik © (17.12.03 11:13) [10]
> LordOfSilence © (17.12.03 11:08) [6]
> точно
> exec master..xp_cmdshell "dir \\Server\users"
> где у меня все права, работает в обоих случаях


А если нету прав??? Дело в том, что подобную процедуру должен выполнять джоб каджые 15 мин, это даже не с моей машины запускается.


 
Плохиш_   (2003-12-17 11:21) [13]

>Vick © (17.12.03 11:17) [12]

> А если нету прав???

Значит прав нет. и не рыпайся, а иначе для чего всю систему безопасности придумывали? ;-)


 
LordOfSilence   (2003-12-17 11:22) [14]

Вот за что я люблю девушек, так это за то, что с ними можно просто потрындеть. Так, ни о чем ;-)
А вообще, Вика, я чрезвычайно польщен. Ты практически в первый раз конкретно ответила мне на конкретно поставленный вопрос. Хотя бы на один из трех. Это не может не радовать. Но ты не останавливайся на достигнутом. Попробуй продвинуться еще на несколько шажков. ;-)

4. В какой среде ты выполняешь exec master..xp_cmdshell "dir \\ServerN\FilesSql"? То есть где ты пальцами это прописываешь?


 
Reindeer Moss Eater   (2003-12-17 11:24) [15]

sniknik © (17.12.03 11:10) [8]
Vick © (17.12.03 10:57) [3]
сорри
действительно, подключил другой диск (машину)
dir g:\
в консоле нормально из MSSQL "Отказано в доступе." хм..


Подключает сетевой диск интерактивный пользователь.
И dir g:\ выполняет он же. Поэтому и успех.

А сервер или его агент работают под другими учетными записями, или вообще под LSA. И им на подключенный кем-то другим логический диск глубоко наплевать. Они его не видят ваапще.


 
MOA   (2003-12-17 11:26) [16]

А службе MSSQLServer и, м.б. SQL Server Agent (хотя вряд ли - админские права) прав хватает - не SYSTEM?


 
Vick   (2003-12-17 11:30) [17]


> LordOfSilence © (17.12.03 11:22) [14]

Боже, как прияно, что хоть в чем-то мужчине угодила :)))

> 4. В какой среде ты выполняешь exec master..xp_cmdshell
> "dir \\ServerN\FilesSql"? То есть где ты пальцами это прописываешь?


Это прописано в Job-е на SQL-сервере, он выполняется сам каждые 15 мин.
Аутентификации никакой нету, т.е. сервера загружаются сами по себе и никто в них не входит ни под каким именем (это сделано на случай, если вдруг им прийдется самим перезагрузиться после). Посему сервис sqlservr.exe стартует, как мне сказал мой горячо-любимый начальник, без каких-либо учетных записей.

Надеюсь, хоть что-то конкретного в моих ответах сегодня есть :)


 
LordOfSilence   (2003-12-17 11:30) [18]

2 Reindeer Moss Eater © (17.12.03 11:24) [15]
Ты прав стопудово, но об этом бесполезно талдычить, так как девушка видит только то, что она ХОЧЕТ видеть. Все остальное она игнорирует.


 
Vick   (2003-12-17 11:32) [19]


> Reindeer Moss Eater © (17.12.03 11:24) [15]

> А сервер или его агент работают под другими учетными записями,
> или вообще под LSA. И им на подключенный кем-то другим логический
> диск глубоко наплевать. Они его не видят ваапще.


Вот и я об этом народу рассказываю!!! А что в данной ситуации делать?


 
LordOfSilence   (2003-12-17 11:34) [20]

Это называется Show must go on!
Что значит "Аутентификации никакой нету"? Это типа как "никакого дня и никакого месяца"?
Сервис не может загружаться "без каких-либо учетных записей". Судя по всему, он таки загружается под LocalSystem. Насколько я знаю, учетная запись LocalSystem не имеет прав на сеть.
Да, и Агент как стартует? Под какой учетной записью?


 
MOA   (2003-12-17 11:36) [21]

Всё таки - юзер, который выполняет cmdshell входит в роль sysadmin? Если входит - сервер (служба MSSQLServer) стартует часом под аккаунтом SYSTEM/ Если SYSTEM - сетевые пути будет не видно.


 
Vick   (2003-12-17 11:38) [22]


> LordOfSilence ©


> учетная запись LocalSystem не имеет прав на сеть.


Каким же тогда образом все работает, если сервера сами по себе перезагружаются, например, после долгого отсутсвия света? К ним никто не подходит даже. Может я чего-то в этом не понимаю, тогда очень прошу мне по почте объяснить как может работать такая система.


 
LordOfSilence   (2003-12-17 11:39) [23]

2 sniknik
Нет, ты посмотри что делается, а? "Вот и я об этом народу рассказываю!!!"

2 Vick
Это точно ты рассказываешь или НикогдаНеЕвшийЯгеля?
В общем так... Не парь мозги и попробуй запускать Агента от имени
учетной записи, имеющей права на сеть. Лучше вообще попробуй от имени записи, имеющей администраторские права в домене.


 
lmatveev   (2003-12-17 11:42) [24]

Путь указывай в формате \\server\share
Вариант 1. Стартовать MSSQL под учетной записью пользователя, который имеет права на чтение файлов.
Вариант 2. Попробуй на машине, где находятся файлы включить аудит и посмотреть, что происходит когда ты лезешь туда из под SQL сервера. М.б. удасться настроить права на этой машине
Вариант 3. Перед вызовом dir вызывать net use с соответствующими параметрами


 
Guest   (2003-12-17 13:12) [25]

1. Старутешь сервисы MSSQLSERVER и SQLSERVERAGENT от имени пользователя входящем в группу Power Users на локальной машине - той на которой стоит сервер. См. вкладочку Log on в настройках сервера.

2. Приписываеш пользователя от которого старутют вышеуказанные службы на втором сервере (для папки которого выполняем dir) в плане выдачи ему прав на чтение шары и права на чтение папки с точки зрение файловой системы

3. Наслаждаетесь (у меня по такому принципу уже год работает второй контур резервного копирования - проблем нет.)

И НЕ СЛУШАЙТЕ тех особ которые предлагают замаппить UNC путь - "присвоить ему" буковку. Когда уже люди поймут что все маппинги - хранятся непосредственно в профиле того пользователя для которого они созданы и не обязаны (да и не будут доступны)MS SQL.


 
Vick   (2003-12-17 13:55) [26]


> Guest (17.12.03 13:12) [25]
> 1. Старутешь сервисы MSSQLSERVER и SQLSERVERAGENT от имени
> пользователя входящем в группу Power Users на локальной
> машине - той на которой стоит сервер. См. вкладочку Log
> on в настройках сервера.


Я не могу их стартовать от имени какого-то юзера, оно стартует само!!! Так настроено и не разрешено мне переделывать!!!
и SQL-сервер находиться не на локальной машине, а на сервере, только на другом.


 
LordOfSilence   (2003-12-17 14:01) [27]

Не можешь стартовать - попроси сисадмина. Или кто там у вас есть?



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.01 c
1-37663
Строитель
2003-12-26 17:05
2004.01.13
Версия, билд и пр. информация о проекте


8-37813
Kubic
2003-09-09 19:31
2004.01.13
Изменение размера картинки и шрифта


3-37565
User_OKA
2003-12-15 12:53
2004.01.13
Поля


1-37796
Ygy
2003-12-28 22:48
2004.01.13
Подправить DLL ку


1-37734
raidan
2003-12-29 22:25
2004.01.13
Как в listbox узнать номер последней выделенной строки?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский