powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как установить пароль пользователя ?
35 сообщений из 35, показаны все 2 страниц
Как установить пароль пользователя ?
    #38593100
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня !
Уважаемые мампсисты, как вы устанавливаете
пароли в Ваших приложениях для многопользовательской задачи ?
У нас например одна база для заработной платы, в которой участвуют
4 разных подразделений. Вроде пароли стоят, но иногда один пользователь
с одного подразделения, может попасть в другую.
Никак не могу выявлять как это происходит...
Все берется с учетом системной переменной $JOB.
Записываем при входе в глобаль саму пароль и $JOB
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
^PAROL("COL",1119)=1
^PAROL("COL",2843)=1
^PAROL("COL",2844)=1
^PAROL("MAX",1027)=1
^PAROL("MAX",1121)=1
^PAROL("MAX",2171)=1
^PAROL("MAX",2530)=1
....................


При обращение например к некой подпрограммы проверяем
пользователя на наличие пароля из этого глобаля.
Может есть более хороший способ, проверить пользователя ?
Спасибо.
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38593129
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не очень понял, что вы делаете, но $JOB не уникальный будет в любом случае, особенно, если через веб работаете.

По идее после входа пользователя должна создаваться некая сессия (если это не веб - то аналог ее),
в самом сервере приписывается, что с такой сессией работает определенный пользователь, передаете приложению идентификатор сессии и при любом обращении к базе оно передает идентификатор сессии, по которому проверяется пользователь и разрешения для работы этого приложения.
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38593141
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, мы работаем через сокет. MSM-Activate.
Клиент это настольное приложение на VB.
Почему $JOB не уникален ? Как бы это мы и взяли за основу.
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38593160
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я чей job вы используете? Клиента или сервера?
Я тонкости сокетов не знаю, но в любом случае операционная система порождает идентификаторы процессов не уникальные.
А на сервере вообще на один процесс вешается много клиентов (может я глупость говорю, но почему-то в этом уверен).

А вообще идентификаторы процессы и 4х значные (что само по себе не так уж много), они еще как-то генерятся как-то так, что часто совпадают. Тоже не помню, откуда это у меня в памяти, но где-то я напарывался на то, что хранить данные по job-у плохо.
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38593393
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Однозначно JOB клиента, который конектится к серверу
и М процесс присваивает ему номер.
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38593624
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu , джоб для таких дел лучше не использовать... Есть понятие "принципиального устройства" (ПУ) $p.
Сколько бы процессов не запустили с ПУ, $j у них будет разный, а вот $p один.
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38593626
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuВроде пароли стоят, но иногда один пользователь
с одного подразделения, может попасть в другую.
Просто значения $j повторились...

Если провести тест "зашел-вышел, зашел-вышел, ..." - можно заметить, что $j будет все время разный...
И все эти значения ты записываешь в тот глобал...
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38593628
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.в любом случае операционная система порождает идентификаторы процессов не уникальные
Не совсем так...
Для каждого процесса система генерит уникальный номер $j... Но никто ей не запрещает предоставлять новому процессу значение уже не существующего джоба...
Т.о. всегда будет некий временной интервал, в пределах которого, значение $j будет не уникально. Но в любой момент времени все (!) рабочие джобы будут иметь уникальные значения.
Надеюсь, что понятно объяснил.
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38593629
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaЕсли провести тест "зашел-вышел, зашел-вышел, ..." - можно заметить, что $j будет все время разный...
Точнее не всегда, а запросто может быть разный. Но значение $j может и повторяться...
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38593712
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,

Естественно, я имел ввиду, что на большом промежутке времени они не уникальные.
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38593955
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,
Значит можно использовать
$PIECE($PRINCIPAL,"|",4) вместо $job
Завтра и попробую на работе.

Спасибо.
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38594001
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuЗначит можно использовать
Код: javascript
1.
$PIECE($PRINCIPAL,"|",4)

вместо $job
Однозначно нужно использовать $p вместо $j... В противном случае любой запуск
Код: javascript
1.
j prc^prg


даст тебе новое значение $j...

Для теста

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
START
   i $i(^tmp($p))
   i $i(^tmp($p,$j))
   j prc^prg
   j prc^prg
   j prc^prg
   h 1
   w !,^tmp($p)
   s uz=""
   f  s uz=$o(^tmp($p,uz)) q:uz=""  w ^tmp($p,uz)
   q
prc
   i $i(^tmp($p))
   i $i(^tmp($p,$j))
   q



Но вот эта конструкция
Код: javascript
1.
$PIECE($PRINCIPAL,"|",4)


не дает 100%-ную "привязку" к рабочему месту...
Там так же есть варианты... Имя компа, ИП адрес, имя пользователя+домен... Т.е. ИС говорит, что это все определяется ОС на которой установлен Кащей...
Они де вообще ни при чем. Как определилось - так и определилось...
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38594014
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,
Спасибо, тоже заметил, что есть и другие параметры.
Постараюсь привязаться и к ним.
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38594031
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuПостараюсь привязаться и к ним.
Лучше оставь это... Т.к. это бесполезное занятие.

