Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Безопасность mssql2000 или ёжик в тумане [D6, MSSQL]


Vlad2 ©   (2002-09-05 11:19:00) 

Здравствуйте !
Помогите разобраться.
delphi6, ado, mssql2000
На сервере существует процедура spname, её владелец cornet.
Когда клиент вызывает процедуру spname как adosp.ProcedureName = spname, сервер сообщает "could not find stored procedure "spname" ". Если на сервере изменить владельца sp на dbo: cornet.spname -> dbo.spname, клиентское приложение работает верно. Права на выполнение cornet.spname, конечно, прописаны. Получается, что провайдер sql формирует полное имя объекта как [dbo].[имя процедуры], но на клиенте adoConnection видит (!) cornet.spname. Почему я не могу обратиться к видимому объекту ?


Vlad2   (2002-09-05 12:39:00) [1]

> Shaman_Naydak
Да, да, спасибо. И ещё, умные люди говорят, что вначале сервер ищет объект [userName].[objectName], затем [dbo].[objectName], а потом ругается. Вывод, наверное такой: при создании storedProcedure указывать полное имя, т.е. [owner].[nameStoredProc].
"И все будет путем!"


Shaman_Naydak   (2002-09-05 12:29:00) [2]

Если я правильно понял adosp - это TADOStoredProcedure.

В общем, беда тут такая..
показывает он список процедур без владельцев, а вот вызвать их, не указывая владельца можно только для dbo-шных..НО
Кто мешает тебе указывать полное имя процедуры?
Присаваивай ProcedureName:=cornet.spName
И все будет путем!


Наверх

Титульная страница Поиск, карта сайта Написать письмо