Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];




Вниз

Права пользователя 


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 заводишь табличку
с логинами а при запуске проги смотришь
что за логин такой и что он может делать а что нет !




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.029 c
1-9106            Galy                  2002-02-15 11:21  2002.03.04  
Я заглючила основательно


4-9328            Evgeny                2001-12-22 12:53  2002.03.04  
URL


1-9200            KS                    2002-02-13 15:36  2002.03.04  
Borland Delphi


1-9180            who                   2002-02-14 10:05  2002.03.04  
Передача параметров из exe в exe


1-9218            avk                   2002-02-15 11:33  2002.03.04  
ListBox переход на следующую строку...