powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / внешняя аутентификация PB+ORACLE
25 сообщений из 36, страница 1 из 2
внешняя аутентификация PB+ORACLE
    #33502795
Pasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день

кто нибудь пробывал реализовать внешную аутентификация в приложении написанном на PB использующую БД Oracle

Долго читал форум по Ораклу, и пришле к выводу что все примеры там описанны для SQLPlus или OracleForms
а вот можно ли подключится из PB по внешней аутентификации.

Корни вопроса лежат в следующем: подготовить почву для новых приложений и, с положительным результатом, доработать имеющие приложения, при котором пользователю нет обходимости вводить логин/пароль, при этом программа точно понимает кто с ней работает и т.д..
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33503126
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pashaкто нибудь пробывал реализовать внешную аутентификация в приложении написанном на PB использующую БД Oracle
пишется функция в оракле которая дает гранты,
изначально юзер имеет доступ только к коннекту, данной функции и пару вюшек.
(если надо могу расписать детальнее)

Pashaпри котором пользователю нет обходимости вводить логин/пароль, при этом программа точно понимает кто с ней работает и т.д.. юзеры идентифицируются по: IP, Windows UserName
правдо мне больше нравится когда юзер вводит имя и пароль, и система заставляет менять пароль каждый месяц.
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33503186
Pasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zuzu пишется функция в оракле которая дает гранты,
изначально юзер имеет доступ только к коннекту, данной функции и пару вюшек.
Правильно ли я понимаю, что в итоге в БД у меня окажется столькоже пользователей, сколько и в Activedirectory

zuzuюзеры идентифицируются по: IP, Windows UserName

Мне кажется недостаточно. Я думаю еще и про домен.

zuzuправдо мне больше нравится когда юзер вводит имя и пароль, и система заставляет менять пароль каждый месяц.
А зачем??? В виндосе меняют и все равно толку, пароль 99% лежит в верхнем ящике стола на листочке
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33503219
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pasha zuzu пишется функция в оракле которая дает гранты,
изначально юзер имеет доступ только к коннекту, данной функции и пару вюшек.
Правильно ли я понимаю, что в итоге в БД у меня окажется столькоже пользователей, сколько и в Activedirectoryда, у нас много пользователей ,
можешь спросить в форуме по оракле: может быть гранты можно давать определенному конекту,
тогда можно будет держать одного юзера в БД.
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33503232
Pasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще вопросик
zuzuюзеры идентифицируются по: IP, Windows UserName
каким спсособом берете данную информацию, с помощью Оракла или спомощью PB и API
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33503273
zuzu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PashaЕще вопросик
zuzuюзеры идентифицируются по: IP, Windows UserName
каким спсособом берете данную информацию, с помощью Оракла или спомощью PB и API
через Win Api, тоесть посредством ПБ отсылается в оракле.
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33503334
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня иногда трудно с русской номенклатурой, поэтому буду рассматривать термин "внешняя аутентификация PB+ORACLE" двояко и по английски :-)
1) You can setup Oracle to use OS authentication and then simply leave sqlca.userid and password empty.

2) Ежели речь ДЕЙСТВИТЕЛЬНО об Activedirectory, то Oracle has a security authentication module that will talk directly to AD/LDAP.

Или твоя РВ аппл. должна "разговаривать" с AD/LDAP - query against an LDAP or Active Directory server for the user's database credentials and them "pass" them as a login, но помоему это будет нарушением безопасности :-)
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33503995
Pasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп2) Ежели речь ДЕЙСТВИТЕЛЬНО об Activedirectory, то Oracle has a security authentication module that will talk directly to AD/LDAP.

Или твоя РВ аппл. должна "разговаривать" с AD/LDAP - query against an LDAP or Active Directory server for the user's database credentials and them "pass" them as a login, но помоему это будет нарушением безопасности :-)

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

Задача стоит в следующем, отказаться от ведения 2-х, 3-х и т.д. паролей у пользователя.
Апликации должны автоматически распознавать свой /чужой.

Вот я и размышляю над данным вопросом.
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33504079
Геннадич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Филипп...1) You can setup Oracle to use OS authentication and then simply leave sqlca.userid and password empty...
Это возможно только на сервере, где БД.

