powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Организация разделения прав доступа
25 сообщений из 36, страница 1 из 2
Организация разделения прав доступа
    #32632581
Tellur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Передо мной стоит такая задача:
Написать систему с использованием InterBase6.0 и Delphi6 в которой бы предусматривалось разграничение прав пользователей не только по самим правам но и по данным. То есть например есть таблица с полем 'dtype', надо сделать так что бы для каждого пользователя можно было устанавливать его права на каждый тип документа (создание, чтение, изменение, удаление).
У меня есть 2 варианта:
1. Реализовать разграничение прав средствами InterBase.
2. Не предоставлять клиентской программе соединения с сервером InterBase вообще, а написать (тоже на Delphi) программу сервер, с которой и будут соединяться клиенты. Запросы будут передаваться в ввиде идентификаторов, ответы тоже в raw-формате.

Может кто-нибудь делал что-либо подобное. Можно ли это реализовать первым вариантом и как? (я сам еще не работал с InterBase)
На счет второго то я уверен, что можно, только как-то неказисто получится.
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32632639
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
обычно дают права только на хранимые процедуры, и в ХП проверяют права, показывать или нет. делают процедуры для просмотра и для изменения
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32632687
Tellur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но этож придется делать свою таблицу юзверов и их прав. И каким нибудь макаром синхронизировать с системными. А я где-то читал что через SQL нельзя создать пользователя.
Вот поэтому я и спрашиваю: это вообще реально? кто-нибудь делал?
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32632697
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
лично я делал свои таблицы юзеров и прав. мне даже это больше нравится. а вот местные гуру может подскажут, например, как вытянуть текущего интербейсного юзера в процедуре. вытягиваете, проверяете права и либо отлуп с эксепшеном либо выполняете действие

таблицу прав придется таки делать
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32632715
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создать пользователя через sql можно, конечно. а как же еще. ibexpert все движения мыши и нажатия кнопок передает в сервер как команды sql

есть еще вариант для большего запутывания вас: Add_User в rfunc ;)
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32632720
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
достать текущего интербейсного пользователя и др. инфо

/topic/100906&hl=current_user#749793
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32633140
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tellur
1. Реализовать разграничение прав средствами InterBase.
2. Не предоставлять клиентской программе соединения с сервером InterBase

Если хош чоб все было красиво...
Например в менюшках небыло некоторых пунктов или они не выбирались в соответствии с правами пользователя... прийдется делать таблички для перечня объектов форм с указанием прав доступа и на OnShow проставлять им Visible и Enabled.
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32633181
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Енто все хорошо... Но очень часто объекты реального мира неоднозначно отображаются на копоненты реалиционных таблиц. Вариант, как сказано выше - давать доступ не к таблицам (к ним все - запретить нахрен), а к процедурам, реализующим функциональность. Однако бывает несколько геморно на каждый чих реализовавыть свою ХП. И заказчик бывает такой, что полный абзац, не один пакет грант/ревоке испортишь, пока его ублажишь. Последний раз я сдел все на клиенте, реализовав все пользовательские действия через дельфийские TActionList's, слегка дописав последний - при попытке от'энейблить (извините, девушки) или от'визиблить этот конкретный экшн этому конкретному юзеру проверяются его права. Мне кажется, такая схема позволяет более точно соответствовать требованиям объектов реального мира.

Не кидайтесь камнями...
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32633186
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И в менюшках все шоколадно получается (как бонус - "само собой"), если, конечно, пункты менюшек на основе списка экшна делать.
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32633268
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 mv
так настройки визибол и т.д. можно в БД хранить, сделать несколько табличек и при подклшючении делать селект и отображать то что нужно...
конечно придётся делать таблицу пользователей, ну и что, ничего страшного...
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32633272
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно, можно, но я не об этом - а об объектах, к которым огрничивается доступ.
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32633297
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот у нас так и сделано, есть в БД таблицы доступа пользователей к объектам, при запуске по пользователю делается селект и устанавливаются соответствующие визиблы и энабледы...
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32634190
Tellur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, конечно. Но всякие визиблы и энейблы это, насколько я понимаю, дело пятое, потому что такую защиту (визиблами и энейблами) можно обойти за пару минут.
Защиту надо делать через ХП, и насколько я понил другого способа нет?
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32634197
Tellur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще один вопрос по этой же задаче.
Есть таблица договоров. Договора бывают действующие и закрытые (архив договоров). Основная работа ведется, естественно, с действующими договорами. Вопрос в следующем: стоит ли хранить их в одной таблице или разбить на две (по идее это должно повысить производительность)?
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32634222
olol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TellurСпасибо, конечно. Но всякие визиблы и энейблы это, насколько я понимаю, дело пятое, потому что такую защиту (визиблами и энейблами) можно обойти за пару минут.
Защиту надо делать через ХП, и насколько я понил другого способа нет?

Это интересно как ?!!!

Если войдя в прогу ты получаешь права только на свои действия...
(Например на изменение только определенных полей в документе) и добавить себе прав из самой проги ни-как...

В случае подклучения к базе другим способом (IBExpert и прочее...) ты должон знать - где она и як к ней подключиться...
По скольку прога к базе могет цепляться совсем с другим именем и паролем...

А уж если юзверь знат как это сделать - то и какая ХП ему помешает изменить данные в табле напрямую из броуса... и натворить прочих дел...

Тебе права нужны для распределения доступа к данным пользователей или для защиты от хакеров ?

автор
...разбить на две (по идее это должно повысить производительность)?


Разбивать нужно только в крайнем случае (большие объемы информации которую необходимо хранить, но с ней не работают...)
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32634250
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TellurИ еще один вопрос по этой же задаче.
Есть таблица договоров. Договора бывают действующие и закрытые (архив договоров). Основная работа ведется, естественно, с действующими договорами. Вопрос в следующем: стоит ли хранить их в одной таблице или разбить на две (по идее это должно повысить производительность)?
ИМХО, разбивать не следует, лучше поле признака добавить...
но если у Вас там миллионы договоров в архиве, тогда пробовать надо...
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32634267
Tellur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ololЭто интересно как ?!!!Это пятиминетное дело с помощью API функций EnableWindow, ShowWindow.

ololА уж если юзверь знат как это сделать - то и какая ХП ему помешает изменить данные в табле напрямую из броуса... и натворить прочих дел...Я вообще до этого работал только с MySQL. Но что-то я не понял что же это получается нельзя на InterBase написать нормально распредереление прав (защиту от хакеров - если Вам так больше нравится)?
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32634309
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господин Tellur, когда-то я тоже делал свою первую программу на IB и меня тоже волновали проблемы, что мне в инструкции написать, на дискете отдать или на болванку разориться, и особенно как я буду получать деньги от заказчика и в какой валюте. Все это было еще до первой строчи кода.
А потом понял - лучше сначала напишука я прогу, а потом о мелочах подумаю.
Так и Ваши проблемы с безопасностью. Важно наверное, но не в первую голову о них думать надо, особенно если Вы ... "я сам еще не работал с InterBase".
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32634619
Somebody2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tellur ololЭто интересно как ?!!!Это пятиминетное дело с помощью API функций EnableWindow, ShowWindow.

Я в Виндузах слаб, может чего не знаю, но если так:

Код: plaintext
1.
2.
3.
4.
procedure TForm1.SomeControlEnter(Sender: TObject);
begin
 if (figvam) then enablewindow(twincontrol(Sender).Handle,false);
end;

?
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32634679
Somebody3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Somebody2
Я в Виндузах слаб, может чего не знаю, но если так:

Код: plaintext
1.
2.
3.
4.
procedure TForm1.SomeControlEnter(Sender: TObject);
begin
 if (figvam) then enablewindow(twincontrol(Sender).Handle,false);
end;
Почти так. Только хендл окна ты так просто не получишь, ведь ты не будешь исполнять этот код в контексте клиентского приложения - надо использовать FindWindowEx. И вторым параметром передавать true
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32634812
Somebody2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Somebody3 Somebody2
Я в Виндузах слаб, может чего не знаю, но если так:

Код: plaintext
1.
2.
3.
4.
procedure TForm1.SomeControlEnter(Sender: TObject);
begin
 if (figvam) then enablewindow(twincontrol(Sender).Handle,false);
end;
Почти так. Только хендл окна ты так просто не получишь, ведь ты не будешь исполнять этот код в контексте клиентского приложения - надо использовать FindWindowEx. И вторым параметром передавать true

Чего это я не получу. Handle это проперти объектов произошедших от
twincontrol. Если хочу, чтоб контрол был disabled, просто устанавливаю
обработчик события и дизэблю нужный control, а искать его как раз
злоумышленнику надо. Но как только он его найдет и разрешит через
EnableWindow, то при попытке сфокусировать данный контрол окно опять станет неактивным.

Или где?
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32634834
Somebody2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Somebody2 Somebody3 Somebody2
Я в Виндузах слаб, может чего не знаю, но если так:

Код: plaintext
1.
2.
3.
4.
procedure TForm1.SomeControlEnter(Sender: TObject);
begin
 if (figvam) then enablewindow(twincontrol(Sender).Handle,false);
end;
Почти так. Только хендл окна ты так просто не получишь, ведь ты не будешь исполнять этот код в контексте клиентского приложения - надо использовать FindWindowEx. И вторым параметром передавать true

Чего это я не получу. Handle это проперти объектов произошедших от
twincontrol. Если хочу, чтоб контрол был disabled, просто устанавливаю
обработчик события и дизэблю нужный control, а искать его как раз
злоумышленнику надо. Но как только он его найдет и разрешит через
EnableWindow, то при попытке сфокусировать данный контрол окно опять станет неактивным.

Или где?

А кажись понял. Тут по моему ответу можно подумать, что я олол-у отечаю, на самом деле я это насчет
автор
Это пятиминетное дело с помощью API функций EnableWindow, ShowWindow.
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32634898
Somebody3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Somebody2Чего это я не получу. Handle это проперти объектов произошедших от
twincontrol. Если хочу, чтоб контрол был disabled, просто устанавливаю
обработчик события и дизэблю нужный control, а искать его как раз
злоумышленнику надо. Но как только он его найдет и разрешит через
EnableWindow, то при попытке сфокусировать данный контрол окно опять станет неактивным.А ну если ты это для защиты то да, так пойдет. Я то было подумал ты про то как эту защиту обойти...
Ну и этот вариант с авто-дизэйблом тоже можно обмануть, правда это займет немного больше чем 5 минут.
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32634901
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Спасибо, конечно. Но всякие визиблы и энейблы это, насколько я понимаю, дело пятое, потому что такую защиту (визиблами и энейблами) можно обойти за пару минут.


Что за бредятина! Любая (почти) незашифрованная база, поставляемая вместе с приложением, всегда доступна с помощью средств ее администрирования. Методы защиты InterBase основываются на том, что файлы базы физически лежат в недоступном для юзеров месте , которое, однако, известно (Хост:Диск:Полный_Путь для TCP/IP, например, или Хост:Алиас - для FireBird). А уж если юзер получает файл базы в руки - тогда плевать на все гранты/роли/пароли...
...
Рейтинг: 0 / 0
Организация разделения прав доступа
    #32634963
Somebody2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Somebody3
Ну и этот вариант с авто-дизэйблом тоже можно обмануть, правда это займет немного больше чем 5 минут.

И как, если не секрет? Принцип действия, если можно

P.S. Ты б ник сменил чтоль, а то тут уже наверное думают, что это я сам собою разговариваю или что у меня раздвоение личности
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Организация разделения прав доступа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]