Переключение на Главную Страницу Страницы: 1 [2] 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) exec sp_debhelp не возвращает строки (число прочтений - 6002 )
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: exec sp_debhelp не возвращает строки
Ответ #15 - 05. Августа 2009 :: 13:14
Печать  
avgreen писал(а) 05. Августа 2009 :: 13:09:
по всем - то фиг!

ну правильно, там же raiserror вызывается. Можно исключение поймать, а рекордсета не будет.
  
Наверх
 
IP записан
 
leov-001
Full Member
***
Отсутствует


1C++ rocks!

Сообщений: 150
Зарегистрирован: 05. Марта 2009
Re: exec sp_debhelp не возвращает строки
Ответ #16 - 06. Августа 2009 :: 04:18
Печать  
Код
Выбрать все
exec dbo.sp_helpdb 


Так попробуй
  
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #17 - 06. Августа 2009 :: 05:58
Печать  
alexdd писал(а) 05. Августа 2009 :: 13:14:
avgreen писал(а) 05. Августа 2009 :: 13:09:
по всем - то фиг!

ну правильно, там же raiserror вызывается. Можно исключение поймать, а рекордсета не будет.

В том-то и дело что исключения нету. Т.е. все нормально. Но и рекордсета тоже нету блин!
Вобщем в том что проблема именно с правами у меня сомнений уже нету, т.к. попробовал пустить 1С под 'sa' - получил полный список баз. А под пользователем 'torg' нифига. Хотя в роль public базы master он входит. Какие еще права ему нужно - ума не приложу! Печаль
Когда задаешь конкретную базу - информацию по ней получаешь исправно.
Если задать несуществующую базу - как и положено ловится исключение с матюками что такой базы нету и советом вызвать sp_helpdb без параметров (еще и издевается скотина!)
А вызываешь без параметров - пустой рекордсет Печаль

Но бесит даже не это, (может действительно где-то права недораздал) а то что под QA от имени ЭТОГО-ЖЕ пользователя все выполняется на ура....
Одно слово - M$!!

P.S. dbo.sp_helpdb естественно тоже не работает
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #18 - 06. Августа 2009 :: 06:18
Печать  
berezdetsky писал(а) 05. Августа 2009 :: 12:45:
В BOL написано Цитата:
Разрешения

Если указана единственная база данных, то обязательно членство в роли public в базе данных. Если не указано ни одной базы данных, то обязательно членство в роли public в базе данных master.

Если база данных недоступна, процедура sp_helpdb выводит сообщение об ошибке номер 15622 и всю имеющуюся информацию о базе данных.
имхо не точный, а может быть и не правильный перевод.

в eng BOL сказано:
Цитата:
sp_helpdb must access the database(s) on the server to determine the information to be displayed about the database. Therefore, for each database on the server, one of these must apply:
  • The user executing sp_helpdb must have permissions to access the database.
  • The guest user account must exist in the database.
т.е. для каждой ДБ должно выполнятся условие доступности.
  

1&&2&&3
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #19 - 06. Августа 2009 :: 06:38
Печать  
trad писал(а) 06. Августа 2009 :: 06:18:
имхо не точный, а может быть и не правильный перевод.

Возможно. Также возможно, что в SQL Server 2008 (цитата оттуда) эта процедура работает несколько иначе, по сравнению с SQL Server 2000.

trad писал(а) 06. Августа 2009 :: 06:18:
в eng BOL сказано:
Цитата:
sp_helpdb must access the database(s) on the server to determine the information to be displayed about the database. Therefore, for each database on the server, one of these must apply:
  • The user executing sp_helpdb must have permissions to access the database.
  • The guest user account must exist in the database.
т.е. для каждой ДБ должно выполнятся условие доступности.

В BOL от SQL Server 2000 этот раздел завершается фразой Цитата:
If a database cannot be accessed, sp_helpdb displays error message 15622 and as much information about the database as it can.

т.е. различия не так уж велики.  Улыбка
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #20 - 06. Августа 2009 :: 06:48
Печать  
я то к тому, что автор имея доступ только к своей базе и к базе master ожидает получить список всех баз.
Цитата:
А под пользователем 'torg' нифига. Хотя в роль public базы master он входит. Какие еще права ему нужно - ума не приложу!

А вот почему error message теряется это мне тоже не понятно Улыбка
  

1&&2&&3
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #21 - 06. Августа 2009 :: 07:16
Печать  
Вероятно Нерешительный , потому, что severity, равный 10 или меньше, возвращает сообщение клиенту без генерации ошибки. А особенности реализации ODBCRecordset приводят к тому, что это сообщение не доходит.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: exec sp_debhelp не возвращает строки
Ответ #22 - 06. Августа 2009 :: 08:38
Печать  
avgreen писал(а) 06. Августа 2009 :: 05:58:
В  
Но бесит даже не это, (может действительно где-то права недораздал) а то что под QA от имени ЭТОГО-ЖЕ пользователя все выполняется на ура....
Одно слово - M$!!

