Форум: "Базы";
Поиск по всему сайту: 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.024 c
6-9255            Rogue                 2001-12-18 13:24  2002.03.04  
Список всех файлов в директории через http


3-9067            irq                   2002-02-06 13:05  2002.03.04  
Множественные изменения


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


1-9161            vic_774N              2002-02-13 20:51  2002.03.04  
как получить интерфейс IUnknown


1-9171            VID                   2002-02-14 09:15  2002.03.04  
Необязательные параметры функции