По-мне так лучше сделать "привязку" по логину, а пароль вообще в этом деле не использовать...
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38594263
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa,
К сожалению $PIECE($PRINCIPAL,"|",4)
это тот же $JOB ... Это меня не спасет.
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38594316
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuЭто меня не спасет.
Так я тебе и писал ранее...
krvsaЛучше оставь это... Т.к. это бесполезное занятие.
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38594342
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valeriu , у нас в старом варианте использовалось вот это

Код: javascript
1.
w $S($P($P($P,":"),"|",3)'="":$P($P($P,":"),"|",3),1:$P($P,":"))


Но и такое не дает 100%-ной "привязки" к рабочему месту...
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38594360
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно как-то получить список всех процессов,
которые выполняются на данный момент
в определенной области ?
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38594369
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuА можно как-то получить список всех процессов,
которые выполняются на данный момент
в определенной области ?
запрос в системной области
select * from sys.Process where namespace='%sys'
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38594443
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor,
Неудобно, я бы проверил все задействованные
процессы в ту область куда зашел пользователь..
А на чистом COS-е это можно вызвать ?
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38594452
Valeriu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя бы как-то так:
Код: sql
1.
ps aux | grep mumps
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38594783
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValeriuDAiMor,
Неудобно, я бы проверил все задействованные
процессы в ту область куда зашел пользователь..
А на чистом COS-е это можно вызвать ?

Вот COS
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
	s curns=$zu(5)
	try {
		zn "%sys"
	 	s tSt=##class(%SQL.Statement).%New()
	 	s tSc=tSt.%Prepare("select ID,namespace,username,routine from SYS.Process where namespace=?")
	 	s tRs=tSt.%Execute("letograf")
	 	d tRs.%Display()
	} catch {}
	zn curns
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38594799
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor , такие запросы

Код: javascript
1.
s o=##class(%ResultSet.SQL).%Prepare(sql,.err,"",regUrn)


уже не в чести?
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38594810
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa DAiMor , такие запросы

Код: javascript
1.
s o=##class(%ResultSet.SQL).%Prepare(sql,.err,"",regUrn)



уже не в чести?
http://docs.intersystems.com/cache20131/csp/docbook/DocBook.UI.Page.cls?KEY=GSQL_dynsqlold
The %SQL.Statement class is the preferred way to perform Dynamic SQL. Dynamic SQL using this class is described in the previous chapter Using Dynamic SQL.
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38594814
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не успеваешь за всем этим...
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38594830
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaНе успеваешь за всем этим...
New and Enhanced Features for Caché 2010.1 (Dynamic SQL)

Caché 2012.2 Upgrade Checklist (%ResultSet.* Classes Superceded)

Caché 2013.1 Upgrade Checklist (Zen Report Must Use %SQL.Statement For Result Sets)
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38594851
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit , так там все по аглицки...
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38594862
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38595192
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit , да это-то все понятно... Автоматическими переводами и пользуюсь...
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38616474
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorВот COS
  s curns=$zu(5)
  try {
    zn "%sys"
     s tSt=##class(%SQL.Statement).%New()
     s tSc=tSt.%Prepare("select ID,namespace,username,routine from SYS.Process where namespace=?")
     s tRs=tSt.%Execute("letograf")
     d tRs.%Display()
  } catch {}
  zn curns
Как в результате получить доступ с строкам, столбцам и шапке получившейся таблицы?
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38616481
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaКак в результате получить доступ с строкам, столбцам и шапке получившейся таблицы? Using Dynamic SQL
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38616511
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
servit Using Dynamic SQL
Т.е. теми же %Next(), %Get()...
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38616519
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видать не так...
 s sql="select * from soi.arh.set.val"
 s o=##class(%SQL.Statement).%New()
 s ok=o.%Prepare(sql)
 s ok=o.%Execute()
 s id=$s(o.%Next():%Get("ID"),1:"")
 Пишет
Код: html
1.
<METHOD DOES NOT EXIST>zgetId+5^soi.arh.set.val.1 *%Next,%SQL.Statement
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38616525
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот как оказывается нужно!
 s sql="select * from soi.arh.set.val"
 s o=##class(%SQL.Statement).%New()
 s ok=o.%Prepare(sql)
 s ors=o.%Execute()
 s id=$s(ors.%Next():ors.%Get("ID"),1:"")
 k o
 
Там еще один объект делается...
...
Рейтинг: 0 / 0
Как установить пароль пользователя ?
    #38617085
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa, можно лаконичнее s rs=##class(%SQL.Statement).%ExecDirect(.stm,"select * from soi_arh_set.val")
 s id="" s:rs.%Next() id = rs.ID
 k stm,rs
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как установить пароль пользователя ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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