Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
On-Lite
Member

Откуда: Bases
Сообщений: 116
Здравствуйте!
Пробую с удаленной машины следующее.
Запускаю батник start.bat следующего содержания
автор
sqlcmd -S SQLSERVER -U sa -P pass -i netb.sql


netb.sql содержит в себе следующее
автор
exec master..xp_cmdshell 'net use P: /d /y'
exec master..xp_cmdshell 'net use P: \\server\backup /user:DOMAN\USER pass'


В итоге возвращается ошибка что

автор
C:\WINDOWS\system32>net use P: /d

Не удалось найти сетевое подключение.

NULL

Для вызова дополнительной справки наберите NET HELPMSG 2250.

NULL

NULL

C:\WINDOWS\system32>net use P: \\server\backup /user:DOMAIN\USER pass

Системная ошибка 85.

NULL

Имя локального устройства уже используется.

NULL

NULL


(обработано строк: 13)


Хотя на самом деле диск P не используется и не подключается.
Если выполнять эту процедуру с локальной машины, то все комманды отрабатываются на ура.

P.S. машина с которой выполняется запрос в домене, а машина на которой находится SQL SERVER вне домена.
13 янв 11, 09:45    [10063505]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
aleks2
Guest
Ишо один лентяй, так и не прочитавший ОСНОВЫ авторизации в системе Windows.
1. "Если выполнять эту процедуру с локальной машины"
то примитивная схема авторизации: локальная_машина(она_же_SQL_сервер)->\\server

2. "Пробую с удаленной машины"
то примитивная схема авторизации: удаленной машины->SQL_сервер->\\server

Вот и фся разница.
Ежели все ишо НЕ дошло не поняли - разжевываем в кашицу:
1. start.bat запускается под правами ЛОКАЛЬНОГО пользователя.
2. start.bat запускается под правами Службы MS SQL server.
а это две большие разницы...


ЗЫ. Чего добиться то пытаетесь?
13 янв 11, 10:05    [10063628]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
aleks2
Guest
Ну и синтаксис NET USE подучите
net use P: \\server\backup pass /user:DOMAN\USER 
13 янв 11, 10:08    [10063645]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
On-Lite
Member

Откуда: Bases
Сообщений: 116
Что то я сразу и не догадался, спасибо за разъяснение!
А как мне можно от имени службы SQL Server выполнять те же команды как и от локального пользователя? Что мне нужно подкрутить в SQL Server ? Дело в том что я его мало знаю, но необходимо настроить бэкап базы на удаленную машину которая в домене, понимаю что заморочка с авторизацией может быть, но ведь как то это решается.
дело в том что я даже не могу копировать данные на сетевые диски!
13 янв 11, 10:16    [10063693]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
On-Lite
Member

Откуда: Bases
Сообщений: 116
да и с локальной машины когда запускаешь
автор
DECLARE @pathName NVARCHAR(512)
SET @pathName = 'D:\backup\bss17_' + Convert(varchar(8), GETDATE(), 112) + '.bak'
BACKUP DATABASE BSS17 TO DISK = @pathName WITH NOFORMAT, NOINIT, NAME = N'BSS17', SKIP, NOREWIND, NOUNLOAD, STATS = 10


