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

Вниз

Права пользователя   Найти похожие ветки 

 
Frog   (2002-02-04 17:22) [0]

Доброго всем дня!

Вопрос такой - пользователю MS SQL запрещено добавление записей в таблицу. Но если в программе дается Table.Insert и затем Table.Post, то сообщение об ошибке появляется только в момент. когда выполняется Post, а до того времени пользовател пребывает в уверенности, что у него есть все права. Хотелось бы узнавать права пользователя еще в момент BeforeInsert и выдавать сообщение типа "У Вас не хватает прав для добавления записи". Вопрос - как это сделать. Спасибо


 
Delirium ©   (2002-02-04 17:26) [1]

Всё правильно, сервер-то узнаёт что юзер хочет что-то добавить именно в момент post-а.


 
Delirium ©   (2002-02-04 17:28) [2]

Можно сделать так:
1) insert + post - тут ошибка или права есть
2) edit ... post - сами изменения


 
TSV ©   (2002-02-04 17:47) [3]

Тогда все поля должны иметь значение по умолчанию или nullable.
ИМХО, пользователь заранее должен быть осведомлен о своих правах.


 
Леша   (2002-02-05 05:01) [4]

Перед открытием формы стывай права для таблиц с которыми работает форма, присваевай их переменным и при инзерте проверяй значение переменной.


 
Roma ©   (2002-02-07 12:20) [5]

2TSV>
И программа тоже должна быть осведомлена о его правах... ;)))

На мой взгляд, такие вещи должны быть предусмотрены еще в момент проектирования. Т.е., если пользователь не должен делать изменения (может только просматривать данные), то даже возможности сделать эти изменения ему не должно быть предоставлено (соответствующие кнопки, например, недоступны)...
Можно из системных таблиц вытаскивать информацию о правах, но лично я склоняюсь к мнению, что системные таблицы лучше трогать поменьше. Потому что они - для сервера, и при переносе версии Вашей программы с одного сервера БД под другой (или даже с одной версии сервера БД под другую) могут возникнуть проблемы...
А можно сделать таблицу, например, UserRights, с соответствующими полями, и там хранить, что пользователь с конкретным логином может делать, а что нет. В этом случае придется дополнительно писать т.н. рабочее место администратора, который будет эти самые права раздавать. Но зато можно будет сделать очень продвинутое разграничение прав и возможностей пользователей в Вашем программном комплексе, и работать это будет под самыми разными СУБД...

Что-то меня понесло... ;))) Проектирование - любимая тема... ;)))


 
MetallAdm ©   (2002-02-07 12:28) [6]

Да Да именно как сказал Roma заводишь табличку
с логинами а при запуске проги смотришь
что за логин такой и что он может делать а что нет !



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

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

Наверх




Память: 0.48 MB
Время: 0.009 c
7-9310
Leviathan
2001-11-26 17:17
2002.03.04
Два вопроса... :)


1-9191
besen-ok
2002-02-14 15:58
2002.03.04
как двум созданным в рантайме компонентам присвоить один и тот-же обрабитчик событый ?


7-9306
Leviathan
2001-11-29 15:16
2002.03.04
Нажимаем виртуально на кнопку :))


1-9237
dim2001
2002-02-13 19:48
2002.03.04
стандартный диалог


1-9243
Октябрь
2002-02-15 20:47
2002.03.04
Extended и String?????