Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

Корректная обработка доступа к процедурам MS SQL Server   Найти похожие ветки 

 
dm37   (2004-03-25 07:43) [0]

Подскажите, как правильно обработать доступ к процедурам MS SQL Server. При обработки исключения обрабатываются не только доступ, но и ошибки при выполнении процедуры.
Спасибо


 
ЮЮ ©   (2004-03-25 07:56) [1]

не проще ли права на процедуру (или даже на подмножество изменяемых данных) проверять внутри неё, открыв внешний доступ?


 
dm37   (2004-03-25 08:17) [2]

так сейчас и делается, но я думал это не совсем правильно.


 
just me   (2004-03-25 12:45) [3]

В MSSQL можно использовать role-based проверку доступа, так что просто перед вызовом процедуры вызвать IS_MEMBER


 
dm37   (2004-03-25 13:05) [4]

т.е. я проверю какой role я принадлежу, а как проверить процедура может выполнятся для данной role?
я сначала сделал доступ по role, но обрабатывал исключения, потом переделал на проверку доступа непосредственно в процедуре (как предлагал ЮЮ).
Получается корректно не обработать? Скажем выполняем процыдуру и получаем код ошибки, или сначала проверить доступ к процедуре а потом выполнять (например, CheckAccess(ProcedureName))?


 
just me   (2004-03-25 13:09) [5]

Проверяем и выполняем, если имеем на это право


 
KSergey ©   (2004-03-25 18:32) [6]

А можно подробнее исходную задачу? Личн омне не совсем понятно чем отличается ситуация запрета от ошибки в коде? Важно, что она не выполнилась должным образом.
К тому же по идее, как я понимаю, в коде отлаженых ХП не должно быть ошибок... ;) Т.е. остается только запрет доступа. Или я что-то недопонимаю?


 
dm37   (2004-03-26 06:08) [7]

исключительная ситуация возникнет также если пропадет связь с SQL Server, которую тоже надо обрабатывать. Причем каждая ситуация обрабатывается по разному: в одном случае выдается сообщение, в другом сообщение и попытка восстановления связи с SQL Server. Поэтому их надо обрабатываь раздельно.

to just me:
в BOL:
IS_MEMBER
Indicates whether the current user is a member of the specified Microsoft® Windows NT® group or Microsoft SQL Server™ role.
Syntax
IS_MEMBER ( { "group" | "role" } )

Программа клиента не знает какие процедуры при какой role выполняются (сегодня имеется разрешение на выполнение завтра нет).
Если бы вместо role было имя процедуры, тогда все бы работало.

Видимо остается обрабатывать доступ в самой процедуре.



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

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.028 c
8-1074632807
Hawk
2004-01-21 00:06
2004.04.25
Постепенное наращивание качества при передачи изображения


1-1081274081
GanibalLector
2004-04-06 21:54
2004.04.25
StringGrid


9-1067508215
Mat
2003-10-30 13:03
2004.04.25
События onMouseMove (Down, Up) у спрайтов (DelphiX)


3-1080200885
avgur
2004-03-25 10:48
2004.04.25
Киньте, кому не жалко библиотеку netdir.dll по мылу


8-1074540760
nonameoo
2004-01-19 22:32
2004.04.25
Полноэкранный режим