Если вместо диска D: какой нибудь сетевой диск, то возвращается ошибка что диск не найден :(
в общем на сетевые диски никак не хочет копировать. а на локальных уже места нет! :(
13 янв 11, 10:46    [10063929]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
Glory
Member

Откуда:
Сообщений: 104751
On-Lite
да и с локальной машины когда запускаешь
автор
DECLARE @pathName NVARCHAR(512)
SET @pathName = 'D:\backup\bss17_' + Convert(varchar(8), GETDATE(), 112) + '.bak'
BACKUP DATABASE BSS17 TO DISK = @pathName WITH NOFORMAT, NOINIT, NAME = N'BSS17', SKIP, NOREWIND, NOUNLOAD, STATS = 10


Если вместо диска D: какой нибудь сетевой диск, то возвращается ошибка что диск не найден :(
в общем на сетевые диски никак не хочет копировать. а на локальных уже места нет! :(

А в чем смысл маппинга диска, когда комадна BACKUP понимает и UNC ?
13 янв 11, 10:51    [10063973]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
On-Lite
Member

Откуда: Bases
Сообщений: 116
Машина, на которой SQL Server, расположена вне домена.
Машина, на которую необходимо создавать резервную копию, расположена в домене.
Естественно пробиться на шаринг в домен тяжелее, нужна авторизация.
маппингом можно подключать диски используя авторизацию виндовс, т.е. подрубаться к расшареным ресурсам машин в домене.
как это делать непосредственно в SQL Server'е я не знаю. поэтому приходится использовать то что знаешь, т.е. shell.
но тут грабли в правах видать, куда копать пока не знаю.
13 янв 11, 10:58    [10064028]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
On-Lite
Member

Откуда: Bases
Сообщений: 116
Вот такая ошибка вываливается
автор
Сообщение 3201, уровень 16, состояние 1, сервер XXX, строка 3
Невозможно открыть устройство резервного копирования "\\192.168.xx.xx\backup\cred_20110113.bak". Ошибка операционной системы 1326(Вход в систему не произведен: имя пользователя или пароль не опознаны.).
Сообщение 3013, уровень 16, состояние 1, сервер ABS, строка 3
BACKUP DATABASE прервано с ошибкой.
13 янв 11, 11:02    [10064062]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
Glory
Member

Откуда:
Сообщений: 104751
Вы бы прежде, чем выполнять маппиг сетевых устройств, получили бы список уже отмапленных
А то сообщение то говорит, что "Имя локального устройства уже используется."
13 янв 11, 11:03    [10064070]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
On-Lite
Member

Откуда: Bases
Сообщений: 116
В том то и дело что оно не используется.
перед этим выполняется команда
net use p: /d /y

система ругается на то что не находит сетевое подключение

затем выполняется
net use p: \\server\backup pass /user:USER@DOMAIN /y

в итоге система говорит что такое устройство уже используется.

но это пол дела, запускаю эти команды непосредственно на локальной машине, все монтируется без проблем
но потом невозможно сделать бэкап на это устройство
возможно есть какая то особенность в SQL Server'е выполнения бэкапа на сетевые устройства
13 янв 11, 11:17    [10064212]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
Glory
Member

Откуда:
Сообщений: 104751
On-Lite
В том то и дело что оно не используется.
перед этим выполняется команда
net use p: /d /y


А если диск p: - физический, то вы какое сообщение хотите увидеть ?
13 янв 11, 11:21    [10064250]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
On-Lite
Member

Откуда: Bases
Сообщений: 116
Вы меня наверное за дурака принимаете!

диск P: это сетевой диск, а не раздел физического диска.

попробуйте примонтировать сетевой диск у себя и попытаться на него сделать резервную копию!
у меня лично выдается ошибка, что невозможно открыть устройство резервного копирования
13 янв 11, 11:37    [10064394]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
Glory
Member

Откуда:
Сообщений: 104751
On-Lite
Вы меня наверное за дурака принимаете!

диск P: это сетевой диск, а не раздел физического диска.


Вы это где увидели ?
Вывели в скрипте список отмапленных устройств ?
"Не удалось найти сетевое подключение." - это вовсе не единственный вариант, что этого подключения нет
13 янв 11, 11:40    [10064420]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
On-Lite
Member

Откуда: Bases
Сообщений: 116
команда net use все показывает

-------------------------------------------------------------------------------
OK P: \\192.168.2.14\backup Microsoft Windows Network
13 янв 11, 12:03    [10064633]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
Glory
Member

Откуда:
Сообщений: 104751
Это вы в свой netb.sql добавили команду ?
13 янв 11, 12:41    [10065040]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
On-Lite
Member

Откуда: Bases
Сообщений: 116
А вот кстати если его помещать в sql, то он возвращает
в списке нет элементов
13 янв 11, 12:44    [10065073]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
On-Lite
Member

Откуда: Bases
Сообщений: 116
А если делать 'net use > C:\111.txt'
то вообще пишет что отказано в доступе!

Видать что то определенно с правами!
13 янв 11, 12:47    [10065097]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
Александр Спелицин
Member

Откуда: Из ближайшего подмосковья.
Сообщений: 2517
А Вы уверены, что учетная запись, которая запускает net use имеет право создавать файлы в C:\ ?
13 янв 11, 13:11    [10065341]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
On-Lite
Member

Откуда: Bases
Сообщений: 116
Можно как то переопределить учетную запись в SQL скрипте?

выполняю скрипт bat файлом
sqlcmd -S sqlserver -U sa -P pass -i netb.sql
13 янв 11, 13:18    [10065405]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
Glory
Member

Откуда:
Сообщений: 104751
On-Lite
Можно как то переопределить учетную запись в SQL скрипте?

выполняю скрипт bat файлом
sqlcmd -S sqlserver -U sa -P pass -i netb.sql

нельзя
Читать надо хелпы по командам

The Windows process spawned by xp_cmdshell has the same security rights as the SQL Server service account.
13 янв 11, 13:19    [10065417]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
On-Lite
Member

Откуда: Bases
Сообщений: 116
Люди как то делают копии БД на сетевые диски, что мне не хватает для того чтобы скрипт отрабатывал правильно?
уже и запускаю его на локальной машине, все равно результат тот же.
13 янв 11, 13:24    [10065451]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
Glory
Member

Откуда:
Сообщений: 104751
On-Lite
Люди как то делают копии БД на сетевые диски, что мне не хватает для того чтобы скрипт отрабатывал правильно?
уже и запускаю его на локальной машине, все равно результат тот же.

Вы читать умеете ?

The Windows process spawned by xp_cmdshell has the same security rights as the SQL Server service account.
13 янв 11, 13:25    [10065465]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
Александр Спелицин
Member

Откуда: Из ближайшего подмосковья.
Сообщений: 2517
On-Lite
Люди как то делают копии БД на сетевые диски, что мне не хватает для того чтобы скрипт отрабатывал правильно?

Backup непосредственно на сетевой ресурс это потенциально ненадежная операция. Обычно backup базы делается на локальный диск и затем этот файл копируется на сетевой ресурс, причем либо отдельным шагом, либо отдельным заданием планировшика, либо вообще сторонним ПО.
Если же Вам так необходим доступ к сетевым ресурсам, то лучше всего включить сервер в домен и запустить MSSQL из-под доменной учетной записи, обрезав ее в правах.

У Вас служба SQL Server-а от какой учетной записи запущена?
13 янв 11, 14:00    [10065747]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
On-Lite
Member

Откуда: Bases
Сообщений: 116
От администратора компьютера.
Но, наверное вы правы, мало ли там что с сетью случится, хаб заткнется или еще что. Вернее всего будет действительно делать бэкап на локальный диск, а потом его будет забирать удаленная машина на себя по расписанию.
13 янв 11, 14:14    [10065869]     Ответить | Цитировать Сообщить модератору
 Re: xp_cmdshell (net_use) запуск с удаленной машины возвращает другое значение  [new]
M-11
Guest
вот пример запроса на создание бекапа SQL БД по сети

USE master;
GO
EXEC sp_addumpdevice 'disk', 'bizplan64',
'\\backup\backup\SQL\bizplan64.bak';
GO
BACKUP DATABASE bizplan64
TO bizplan64
WITH FORMAT;
GO
12 дек 11, 10:40    [11747299]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить