Главная страница
    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.48 MB
Время: 0.005 c
2-1230177093
exex
2008-12-25 06:51
2009.02.08
Связать два приложения


2-1230543206
Pavel
2008-12-29 12:33
2009.02.08
Вывод в таблицу имен столбцов


15-1228968454
Дуб
2008-12-11 07:07
2009.02.08
МВо - С Днем рождения!


8-1190348540
BAHO_KEX
2007-09-21 08:22
2009.02.08
Как добавить в ListBox имена файлов


2-1230040637
Pavel
2008-12-23 16:57
2009.02.08
Подключение к базе данных





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский