Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.009 c
15-1229203553
Riply
2008-12-14 00:25
2009.02.08
Хочу сказать спасибо :)


15-1228389664
ANB
2008-12-04 14:21
2009.02.08
Кризис добрался до меня


2-1230221363
dmitry_12_08_73
2008-12-25 19:09
2009.02.08
Как получить список всех форм проекта


3-1214828875
Drowsy
2008-06-30 16:27
2009.02.08
Operation violates CHECK constraint on view or table


15-1228816032
Petr V. Abramov
2008-12-09 12:47
2009.02.08
Работа кипит