powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Доступ!
21 сообщений из 46, страница 2 из 2
Доступ!
    #34517972
Alexandr Minzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в своих CSP приложениях "заставляем работать" следующим образом:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<SCRIPT language="JavaScript">
var fun=setTimeout("ReCon();", 600000 );
function ReCon()
{
	var rez=#server(Lib.Utils.ReCon())#;
	var fun=setTimeout("ReCon();", 600000 );
	return true;
}
</SCRIPT>
Метод ReCon() возвращает, например, 1.
...
Рейтинг: 0 / 0
Доступ!
    #34518012
aleshap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно использовать совместно куки и сессии, тогда не надо постоянно поддерживать их жизнь.
...
Рейтинг: 0 / 0
Доступ!
    #34518123
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleshapМожно использовать совместно куки и сессии
Примерчик с куками можете подогнать?

С куками проблема... Пользователь их может отключить... :(
...
Рейтинг: 0 / 0
Доступ!
    #34518598
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaНаши пользователи очень любят зайти в приложение и ничего в нем не делать... Таймаут кончается... Сессия помирает... :(
Потом они загораются желанием поработать но уже поздно. :)
Вот отсюда ноги и растут...
----------
Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT

Дык про то и речь - почему приложение себя так ведет ? Оператору предположим делать нечего - а приложению ? Даже TCP-приложение "поддерживают коннект" - не так ли.
...
Рейтинг: 0 / 0
Доступ!
    #34519651
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотел бы пару моментов написать, но не про сессии (поведение, которых, кстати, изменилось в Cache' 5.1. по сравнению с более ранними версиями), а про хранения пользователей, роли пользователей, их привелегии и т.д.

Для хранения информации о пользователях рекомендую использовать стандартные возможности Cache' 5.1, 5.2, 2007.1, ...

Нужно завести роли: пользователь, студент, преподаватель, декан, администратор.

Далее можно создать набор ресурсов Вашего приложения в Портале Управления Системой.
Это описано в документации Cache' .

Назначить в портале права ролей пользователей на эти ресурсы.

В Вашем приложении Вы можете в определенных местах (например, где формируется меню доступа к страницам) проверять есть ли права у пользователя:

Код: plaintext
$SYSTEM.Security.Check("Teacher Resource", "WRITE")

Если право есть, отрисовывать или давать возможность перехода на страницу по ссылке.
Если нет - не пускать.

То есть можно воспользоваться готовой системой безопасности Cache'.

В ZEN все это сделано автоматически. Можно ставить в соответствие ресурс и компонент (например, пункт меню).
Если есть возможность лучше делать Web-приложение на ZEN, но для этого нужно иметь Cache' 2007.1.


Вадим
...
Рейтинг: 0 / 0
Доступ!
    #34522220
oxcom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я так понимаю, что на каждую таблицу надо установить роли, и потом при обращении к этой таблицы проверять?
...
Рейтинг: 0 / 0
Доступ!
    #34523488
Jannet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас темы дипломных проектов схожи! у меня тоже сайт про униветситет! ты не мог бы выслать мне свой,jakonda666@mail.ru? я могу своим поделиться.....не могу администрирование сделать никак(((((
...
Рейтинг: 0 / 0
Доступ!
    #34523600
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЯ так понимаю, что на каждую таблицу надо установить роли, и потом при обращении к этой таблицы проверять?
Ну по крайней мере в каше 5.2 и ниже разрешения на таблицу не установите.
Лучше разрешения ставить на интерфейс, и проверять - эта страница разрешена? А эта кнопка на странице разрешена?
...
Рейтинг: 0 / 0
Доступ!
    #34523926
Alesha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa aleshapМожно использовать совместно куки и сессии
С куками проблема... Пользователь их может отключить... :(
Отключить можно все... и куки и скрипты и flash... можно и браузер удалить и винду...
Думаю это уже проблема пользователей, другое дело, то что их об этом необходимо оповещать.
...
Рейтинг: 0 / 0
Доступ!
    #34524807
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н. авторЯ так понимаю, что на каждую таблицу надо установить роли, и потом при обращении к этой таблицы проверять?

Ну по крайней мере в каше 5.2 и ниже разрешения на таблицу не установите.
Лучше разрешения ставить на интерфейс, и проверять - эта страница разрешена? А эта кнопка на странице разрешена?

Не совсем понимаю, почему?
На уровне SQL в Cache' всегда было можно ограничить доступ к таблицам, видам и хранимым процедурам.

В Cache' 2007.1. будет еще разграничение доступа к таблице на уровне записей.


Другое дело, что если говорить про создания Web-приложения, то Вы правы, более правильно разграничить доступ на уровне приложения к фрагментам Web-приложения.

С уважением, Вадим
...
Рейтинг: 0 / 0
Доступ!
    #34524895
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VadimF
Блок А.Н.Ну по крайней мере в каше 5.2 и ниже разрешения на таблицу не установите.
На уровне SQL в Cache' всегда было можно ограничить доступ к таблицам, видам и хранимым процедурам.

Ага, соврал :-(.
Хотел сказать, что нельзя таблицам присвоить имя ресурса.
Ведь для ресурса в каше 5можно проверить, доступен ли он
$System.Security.Check
А как это сделать для таблицы?
...
Рейтинг: 0 / 0
Доступ!
    #34525153
oxcom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выкладываю работу!
Может поможет немного разобраться!

Файл Diplom.xml импортировать локально в Cache 5
Папку "Images" скопировать на диск C:\
...
Рейтинг: 0 / 0
Доступ!
    #34537882
Dmitry V. Liseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi!

VadimF
То есть можно воспользоваться готовой системой безопасности Cache'.
Для диплома, безусловно, можно. Но в боевой системе все не так просто.

1. Если что-то работало в предыдущей версии Cache, то оно может не заработать в следующей
или будет работать по-другому. Cache весьма быстро развивается и меняется. Для будущих
заказчиков это показатель крутизны, а для существующих - проблема. Поскольку разработчикам
и тестерам нужно забивать в план работ довольно серъезные сроки на перенос системы на другую
версию Cache. И это нередко останавливает от попыток использовать что-то готовое крайне быстро
эволюционирующее. Выше крыши хватает мелкософта, который вынуждает всех конкурентов
тратить время не на развитие прикладных систем, а на постоянный перенос их с одной версии
винды на другую.

2. На одном сервере может крутиться несколько баз с весьма разной архитектурой безопасности.
А пользователи и привилегии в Cache назначаются на сервер в целом, а не на конкретную базу с конкретным
приложением. Одно дело, когда есть DBA, который отвечает за функционирование сервера в целом,
создание бекапов и т.д., но ему нет дела до особенностей бизнес-логики конкретного приложения,
а совсем другое, когда администратор безопасности именно конкретного приложения добавляет/удаляет
пользователей, раздает доступ на ресурсы в соответствии с бизнес-логикой приложения, но ему нет
дела до технических проблем, бекапов, производительности, наличия места на дисках, знания, что
в каких таблицах находится и т.д.

И если разные приложения разработаны разными независимыми компаниями, то в целях
избежания головной боли от совместимости лучше будет ставить их на разные физические
сервера со своей Cache. Но тут уже совсем другая лицензия нужна.

3. Вопрос, тесно связанный с предыдущим пунктом, это невозможность бэкапа информации
по пользователям, их правам доступа к данным вместе с самими данными конкретной базы.
И соответственно, востановления из бэкапа так, чтобы это не повляло на пользователей,
других приложений, которые крутятся на этом сервере.

Или, к примеру, стандартная процедура апгрейда приложения. Делается бекап боевой базы с первого
сервера, восстанавливается на физически отдельном втором тестовом сервере (где может стоять другая
версия Cache), либо если боевой сервер можно остановить, то в него втыкается винчестер, туда
копируется CACHE.DAT и этот винчестер переносится на второй сервер. Понятно, что копировать
базу по сети бессмысленно. На тестовом сервере ставится новая версия приложения, проверяется
и отрабатывается процедура перехода. Затем она воспроизводится на боевом сервере (либо просто
юзеров переключают с первого сервера на второй). Вопрос: как перенести информацию о 500
пользователях, привилегиях и правах доступа с первого сервера на второй? Попытка просто
скопировать базы CACHESYS и CACHEAUDIT привела к неработоспособности второго
сервера из-за того, что он оказался в другом Windows домене. Т.е. завязка на аутентификацю
операционной системы или Kerberos - рискованная штука. Бэкап базы трехлетней давности может
запросто не подняться, если одновременно с ним не поднять бэкап на контроллере домена.

4. Если разграничение доступа является существенной частью бизнес-логики приложения, то вероятнее всего
будут и особые требования к функционалу системы безопасности. Казалось бы, вполне примитивное
требование, что рядовой пользователь, не являясь админом, должен иметь возможность поменять пароль
сам себе. В то-же время, админ не должен знать пароли пользователей и сам их менять. Разве что задавать
начальный пароль пользователю при регистрации в системе нового пользователя, но должен поставить
галочку "Требовать от пользователя смены своего пароля при первом входе в систему".
Тем не менее, мне не удалось найти такой простой возможности "в готовой" системе безопасности Cache.

То есть, если заказчик такую функцию потребует, то останется только сказать: "Обращайтесь к Интерсистемсу,
и тогда, возможно, когда-нибудь..."

А кроме такой мелочи, могут быть и более интересные вещи. У нас, к примеру иерархическая система
групп (ролей). В состав группы могут входить другие группы и пользователи, в то-же время пользователь
и группа может входить в состав нескольких групп. Кроме разрешений бывают еще и запреты. Если у группы
"А" есть разрешение на ресурс "1" и ресурс "2", а у группы "Б" есть запрет на ресурс "2" (про ресурс "1"
ничего не сказано), то пользователи, входящие только в группу "А" получат разрешение на оба ресурса,
входящие только в группу "Б" - ни на один ресурс, входящие и в группу "А" и в группу "Б" - разрешение
только на ресурс "1". Когда в системе под 500 пользователей, гибкость и удобство системы разграничения
доступа, а также пользовательский интерфейс имеют значение. Попробуйте реализовать Drag & Drop
пользователей из группы в группу на WEB - интерфейсе встроенной в Cache системы безопасности.
Вообще, перевод администрирования Cache на CSP - не самое удобное IMHO с точки зрения возможностей
пользовательского интерфейса решение. Интерфейс можно улучшить, если сделать навороченный апплет
на яве, но тогда чем он будет отличаться от старого доброго "толстого" клиента? Разве что
кроссплатформенностью.

С каждым пользователем и группой может быть ассоциирована масса информации и индивидуальных настроек
внешнего вида приложения, а не только логин или пароль. Например, рабочий телефон, e-mail, фотография
и т.д. Часть этой информации может поменять только администратор, часть - сам пользователь.

Да и создание/удаление/перемещение из группы в группу пользователя может потребовать выполнения
определенных операций. К примеру, удаление пользователя, это не DELETE FROM. Просто помечается,
что пользователь больше не может входить в систему, часть информации удаляется (например личные
почтовые ящики вместе с сообщениями), но основная идентифицирующая часть остается. Дело в том,
что ведется журнал, и может возникнуть вопрос, "кто менял этот документ три года назад" и тогда
нужно получить информацию по пользователю, даже если он пару лет назад уволился и с тех пор
доступа в систему не имеет.

Возможности перехватить операцию встроенной системы безопасности Cache по созданию/удалению/и т.д.
пользователей и выполнить какие-то собственные действия не имеется. Раньше (в Cache 5.0) было можно
перехватить логин к ODBC, выполнить собственные проверки и даже заменить имя пользователя. В частности,
это давало возможность при подключении пользователя задавать логин и пароль не тот, что указан в SQL-менеджере,
а тот, что указан в моем приложении. После проверки пароля, моя функция заменяет имя на _SYSTEM
(или любое другое) и с точки зрения Cache пользователь выглядит, как _SYSTEM и для него используются
гранты, заданные для _SYSTEM, а с точки зрения моего приложения он выглядит как мой пользователь.
То есть, можно было задействовать как встроенную систему безопасности SQL так и мою логику,
сочетая их возможности. Сейчас (Cache 5.2) возможность переопределения функции логина пропала. См. пункт 1.
____________________________
С уважением, Лисеев Дмитрий.
http://private.peterlink.ru/dimik/
PGP key fingerprint: 09 28 74 28 6C 39 62 29 2E CB 95 03 4F 04 33 73

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Доступ!
    #34537883
Dmitry V. Liseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi!

VadimF
В Cache' 2007.1. будет еще разграничение доступа к таблице на уровне записей.
Угу. И сильно подозреваю, что по своим возможностям не дотянет до того,
что я сделал еще 6 лет назад.

Учитывая, что логика разграничения доступа сильно зависит от специфики приложения,
а реализовать ее на триггерах - раз плюнуть. Допустим, есть у нас дерево папок. То есть
в таблице имеется поле Parent с внешним ключем родительской папки. Перенос папки
из одной родительской в другую с точки зрения сервера это UPDATE на запись
переносимой папки с изменением Parent. А вот с точки зрения юзера переносимая папка
не меняется, зато производится удаление из старой родительской и вставка в новую родительскую.
Юзер не оперирует терминами SQL - операций. Ему надо не только право на изменение
атрибутов и удаление папки, но и отдельно право на создание/удаление в ней дочерних подпапок.
____________________________
С уважением, Лисеев Дмитрий.
http://private.peterlink.ru/dimik/
PGP key fingerprint: 09 28 74 28 6C 39 62 29 2E CB 95 03 4F 04 33 73

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Доступ!
    #34549893
Фотография u78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaА я что-то не очень доверяю сессиям... :( Т.к. они "исчезают" через некоторый таймаут...

некий тайм аут можно изменить, я у себя поставил 28000 секунд и красота наступила.
а сессию закрывать при наступлении события onunload на страничке.
...
Рейтинг: 0 / 0
Доступ!
    #34549990
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий, не могу сейчас, к сожалению, подробно ответить на Ваше сообщение.
Отмечу только один момент:

Dmitry V. Liseev
3. Вопрос, тесно связанный с предыдущим пунктом, это невозможность бэкапа информации
по пользователям, их правам доступа к данным вместе с самими данными конкретной базы.
И соответственно, востановления из бэкапа так, чтобы это не повляло на пользователей,
других приложений, которые крутятся на этом сервере.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
%SYS>D ^SECURITY
 
 1 ) User setup
 2 ) Role setup
 3 ) Service setup
 4 ) Resource setup
 5 ) Application setup
 6 ) Auditing setup
 7 ) Domain setup
 8 ) SSL configuration setup
 9 ) System parameter setup
 10 ) Exit
 
Option?  9 
 
 1 ) Edit system options
 2 ) Edit authentication options
 3 ) Edit LDAP options
 4 ) Display system options
 5 ) Export All Security settings
 6 ) Import All Security settings
 7 ) Exit
 
Option?  5 

С уважением, Вадим
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Доступ!
    #39605448
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н. для ресурса в каше 5можно проверить, доступен ли он
$System.Security.Check
А как это сделать для таблицы?Спустя 11 лет задаю тот же вопрос: можно ли проверить разрешения пользователя для таблицы?
...
Рейтинг: 0 / 0
Доступ!
    #39605452
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Блок А.Н. для ресурса в каше 5можно проверить, доступен ли он
$System.Security.Check
А как это сделать для таблицы?Спустя 11 лет задаю тот же вопрос: можно ли проверить разрешения пользователя для таблицы?Можешь уточнить, какие разрешения для таблицы?
В какой момент, и для кого нужно проверять разрешения?
...
Рейтинг: 0 / 0
Доступ!
    #39605489
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor,

например, разрешения на вставку или удаление строк в некоторую таблицу. Я понимаю, что там все может быть гораздо тоньше, но мне достаточно этого.
...
Рейтинг: 0 / 0
Доступ!
    #39605591
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$system.SQL.CheckPriv()
Код: sql
1.
2.
Do $SYSTEM.SQL.CheckPriv($username,"1,HHR.ProductionValues","s,i,u,d","USER",1)
Do $SYSTEM.SQL.CheckPriv("Miranda","3,SQLUser.Person","s","PRODUCT",0)
...
Рейтинг: 0 / 0
Доступ!
    #39605814
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor,

На этот раз, хотя я делаю это не на Каше 5, а аж на 2010.2, в которой эти возможности уже должны быть, удача оказалась не на моей стороне. Сервер собран с какой-то странной версией класса %SYSTEM.SQL, в которой этих методов нет. Попробовал всех перехитрить и посмотреть, как компилируется EmbeddedSQL, но оказалось, что ESQL не использует безопасность.
Но буду иметь в виду, спасибо :-)
...
Рейтинг: 0 / 0
21 сообщений из 46, страница 2 из 2
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Доступ!
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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