С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
2 / 2 / 1
Регистрация: 21.12.2012
Сообщений: 53
1

Организация политик и прав доступа к БД

23.10.2015, 15:38. Показов 974. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот задался недавеча вопросом. Может кто в курсе, правильно ли будет проверку прав доступа делать при каждом обращении к какому-либо элементу либо при загрузке приложения сразу определить?
но тут же может возникнуть вопрос, а если в какой-нить форме есть какой-нить Тлист, который не просто привязан к запросу, а меняется по ходу программы. И естественно каждый раз надо проверять из БД права. Конечно можно какую табличку сбацать но...
Вопрос - правильно ли что права проверяются по ходу работы приложения ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.10.2015, 15:38
Ответы с готовыми решениями:

Разделение прав доступа
Возник вопрос по реализации администрирования в Access. Вижу это так: 1. Пользователь включает...

Задание прав доступа
Создать новую базу данных. Пользователи: Иванов, Петров, Сидоров, Васильев, Смирнов, Деточкин...

Настройка прав доступа
Подскажите, как настроить права доступа. А то автоботы достали уже, размещают темы не по теме.

Настройка прав доступа
вопрос не по программированию но все же по 1С. Настраивал нового человека (себя). Зашел через...

8
5571 / 4422 / 1079
Регистрация: 29.08.2013
Сообщений: 27,663
Записей в блоге: 3
23.10.2015, 15:57 2
тут все от задачи зависит
если у вас посекундный мониторинг какой-то штуки, то тут ежесекундный запрос прав только замедлит запрос
1
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
23.10.2015, 16:33 3
Цитата Сообщение от nikita1981 Посмотреть сообщение
какой-нить Тлист, который не просто привязан к запросу, а меняется по ходу программы
И пусть себе меняется на здоровье ..

Но как только будет попытка сохранения изменений БД - вот тут сервер должен дать отлуп (в виде исключения или или еще каким-то образом - не суть как важно), если на момент попытки у инициатора изменений не оказалось достаточных привелегий на выполнение данной операции.

Ну это как вариант, довольно простой и удобный при 3-хзвенной архитектуре.

При 2-хзвенной дело осложняется - проверку наличия привелегий придется выполнять либо на стороне СУБД в триггерах и ХП (если они там вообще возможны и используются) либо на стороне приложения- "толстого клиента" (что размазывает бизнес-логику, делает ее хлипкой и ненадежной, добавляет немало геморроя при сопровождении и масштабирования системы в целом)
1
2 / 2 / 1
Регистрация: 21.12.2012
Сообщений: 53
23.10.2015, 21:40  [ТС] 4
... итак, чтоб каждый раз не обращаться на сервер MySQL за "а можно? ну пжалста"-неа или ок". У меня есть исходная "таблица", кот-я получается путем выборки данных из нескольких таблиц (права для тек.пользователя). Эта табличка получается используя запрос (назовём MyQuery). И не буду его закрывать. Ведь результат же будет на клиенте. Не буду менять SQL.Text. в моем myQuery буду фильтровать в нужные моменты, тем самым определяя можно или нет какое либо действие. Главное я так понял, что надо после запрета/исполнения, это возвращать myQuery в обратное состояние. Но-фильтровка пусть и на клиенте не вызовет ли сильного торможения? Но вообще читал,что лучше myTable применять если на клиенте выборки делаешь. Может в myTable загнать при загрузке права? И если идти таким путем- красиво получится-поменял права если надо.Перезапустил базульку. вроде так принято...
0
2 / 2 / 1
Регистрация: 21.12.2012
Сообщений: 53
17.12.2015, 11:21  [ТС] 5
Хочу в обыкновенный ТриЛист загрузить дерево компонентов.Может у кого есть пример? Или хотя бы построить на основе СтрингГрида ТриЛист. В стрингГриде есть-ключевое поле ID и родительское IDPar ну и имя компонента. Не хочу использовать БД.

Добавлено через 19 минут
в Delphi
0
5571 / 4422 / 1079
Регистрация: 29.08.2013
Сообщений: 27,663
Записей в блоге: 3
17.12.2015, 11:35 6
nikita1981, дерево каких компонентов?
0
2 / 2 / 1
Регистрация: 21.12.2012
Сообщений: 53
17.12.2015, 12:33  [ТС] 7
дерево компонентов пусть хоть на текущей форме. всех компонентов на форме для начала.
типа такого.
Организация политик и прав доступа к БД


может есть пример построения TreeList из допустим имеющегося StringGrid, где есть ключ.поле и родительское (условно)?
0
5571 / 4422 / 1079
Регистрация: 29.08.2013
Сообщений: 27,663
Записей в блоге: 3
17.12.2015, 12:36 8
обходите все компоненты на форме, если Parent не Form1, то добавляйте как child
1
2 / 2 / 1
Регистрация: 21.12.2012
Сообщений: 53
17.12.2015, 23:24  [ТС] 9
получилось . теперь только нюансы да ограничения всякие...
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
node:= cxtreelistForm.AddFirst;
 
for I := 0 to AForm.ComponentCount - 1 do
           begin
             if (AForm.Components[i].HasParent)
             then
             begin
 
                node:=cxtreelistForm.AddChild(cxTreeListForm.FindNodeByText(AForm.components[i].GetParentComponent.Name,cxTreeListFormName));
 
                node.values[cxTreelistFormName.ItemIndex]:=AForm.components[i].Name;
 
             end;
 
           end;
Добавлено через 18 минут
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
node:= cxtreelistForm.AddFirst;
node.values[cxTreelistFormName.ItemIndex]:=AForm.name;
 
for I := 0 to AForm.ComponentCount - 1 do
           begin
             if (AForm.Components[i].HasParent)
             then
             begin
 
                node:=cxtreelistForm.AddChild(cxTreeListForm.FindNodeByText(AForm.components[i].GetParentComponent.Name,cxTreeListFormName));
 
                node.values[cxTreelistFormName.ItemIndex]:=AForm.components[i].Name;
 
             end;
 
           end;
Если точнее. пусть будет тут, мелочь,но бівает как застопоришься.... 2+2=5 получается
0
17.12.2015, 23:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2015, 23:24
Помогаю со студенческими работами здесь

Ошибка прав доступа
#include "pch.h" #include <iostream> #include <fstream> #include <string> using namespace std;...

Нарушение прав доступа...
помогите плз с кодом, я уже мозг сламал не могу понять где там ошибка в правах доступа....вот...

Распределение прав доступа
Здравствуйте! Прошу помочь с определением алгоритма, можно пример кода для такой задачи: В...

Нарушение прав доступа
Подскажите пожалуйста! Я создала пользователей системы, определила им роли, которые прописаны в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru