Текущий архив: 2009.02.08;
Скачать: CL | DM;
Вниз
Как организовать работу с БД через хранимые процедуры? Найти похожие ветки
← →
девушка (2008-12-22 16:08) [0]Добрый день!
БД MS SQL 2005, Delphi 2005, ADO.
Собственно говоря, на самомо деле вопрос стоит: как лучше организовать разграничение прав пользователей на уровне базы и на уровне приложения.
На данный момент идея следующая: пользователи могут выбирать и редактировать НД только с помощью ХП.
В БД создаем роль my_role и ХП my_proc вида:select * from my_table
В приложении: вызываем ХП из TADODataSet, вешаем dbcontrols - пользователь может все видеть.
Если пользователю назначаем право execute на my_proc - то выборка проходит, если нет - то, естественно, нет.
Еси пользователь редактирует НД через dbcontrols и имеет права на таблицы данного НД - то исправление записи происходит успешно.
Задача в том, чтобы НЕ ДАВАТЬ пользователю права на ТАБЛИЦЫ. а давать их только на ХП. MS SQL для меня внове, не подскажете как это сделать и в том ли направлении я иду?
← →
Медвежонок Пятачок © (2008-12-22 16:11) [1]Еси пользователь редактирует НД через dbcontrols и имеет права на таблицы данного НД - то исправление записи происходит успешно.
Задача в том, чтобы НЕ ДАВАТЬ пользователю права на ТАБЛИЦЫ
сама спросила, сама ответила.
← →
девушка (2008-12-22 16:15) [2]
> сама спросила, сама ответила.
ничего не поняла... так пользователю придется дать права на таблицы?
всмысле я не знаю, как и можно ли назначит права на ХП, чтобы сделать ей только на чтение или чтение/запись...
← →
Ega23 © (2008-12-22 16:17) [3]
> так пользователю придется дать права на таблицы?
По-хорошему - да.
← →
девушка (2008-12-22 16:18) [4]
> По-хорошему - да.
А по-плохому можно???
← →
Ega23 © (2008-12-22 16:29) [5]
> А по-плохому можно???
Можно. Читай про Grand и Revoke
← →
Правильный$Вася (2008-12-22 16:31) [6]
> пользователи могут выбирать и редактировать НД только с помощью ХП
> ХП my_proc вида: select * from my_table
и нафига такие танцы?
← →
Ega23 © (2008-12-22 16:35) [7]
> и нафига такие танцы?
Ну иногда смысл имеет.
← →
девушка (2008-12-23 08:19) [8]Зорошо, допустим забили пока на ХП.
Для таблицы CUSTOMER создаю вьюшку V_CM_CUSTOMER, где назначаю нужные мне условия. Даю пользователю права на чтение/редактирование вьюшки V_CM_CUSTOMER, на саму таблицу CUSTOMER прав не даю.
На клиента гружу НД запросом вида:select * from V_CM_CUSTOMER
Редактируею через dbcontrols.
В итоге на сервер получаю запросupdate CUSTOMER set ...
Почему не возвращает запрос :update V_CM_CUSTOMER set ...
который мне нужен?
← →
девушка (2008-12-23 09:22) [9]ответ нашла http://delphimaster.net/view/1-1121844784/
это уже фишка ms sql
> MOA © (20.07.05 13:17) [9]
> Без текста сложно догадаться о конкретной причине. Однако
> попробуйте (или посмотрите в BOL)
> CREATE VIEW name WITH VIEW_METADATA ...
> Посмотрите, при апдейтах может пригодится и
> WITH CHECK OPTION
> Удачи!
Страницы: 1 вся ветка
Текущий архив: 2009.02.08;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.005 c