|
|
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
Добрый день кто нибудь пробывал реализовать внешную аутентификация в приложении написанном на PB использующую БД Oracle Долго читал форум по Ораклу, и пришле к выводу что все примеры там описанны для SQLPlus или OracleForms а вот можно ли подключится из PB по внешней аутентификации. Корни вопроса лежат в следующем: подготовить почву для новых приложений и, с положительным результатом, доработать имеющие приложения, при котором пользователю нет обходимости вводить логин/пароль, при этом программа точно понимает кто с ней работает и т.д.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 15:47 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
Pashaкто нибудь пробывал реализовать внешную аутентификация в приложении написанном на PB использующую БД Oracle пишется функция в оракле которая дает гранты, изначально юзер имеет доступ только к коннекту, данной функции и пару вюшек. (если надо могу расписать детальнее) Pashaпри котором пользователю нет обходимости вводить логин/пароль, при этом программа точно понимает кто с ней работает и т.д.. юзеры идентифицируются по: IP, Windows UserName правдо мне больше нравится когда юзер вводит имя и пароль, и система заставляет менять пароль каждый месяц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 17:19 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
zuzu пишется функция в оракле которая дает гранты, изначально юзер имеет доступ только к коннекту, данной функции и пару вюшек. Правильно ли я понимаю, что в итоге в БД у меня окажется столькоже пользователей, сколько и в Activedirectory zuzuюзеры идентифицируются по: IP, Windows UserName Мне кажется недостаточно. Я думаю еще и про домен. zuzuправдо мне больше нравится когда юзер вводит имя и пароль, и система заставляет менять пароль каждый месяц. А зачем??? В виндосе меняют и все равно толку, пароль 99% лежит в верхнем ящике стола на листочке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 17:38 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
Pasha zuzu пишется функция в оракле которая дает гранты, изначально юзер имеет доступ только к коннекту, данной функции и пару вюшек. Правильно ли я понимаю, что в итоге в БД у меня окажется столькоже пользователей, сколько и в Activedirectoryда, у нас много пользователей , можешь спросить в форуме по оракле: может быть гранты можно давать определенному конекту, тогда можно будет держать одного юзера в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 17:51 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
Еще вопросик zuzuюзеры идентифицируются по: IP, Windows UserName каким спсособом берете данную информацию, с помощью Оракла или спомощью PB и API ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 17:56 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
PashaЕще вопросик zuzuюзеры идентифицируются по: IP, Windows UserName каким спсособом берете данную информацию, с помощью Оракла или спомощью PB и API через Win Api, тоесть посредством ПБ отсылается в оракле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 18:13 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
У меня иногда трудно с русской номенклатурой, поэтому буду рассматривать термин "внешняя аутентификация 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, но помоему это будет нарушением безопасности :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 18:41 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
Филипп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-х и т.д. паролей у пользователя. Апликации должны автоматически распознавать свой /чужой. Вот я и размышляю над данным вопросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 09:15 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
Филипп...1) You can setup Oracle to use OS authentication and then simply leave sqlca.userid and password empty... Это возможно только на сервере, где БД. 2Pasha 1.Делаете один пароль в БД на всех юзеров 2. через API берёте текущего пользователя ОС и всавляете в sqlca.userid ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 09:59 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
Геннадиччерез API берёте текущего пользователя ОС и всавляете в sqlca.userid Пользователя взял, спомощью n_cst_platformwin32 и of_GetUserID() Далее присвоил SQLCA.USER_ID Я так понимаю, самому Ораклу на этот USER_ID совершенно побоку, т.к. Oracle работает с SQLCA.LogId и в зависимости от параметра подсоединяется. А SQLCA.USER_ID можно использовать только в самом PB. Прав я? Я бы хотел еще на уровне БД распределять пользователей на разные логины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 10:27 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
Для ораклы: Код: plaintext 1. 2. У вас путаница с ASE Для ораклы надо привилегии раздать на роли, и разным пользователям с одним и тем же паролем выдать разные роли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 10:47 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
ЗЫ: для ораклы пользователь = логин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 10:49 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
Получается чтобы не плодить пользователей в БД, один из вариантов. иметь таблицы, где описан пользователь, домен, группа Windows и сопоставляется пользователю + пароль Oracle (это в одной схеме БД, куда подсоединяется с одним логином и паролем) и уже после сопоставления, происходит подключение к рабочей БД с сооотвествующем паролем и логином. Тогда можно будет производить настройку на уровне БД и на уровне приложения, и при этом получается меньшее количество пользователей на уровне БД, добавление/изменение уровня доступа пользователя Windows происходит без перекомпиляции приложения. Если же появляется новая группа или уникальный пользователь, при котором необходима своя настройка интерфейса программы, то тогда уже доработка процедуры постлогина в PB и перекомпиляция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 10:56 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
zuzu пишется функция в оракле которая дает гранты, изначально юзер имеет доступ только к коннекту, данной функции и пару вюшек. (если надо могу расписать детальнее) А роли кто нибудь пробовал подключать в функциях,процедурах или пакетах? Может есть у кого нибудь опыт. А так в серьезных системах, наверно не только вход но и ответственные команды должны подтверждаться паролем, ключом или глазом. Как в фильмах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 11:00 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
PashaПолучается чтобы не плодить пользователей в БД, один из вариантов. иметь таблицы, где описан пользователь, домен, группа Windows и сопоставляется пользователю + пароль Oracle (это в одной схеме БД, куда подсоединяется с одним логином и паролем) и уже после сопоставления, происходит подключение к рабочей БД с сооотвествующем паролем и логином. Тогда можно будет производить настройку на уровне БД и на уровне приложения, и при этом получается меньшее количество пользователей на уровне БД, добавление/изменение уровня доступа пользователя Windows происходит без перекомпиляции приложения. Если же появляется новая группа или уникальный пользователь, при котором необходима своя настройка интерфейса программы, то тогда уже доработка процедуры постлогина в PB и перекомпиляция.Всё это изобретение велосипеда. Лучше плодите пользователей(пусть пользователь будет даже иметь вид: 'пользователь'+'домен'+'группа Windows' ) - ничего не прийдётся перекомпиливать - всё решается простым администрированием БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 11:05 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
SergeyGorА роли кто нибудь пробовал подключать в функциях,процедурах или пакетах?... Что имеется в виду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 11:06 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
Знаю, что раздавать роли можно в системном триггере logon, на чем строятся многие системы безопасности. Много читал об этом в форуме ORACLE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 11:11 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
ГеннадичВсё это изобретение велосипеда. Лучше плодите пользователей(пусть пользователь будет даже иметь вид: 'пользователь'+'домен'+'группа 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 11:30 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
ip можно и проще: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 12:39 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
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" делал хирургическую операцию тупым ножом на ливер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 12:48 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
ГеннадичЭто что, интересно, за юзеры, которые запросто в схеме сиса вьюшки создают, читают что им не положено итд? За подобное в соседнем форуме Scott Tiger делал хирургическую операцию тупым ножом на ливер. Вобще то есть еще команда grant select ...... для юзеров. И вьюшка конечно же написана не на конкретную сессию, а для программы мониторинга за IP адресами. Само собой мониторинг делается не под юзером SYS. И в общем не рекомендуется давать пользователям прямые входы в базу, иначе поопытней мальчик + простейшая программа и структура БД на экране. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 14:07 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
SergeyGorВобще то есть еще команда grant select ...... для юзеров Это как раз для администратора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 14:35 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
Геннадич SergeyGorВобще то есть еще команда grant select ...... для юзеров Это как раз для администратора Динамический SQL в ХП, с правами администратора. И очень вдумчивое разрешения исполнения этой процедуры для пользователей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 14:45 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
Круто мужики, бьем. Вобще то имелось в виду, юзер 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-м Ораклом. Последний выстрел за Вами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 15:10 |
|
||
|
внешняя аутентификация PB+ORACLE
|
|||
|---|---|---|---|
|
#18+
Геннадич Филипп...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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 17:54 |
|
||
|
|

start [/forum/topic.php?fid=15&fpage=75&tid=1337929]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 345ms |

| 0 / 0 |
