Главная страница
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.014 c
15-1228573398
DeadMeat
2008-12-06 17:23
2009.02.08
GPS vs ГЛОНАСС


15-1229321086
Slider007
2008-12-15 09:04
2009.02.08
С днем рождения ! 15 декабря 2008 понедельник


15-1229106194
barbaroska
2008-12-12 21:23
2009.02.08
Распознавание цифр


2-1230552062
Golden
2008-12-29 15:01
2009.02.08
Получить номер билда моего приложения


15-1229069695
Slider007
2008-12-12 11:14
2009.02.08
С днем рождения ! 12 декабря 2008 пятница