В QA под тем же логином будет не совсем на ура. Если открыть закладку Messages, там сообщения - к каким базам нет доступа.

avgreen писал(а) 06. Августа 2009 :: 05:58:
В  Какие еще права ему нужно - ума не приложу! Печаль

Вот к тем, которые будут выведены в Messages в QA. У этого логина поставить птичку Permit на закладке Database Access
  
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #23 - 06. Августа 2009 :: 12:52
Печать  
trad писал(а) 06. Августа 2009 :: 06:48:
я то к тому, что автор имея доступ только к своей базе и к базе master ожидает получить список всех баз.


Ну не совсем так ...... сорри что ввел в заблуждение!
логин 'torg' является dbo для трех баз! И в master он входит как public

Т.е. IMHO оно должно было выдать как минимум 4 базы - master и три его личные. Или я не прав?
  
Наверх
ICQ  
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #24 - 06. Августа 2009 :: 13:00
Печать  
alexdd писал(а) 06. Августа 2009 :: 08:38:
avgreen писал(а) 06. Августа 2009 :: 05:58:
В  
Но бесит даже не это, (может действительно где-то права недораздал) а то что под QA от имени ЭТОГО-ЖЕ пользователя все выполняется на ура....
Одно слово - M$!!

В QA под тем же логином будет не совсем на ура. Если открыть закладку Messages, там сообщения - к каким базам нет доступа.

avgreen писал(а) 06. Августа 2009 :: 05:58:
В  Какие еще права ему нужно - ума не приложу! Печаль

Вот к тем, которые будут выведены в Messages в QA. У этого логина поставить птичку Permit на закладке Database Access

Таки да, ты прав, есть ругательства  в QA
Код
Выбрать все
No permission to access database 'KGMZ_2002'.
No permission to access database 'KGMZ_2004'.
No permission to access database 'KGMZ_2007'.
No permission to access database 'model'. 



Но эти он и не показал в RS
А вто что в RS

master    16.50 MB      sa
msdb                     16.25 MB      sa
Northwind         4.25 MB      sa
pubs                           2.50 MB      sa
tempdb      291.38 MB      sa
torg_db      28247.31 MB      torg
Torg_db_Develop        27099.25 MB      torg
Torg_db_Develop2         5632.75 MB      torg



Последние три вообще его личные .....
Но через ODBC я их как не видел так и не вижу Печаль
Точнее вижу только под SA
  
Наверх
ICQ  
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: exec sp_debhelp не возвращает строки
Ответ #25 - 06. Августа 2009 :: 13:39
Печать  
открыть учетке доступ к этим базам как Public не вариант?
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #26 - 06. Августа 2009 :: 13:41
Печать  
а быть может надо просто выполнить
Код
Выбрать все
ТекстЗапроса = "
|SET NOCOUNT ON
|exec sp_debhelp"; 

  
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #27 - 06. Августа 2009 :: 13:43
Печать  
avgreen писал(а) 06. Августа 2009 :: 12:52:
Т.е. IMHO оно должно было выдать как минимум 4 базы - master и три его личные. Или я не прав?

Не совсем..  Улыбка ODBCRecordset, в отличие от QA, возвращает только один результат - первый. Да и тот, по моему, не любого типа. Т.е. в лучшем случае, ты можешь ожидать получить только первое сообщение 'No permission...'.

Другими словами, в твоём случае, для получения списка баз придётся изменить или запрос, или механизм доступа к данным.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #28 - 06. Августа 2009 :: 14:35
Печать  
alexdd писал(а) 06. Августа 2009 :: 13:39:
открыть учетке доступ к этим базам как Public не вариант?

Вариант! Причем вариант рабочий! Улыбка
  
Наверх
ICQ  
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: exec sp_debhelp не возвращает строки
Ответ #29 - 06. Августа 2009 :: 14:46
Печать  
berezdetsky писал(а) 06. Августа 2009 :: 13:43:
avgreen писал(а) 06. Августа 2009 :: 12:52:
Т.е. IMHO оно должно было выдать как минимум 4 базы - master и три его личные. Или я не прав?

Не совсем..  Улыбка ODBCRecordset, в отличие от QA, возвращает только один результат - первый. Да и тот, по моему, не любого типа. Т.е. в лучшем случае, ты можешь ожидать получить только первое сообщение 'No permission...'.

Другими словами, в твоём случае, для получения списка баз придётся изменить или запрос, или механизм доступа к данным.


Ёшкин кот!!!! Заработало! Сделал как предложил ув. alexdd и заработало!

Похоже снова те-же яйца что и в http://www.1cpp.ru/forum/YaBB.pl?num=1248353594 переполнение буфера сообщений. Хотя там не такие длинные сообщения в принципе.
Т.е. ВСЕ базы должны быть public. Если есть хотя-бы одна полностью недоступная - через ODBC я список не поучу. БЛИН! Прикольная вещь ODBC! Мне она все больше нравится Улыбка  Плачущий    это смех сквозь слезы

Всем огромное спасибо за помощь в решении проблемы!
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 
ОтправитьПечать