2Pasha
1.Делаете один пароль в БД на всех юзеров
2. через API берёте текущего пользователя ОС и всавляете в sqlca.userid
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33504181
Pasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Геннадиччерез API берёте текущего пользователя ОС и всавляете в sqlca.userid

Пользователя взял, спомощью n_cst_platformwin32 и of_GetUserID()
Далее присвоил SQLCA.USER_ID

Я так понимаю, самому Ораклу на этот USER_ID совершенно побоку, т.к. Oracle работает с SQLCA.LogId и в зависимости от параметра подсоединяется.

А SQLCA.USER_ID можно использовать только в самом PB.
Прав я?
Я бы хотел еще на уровне БД распределять пользователей на разные логины.
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33504246
Геннадич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для ораклы:
Код: plaintext
1.
2.
SQLCA.LogPass ="******"
SQLCA.ServerName = "******"
SQLCA.LogId = "*******"
PashaЯ бы хотел еще на уровне БД распределять пользователей на разные логины.
У вас путаница с ASE
Для ораклы надо привилегии раздать на роли, и разным пользователям с одним и тем же паролем выдать разные роли
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33504252
Геннадич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫ:
для ораклы пользователь = логин
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33504283
Pasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получается чтобы не плодить пользователей в БД, один из вариантов. иметь таблицы, где описан пользователь, домен, группа Windows и сопоставляется пользователю + пароль Oracle (это в одной схеме БД, куда подсоединяется с одним логином и паролем) и уже после сопоставления, происходит подключение к рабочей БД с сооотвествующем паролем и логином.

Тогда можно будет производить настройку на уровне БД и на уровне приложения, и при этом получается меньшее количество пользователей на уровне БД, добавление/изменение уровня доступа пользователя Windows происходит без перекомпиляции приложения.
Если же появляется новая группа или уникальный пользователь, при котором необходима своя настройка интерфейса программы, то тогда уже доработка процедуры постлогина в PB и перекомпиляция.
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33504298
SergeyGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zuzu
пишется функция в оракле которая дает гранты,
изначально юзер имеет доступ только к коннекту, данной функции и пару вюшек.
(если надо могу расписать детальнее)

А роли кто нибудь пробовал подключать
в функциях,процедурах или пакетах?

Может есть у кого нибудь опыт.

А так в серьезных системах, наверно не только вход
но и ответственные команды должны
подтверждаться паролем, ключом или глазом. Как в фильмах.
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33504313
Геннадич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PashaПолучается чтобы не плодить пользователей в БД, один из вариантов. иметь таблицы, где описан пользователь, домен, группа Windows и сопоставляется пользователю + пароль Oracle (это в одной схеме БД, куда подсоединяется с одним логином и паролем) и уже после сопоставления, происходит подключение к рабочей БД с сооотвествующем паролем и логином.

Тогда можно будет производить настройку на уровне БД и на уровне приложения, и при этом получается меньшее количество пользователей на уровне БД, добавление/изменение уровня доступа пользователя Windows происходит без перекомпиляции приложения.
Если же появляется новая группа или уникальный пользователь, при котором необходима своя настройка интерфейса программы, то тогда уже доработка процедуры постлогина в PB и перекомпиляция.Всё это изобретение велосипеда.
Лучше плодите пользователей(пусть пользователь будет даже иметь вид: 'пользователь'+'домен'+'группа Windows' ) - ничего не прийдётся перекомпиливать - всё решается простым администрированием БД.
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33504321
Геннадич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyGorА роли кто нибудь пробовал подключать
в функциях,процедурах или пакетах?...
Что имеется в виду?
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33504340
Фотография urvas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Знаю, что раздавать роли можно в системном триггере logon, на чем строятся многие системы безопасности. Много читал об этом в форуме ORACLE.
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33504414
SergeyGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ГеннадичВсё это изобретение велосипеда.
Лучше плодите пользователей(пусть пользователь будет даже иметь вид: 'пользователь'+'домен'+'группа Windows' ) - ничего не прийдётся перекомпиливать - всё решается простым администрированием БД.

Когда за несколько сотен пользователей и 3 сотни таблиц и вьюшек,
то администратор конечно же ничего не решит.
И вобще то за информацию отвечает не администратор БД,
а за ответственное лицо подразделения.

