|
|
|
вопрос общего характер
|
|||
|---|---|---|---|
|
#18+
кто нибудь может посоветовать, может у кого нить есть наработки, поделитесь если не жалко. мне нужно синхронизировать разграничение прав на сервере (interbase) и на клиенте. можно ли сделать так, чтоб было более менее универсально, ато у меня получается что при загрузке приложения-клиента мне приходится делать очень много проверок, врезультате некоторые кнопки бокируются, некоторые становятся невидимые, etc. но при добавлении новой функции в приложение клиент, или при создании новой таблицы в базе, надо будет все заново прописывать... можно ли как то этот процесс оптимизировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 13:53 |
|
||
|
вопрос общего характер
|
|||
|---|---|---|---|
|
#18+
Я когда-то делал так: Подключение к БД выполняется в 2 этапа. Сначала выбирается пользователь БД, а потом оператор. Собственно права операторов могут храниться в отдельной таблице в самой БД в виде битовых масок, к примеру (или строк). Оператор программы подключается под пользователем БД, которому можно только читать список операторов и их права, после чего выбирает себя из списка операторов и переподключается с тем же пользователем БД, что и первый раз, и ролью, которая прописана ему в таблице операторов. Все формы клиентского приложения удобно наследовать от одной базовой, где и делать проверку прав и, в зависимости от этого, блокировать или раблокировать кнопки ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 14:56 |
|
||
|
вопрос общего характер
|
|||
|---|---|---|---|
|
#18+
Я делал маленько иначе По все логике вещей база данных сама должна контролировать доступ и не в коем случае не клиент. Отсюда простой вывод. пусть клиент делает что хочет, в случае ошибки ему можно сгенерировать исключение, где и сообщить ему что он не прав. В этом нет ничего страшного. Кстате, могу кинуть исходник коротенькой процы, которая генерирует произвольное текстовое сообщение в качестве исключения. Например можно написать: 'Это тестовое сообщение №'||35 и в результате клиенту прилетит: "Это тестовое сообщение №35" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 03:08 |
|
||
|
вопрос общего характер
|
|||
|---|---|---|---|
|
#18+
единственное что мне приходит в голову, это изменение эескепшена на лету в системной таблице. так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 06:52 |
|
||
|
вопрос общего характер
|
|||
|---|---|---|---|
|
#18+
alex_k именно так. И после генерируется тот самый exception. Т.к. после исключения применить транзакцию нельзя, то не применяется и изменение в системной таблице. Так что никто не замечает подмены, а кленту летит то что нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 08:06 |
|
||
|
вопрос общего характер
|
|||
|---|---|---|---|
|
#18+
вообще, хотелось бы иметь генерируемое исключение, а то мало-ли, к тому же пользователю, вызывающему ХП надо ведь дать доступ на изменение системной таблицы... может во второй версии сделают.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 10:15 |
|
||
|
вопрос общего характер
|
|||
|---|---|---|---|
|
#18+
to StarWind Кстате, могу кинуть исходник коротенькой процы, которая генерирует произвольное текстовое сообщение в качестве исключения. Киньте мне пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 14:40 |
|
||
|
вопрос общего характер
|
|||
|---|---|---|---|
|
#18+
значит текст Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. а по поводу безопасности... достаточно дать разрешение проце на изменение таблицы , а клиенту на исполнение процы и все будет нормалек. Клиент не будет править системную таблицу напрямую, зато сможет юзать процу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2003, 03:46 |
|
||
|
вопрос общего характер
|
|||
|---|---|---|---|
|
#18+
есть такой подход : не давать пользователю напрямую работать с таблицами - все посредством встроенных процедур которые и контролируют действия и права пользователей. Иногда помогает когда подход со стандартными правами и ролями не подходит... такое иногда случается. У процедуры параметр - юзер и пароль а дальше проца решает можно юзеру делать то что он хочет или нет. Немного сложно и с элементами изврата но кому щас легко ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2003, 12:46 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32246354&tid=1580059]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
180ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 484ms |

| 0 / 0 |
