![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Нет доступа при чтении файлов -ем с другого сервера [MSSQL]
Vick © (2003-12-17 10:33:00)
Доброго всем дня!
Возникла следующая проблема. В MSSQL-е пишу такой код:
exec master..xp_cmdshell "dir e:\StartSQL"
работает отлично, т.к. каталог e:\StartSQLнаходится на машине, где установлен SQL.
Далее пишу:
exec master..xp_cmdshell "dir \\ServerN\FilesSql"
Пишет, что нету доступа. \\ServerN\FilesSqlнаходится на другом сервере и расшарен на SQL-машине. Как можно получить доступ туда без нарушения безопасности?
LordOfSilence (2003-12-17 14:01:00) [1]
Не можешь стартовать - попроси сисадмина. Или кто там у вас есть?
Vick (2003-12-17 13:55:00) [2]
> Guest (17.12.03 13:12) [25]
> 1. Старутешь сервисы MSSQLSERVER и SQLSERVERAGENT от имени
> пользователя входящем в группу Power Users на локальной
> машине - той на которой стоит сервер. См. вкладочку Log
> on в настройках сервера.
Я не могу их стартовать от имени какого-то юзера, оно стартует само!!! Так настроено и не разрешено мне переделывать!!!
и SQL-сервер находиться не на локальной машине, а на сервере, только на другом.
Guest (2003-12-17 13:12:00) [3]
1. Старутешь сервисы MSSQLSERVER и SQLSERVERAGENT от имени пользователя входящем в группу Power Users на локальной машине - той на которой стоит сервер. См. вкладочку Log on в настройках сервера.
2. Приписываеш пользователя от которого старутют вышеуказанные службы на втором сервере (для папки которого выполняем dir) в плане выдачи ему прав на чтение шары и права на чтение папки с точки зрение файловой системы
3. Наслаждаетесь (у меня по такому принципу уже год работает второй контур резервного копирования - проблем нет.)
И НЕ СЛУШАЙТЕтех особ которые предлагают замаппить UNC путь - "присвоить ему" буковку. Когда уже люди поймут что все маппинги - хранятся непосредственно в профиле того пользователя для которого они созданы и не обязаны (да и не будут доступны)MS SQL.
lmatveev (2003-12-17 11:42:00) [4]
Путь указывай в формате \\server\share
Вариант 1. Стартовать MSSQL под учетной записью пользователя, который имеет права на чтение файлов.
Вариант 2. Попробуй на машине, где находятся файлы включить аудит и посмотреть, что происходит когда ты лезешь туда из под SQL сервера. М.б. удасться настроить права на этой машине
Вариант 3. Перед вызовом dir вызывать net use с соответствующими параметрами
LordOfSilence (2003-12-17 11:39:00) [5]
2 sniknik
Нет, ты посмотри что делается, а? "Вот и я об этом народу рассказываю!!!"
2 Vick
Это точно ты рассказываешь или НикогдаНеЕвшийЯгеля?
В общем так... Не парь мозги и попробуй запускать Агента от имени
учетной записи, имеющей права на сеть. Лучше вообще попробуй от имени записи, имеющей администраторские права в домене.
Vick (2003-12-17 11:38:00) [6]
> LordOfSilence ©
> учетная запись LocalSystem не имеет прав на сеть.
Каким же тогда образом все работает, если сервера сами по себе перезагружаются, например, после долгого отсутсвия света? К ним никто не подходит даже. Может я чего-то в этом не понимаю, тогда очень прошу мне по почте объяснить как может работать такая система.
MOA (2003-12-17 11:36:00) [7]
Всё таки - юзер, который выполняет cmdshell входит в роль sysadmin? Если входит - сервер (служба MSSQLServer) стартует часом под аккаунтом SYSTEM/ Если SYSTEM - сетевые пути будет не видно.
LordOfSilence (2003-12-17 11:34:00) [8]
Это называется Show must go on!
Что значит "Аутентификации никакой нету"? Это типа как "никакого дня и никакого месяца"?
Сервис не может загружаться "без каких-либо учетных записей". Судя по всему, он таки загружается под LocalSystem. Насколько я знаю, учетная запись LocalSystem не имеет прав на сеть.
Да, и Агент как стартует? Под какой учетной записью?
Vick (2003-12-17 11:32:00) [9]
> Reindeer Moss Eater © (17.12.03 11:24) [15]
> А сервер или его агент работают под другими учетными записями,
> или вообще под LSA. И им на подключенный кем-то другим логический
> диск глубоко наплевать. Они его не видят ваапще.
Вот и я об этом народу рассказываю!!! А что в данной ситуации делать?
LordOfSilence (2003-12-17 11:30:00) [10]
2 Reindeer Moss Eater © (17.12.03 11:24) [15]
Ты прав стопудово, но об этом бесполезно талдычить, так как девушка видит только то, что она ХОЧЕТ видеть. Все остальное она игнорирует.
Vick (2003-12-17 11:30:00) [11]
> LordOfSilence © (17.12.03 11:22) [14]
Боже, как прияно, что хоть в чем-то мужчине угодила :)))
> 4. В какой среде ты выполняешь exec master..xp_cmdshell
> "dir \\ServerN\FilesSql"? То есть где ты пальцами это прописываешь?
Это прописано в Job-е на SQL-сервере, он выполняется сам каждые 15 мин.
Аутентификации никакой нету, т.е. сервера загружаются сами по себе и никто в них не входит ни под каким именем (это сделано на случай, если вдруг им прийдется самим перезагрузиться после). Посему сервис sqlservr.exe стартует, как мне сказал мой горячо-любимый начальник, без каких-либо учетных записей.
Надеюсь, хоть что-то конкретного в моих ответах сегодня есть :)
MOA (2003-12-17 11:26:00) [12]
А службе MSSQLServer и, м.б. SQL Server Agent (хотя вряд ли - админские права) прав хватает - не SYSTEM?
Reindeer Moss Eater (2003-12-17 11:24:00) [13]
sniknik © (17.12.03 11:10) [8]
Vick © (17.12.03 10:57) [3]
сорри
действительно, подключил другой диск (машину)
dir g:\
в консоле нормально из MSSQL "Отказано в доступе." хм..
Подключает сетевой диск интерактивный пользователь.
И dir g:\ выполняет он же. Поэтому и успех.
А сервер или его агент работают под другими учетными записями, или вообще под LSA. И им на подключенный кем-то другимлогический диск глубоко наплевать. Они его не видят ваапще.
LordOfSilence (2003-12-17 11:22:00) [14]
Вот за что я люблю девушек, так это за то, что с ними можно просто потрындеть. Так, ни о чем ;-)
А вообще, Вика, я чрезвычайно польщен. Ты практически в первый раз конкретно ответила мне на конкретно поставленный вопрос. Хотя бы на один из трех. Это не может не радовать. Но ты не останавливайся на достигнутом. Попробуй продвинуться еще на несколько шажков. ;-)
4. В какой среде ты выполняешь exec master..xp_cmdshell "dir \\ServerN\FilesSql"? То есть где ты пальцами это прописываешь?
Плохиш_ (2003-12-17 11:21:00) [15]
>Vick © (17.12.03 11:17) [12]
> А если нету прав???
Значит прав нет. и не рыпайся, а иначе для чего всю систему безопасности придумывали? ;-)
Vick (2003-12-17 11:17:00) [16]
> sniknik © (17.12.03 11:13) [10]
> LordOfSilence © (17.12.03 11:08) [6]
> точно
> exec master..xp_cmdshell "dir \\Server\users"
> где у меня все права, работает в обоих случаях
А если нету прав??? Дело в том, что подобную процедуру должен выполнять джоб каджые 15 мин, это даже не с моей машины запускается.
sniknik (2003-12-17 11:15:00) [17]
Vick © (17.12.03 11:12) [9]
там где сработало
подключен на себя(MSSQL на моей локальной машине), авторизация виндовая
Provider=SQLOLEDB.1; Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind
на этом сервере(куда получилось) тот user под которым работаю имеет админские права
sniknik (2003-12-17 11:13:00) [18]
LordOfSilence © (17.12.03 11:08) [6]
точно
exec master..xp_cmdshell "dir \\Server\users"
где у меня все права, работает в обоих случаях
Vick (2003-12-17 11:12:00) [19]
> sniknik ©
Ага, я тоже так только что поробовала - тот же эффект. :)
> LordOfSilence ©
> 3. C какой машины конкретно ты выполняешь команду exec master..xp_cmdshell
> "dir \\ServerN\FilesSql"?
Эту коменду запускаю с машины, там где есть SQL-сервер, а файлы находятся на другой машине.
sniknik (2003-12-17 11:10:00) [20]
Vick © (17.12.03 10:57) [3]
сорри
действительно, подключил другой диск (машину)
dir g:\
в консоле нормально из MSSQL "Отказано в доступе." хм..