На второй вопрос.

команда
set role .....
лучше в пакете но можно в процедуре или функции.

И кому то надо как прочитать IP адрес в программе.

create or replace view sys.userhosts as
select sessionid,
substr(comment$text,instr(comment$text,'=',1,3)+1,
instr(comment$text,')',1,2)-instr(comment$text,'=',1,3)-1) host
from sys.aud$
where timestamp#>sysdate-.125 and substr(comment$text,instr(comment$text,'=',1,3)+1,
instr(comment$text,')',1,2)-instr(comment$text,'=',1,3)-1) is not null

Создаете такую вьюшку под SYS.
Если sessionid прочитать можете то прочитаети и IP адрес текущей сессии.

Это все для Oracle 9.
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33504709
Геннадич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ip можно и проще:
Код: plaintext
1.
SELECT SYS_CONTEXT('USERENV','IP_ADDRESS')
FROM DUAL;
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33504749
Геннадич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyGor...
create or replace view sys.userhosts as
select sessionid,
substr(comment$text,instr(comment$text,\'=\',1,3)+1,
instr(comment$text,\')\',1,2)-instr(comment$text,\'=\',1,3)-1) host
from sys.aud$
where timestamp#>sysdate-.125 and substr(comment$text,instr(comment$text,\'=\',1,3)+1,
instr(comment$text,\')\',1,2)-instr(comment$text,\'=\',1,3)-1) is not null

Создаете такую вьюшку под SYS.
Если sessionid прочитать можете то прочитаети и IP адрес текущей сессии.
...
Это что, интересно, за юзеры, которые запросто в схеме сиса вьюшки создают, читают что им не положено итд?
За подобное в соседнем форуме "Scott Tiger" делал хирургическую операцию тупым ножом на ливер.
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33505080
SergeyGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ГеннадичЭто что, интересно, за юзеры, которые запросто в схеме сиса вьюшки создают, читают что им не положено итд?
За подобное в соседнем форуме Scott Tiger делал хирургическую операцию тупым ножом на ливер.

Вобще то есть еще команда grant select ...... для юзеров.

И вьюшка конечно же написана не на конкретную сессию,
а для программы мониторинга за IP адресами.
Само собой мониторинг делается не под юзером SYS.

И в общем не рекомендуется давать пользователям
прямые входы в базу, иначе
поопытней мальчик + простейшая программа и структура БД
на экране.
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33505167
Геннадич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SergeyGorВобще то есть еще команда grant select ...... для юзеров Это как раз для администратора
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33505199
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Геннадич SergeyGorВобще то есть еще команда grant select ...... для юзеров Это как раз для администратора
Динамический SQL в ХП, с правами администратора. И очень вдумчивое разрешения исполнения этой процедуры для пользователей.
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33505289
SergeyGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Круто мужики, бьем.

Вобще то имелось в виду, юзер SYS пишет grant select ....
для чтения некоторыми юзерами, а не наоборот.

И для примера

Присоединен к:
Oracle7 Server Release 7.3.3.0.0 - Production Release
With the distributed, replication and parallel query options
PL/SQL Release 2.3.3.0.0 - Production

SQL> SELECT SYS_CONTEXT('USERENV','IP_ADDRESS') FROM DUAL;
SELECT SYS_CONTEXT('USERENV','IP_ADDRESS')
*
ошибка в строке 1:
ORA-00904: invalid column name

А то не все работают под 9-м Ораклом.

Последний выстрел за Вами.
...
Рейтинг: 0 / 0
внешняя аутентификация PB+ORACLE
    #33505799
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Геннадич Филипп...1) You can setup Oracle to use OS authentication and then simply leave sqlca.userid and password empty...
Это возможно только на сервере, где БД.

2Pasha
1.Делаете один пароль в БД на всех юзеров
2. через API берёте текущего пользователя ОС и всавляете в sqlca.userid

Для не умеющих читать повторю ещё раз:
You setup Oracle to use OS authentication and then simply leave sqlca.userid and password empty.
...
Рейтинг: 0 / 0
25 сообщений из 36, страница 1 из 2
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / внешняя аутентификация PB+ORACLE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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