CftClub.ru
Клуб специалистов ЦФТ-Банк

Нужна помощь с DB_LINK !!!!
На страницу Пред.  1, 2
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Oracle DBA
Предыдущая тема :: Следующая тема  
Автор Сообщение
Visual
Участник


Вступление в Клуб: 20.12.2007
СообщениеЧт Окт 30, 2008 09:46    Ответить с цитатой
Полезность: Нет оценки
Васильев Николай пишет:
Цитата:
если бы например под пользователем можно было прогнать запрос от имени того же IBS-а то думаю сработало бы. Но я не представляю такой возможности.

Так ведь в IBSO вызов дблинка и идет от имени IBS. Давайте уточним- ошибка появляется откуда? С операции IBSO? Или же какого нить скл навигатора?


Уточняю.
проблема расматривается в разрезе запросов.

хотя если сделать операцию которая пользует этот линк то проблема абсолютно такая же. Т.е. IBS - пользователь отлично ее выполняет и мы имеем данные... а любой другой пользователь отваливается точно с такой же ошибкой.
Васильев Николай
Профи


Вступление в Клуб: 29.06.2007
СообщениеЧт Окт 30, 2008 11:02    Ответить с цитатой
Полезность: Нет оценки
месяца 3 назад у нас было что то похожее, в том числе [][][][].Щас с админом пытались вспомнить , сошлись на том что дали нужным юзерам гранты. А вот на что конкретно, уже не вспоминается Sad
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеЧт Окт 30, 2008 12:08    Ответить с цитатой
Полезность: Нет оценки
Васильев Николай пишет:
месяца 3 назад у нас было что то похожее, в том числе [][][][].Щас с админом пытались вспомнить , сошлись на том что дали нужным юзерам гранты. А вот на что конкретно, уже не вспоминается Sad

Николай, так может все же постараетесь вспомнить?... надо очень..
_________________
всегда есть как минимум 2 выхода
Васильев Николай
Профи


Вступление в Клуб: 29.06.2007
СообщениеЧт Окт 30, 2008 13:14    Ответить с цитатой
Полезность: Нет оценки
попробуйте дать пользователю роль CONNECT
Visual
Участник


Вступление в Клуб: 20.12.2007
СообщениеЧт Окт 30, 2008 13:17    Ответить с цитатой
Полезность: Нет оценки
У него есть такая роль уже .. КОННЕКТ
Васильев Николай
Профи


Вступление в Клуб: 29.06.2007
СообщениеЧт Окт 30, 2008 13:54    Ответить с цитатой
Полезность: Нет оценки
Smile да, у всех юзеров.
Давайте попробуем от максимального, методом отбора.
вот 3 привилегии, которые относятся к dblink:
CREATE SESSION,
CREATE DATABASE LINK,
CREATE PUBLIC DATABASE LINK.
На первый взгляд CREATE SESSION должно хватить.
Где то видел, что в даном случае пральней будет дать привилегию пользователю а не роли. Ну пробуйте и так и так Smile О выполнении доложИте Smile. Самому уже интересно, победим или нет Smile.
ЗЫ. я ж не админ, а ему щас некогда (ну как всегда)
Visual
Участник


Вступление в Клуб: 20.12.2007
СообщениеЧт Окт 30, 2008 14:04    Ответить с цитатой
Полезность: Нет оценки
Васильев Николай пишет:
Smile да, у всех юзеров.
Давайте попробуем от максимального, методом отбора.
вот 3 привилегии, которые относятся к dblink:
CREATE SESSION,
CREATE DATABASE LINK,
CREATE PUBLIC DATABASE LINK.
На первый взгляд CREATE SESSION должно хватить.
Где то видел, что в даном случае пральней будет дать привилегию пользователю а не роли. Ну пробуйте и так и так Smile О выполнении доложИте Smile. Самому уже интересно, победим или нет Smile.
ЗЫ. я ж не админ, а ему щас некогда (ну как всегда)


Вот что мне ответила в переписке по данной проблемме одна из наших коллег по несчастью. Видимо банков с такой проблемой хватает.

Цитирую:

Цитата:
Да, мы решили данную проблему, все дело в контекстах пользователей в ИБСО.
Если контексты забиты, то DB_LINK не работает.
Мы проверяли количество контекстов пользователей, и если их было очень много, то чистили доступы в администраторе доступов.
Если пользователь включен в большое количество групп доступов и причем среди этих групп были такие, которые раздавали доступы по реквизиту,
Контексты сразу забиваются.
Мы в Тоаде запускали скрипт под пользователем:

select count(*) from session_context

и если этот скрипт выдавал ошибку - контексты забиты. Сокращали количество групп доступов и опять проверяли.
В результате нашли группы доступов с огромным количеством контекстов и избавились от них.

Решение, конечно наше не очень простое, может можно и проще, но мы не придумали на тот момент ничего другого и ЦФТ не подсказало.
molokov
Участник со стажем


Вступление в Клуб: 28.09.2007
СообщениеПт Окт 31, 2008 07:18    Ответить с цитатой
Полезность: 3
Да у нас тоже такое было и все это связано с контекстом.
Мы проверяли следующим запросом:
select count(*)
from (SELECT DISTINCT
CR.OBJ_ID, '0'
FROM ibs.CLASS_RIGHTS CR, ibs.SUBJ_EQUAL SE
WHERE CR.SUBJ_ID = SE.EQUAL_ID AND SE.SUBJ_ID = :u
union
select DISTINCT
CR.OBJ_ID, '0'
FROM ibs.CRITERIA_RIGHTS CR, ibs.SUBJ_EQUAL SE
WHERE CR.SUBJ_ID = SE.EQUAL_ID AND SE.SUBJ_ID = :u
union
SELECT DISTINCT
OE.OBJ_ID, OE.RIGHT_CLASS_ID
FROM ibs.OBJECT_RIGHTS_EX OE, ibs.SUBJ_EQUAL SE
WHERE OE.SUBJ_ID = SE.EQUAL_ID AND SE.SUBJ_ID = :u
)

можете посмотреть сколько у того пользователя у кого работает и у кого не работает, там что то если больше 63000 то будет ошибка(точную цифру не помню) чтобы такого не было нужно у пользователя убрать лишние права, но бывает когда нужны и тогда мы посмотрели операцию "Польз.."->"Доступ"(Она у нас своя), и в ней посмотрите все SECADMIN.SetObjRightsEx("тут короткое имя типа") и все смотрим есть ли там контекст, если нету то строчку комментарии. В итоге убираем все лишнее раздаем заново новой операцией и все.
Васильев Николай
Профи


Вступление в Клуб: 29.06.2007
СообщениеПт Окт 31, 2008 16:39    Ответить с цитатой
Полезность: Нет оценки
Ну так что нам скажут авторы ветки, какие результаты? Насколько велики контексты? Наскоко помню у вас есть доступ по реквизиту.
Мы то у себя убираем , посему и контекстов минимум.
Чем дело то кончилось ? Smile
tsktalk
Участник со стажем


Вступление в Клуб: 27.09.2007
СообщениеСб Ноя 01, 2008 05:55    Ответить с цитатой
Полезность: 1
Основной момент заключается в том, что есть у оракла баг не излечимый с переполнением контекстов.
почему индусы его не починят никто не знает, наверное им некогда...

беда с такой ошибкой характерена не только для ибсо но и для других продуктов не только цфт...

общее описание ситуации на примере ибсо и например рбо

сессия законектилась в ибсо (ей заполнились контексты)
допустим администраторы подошли к процессу с фанатизмом и дали кучу прав а права доступа определяются через контексты получили забивку под завязку сессию

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

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

в большинстве случаев для пользователя IBS не происходит ошибки
по одной простой причине инициализация контекстов ему необходима в минимальной степени (он владелец схемы), если вы загляните практически в любое представление, там стоит проверка на него

аналогично ситуация, когда вы под сисом законектитесь к базе через sqlplus
наберете select * from dual@имя_линка ошибка как правило не происходит
или например дернуть операцию под пользователем не регистрировав его в прикладухе (отключив логон триггер)


если вертеть прикладуху то помимо прав надо смотреть прикладные параметры
RIGHTS_CONTEXT
SYS_CONTEXT
стоит посмотреть и в сторону вот этих настроек
OBJECT_RIGHTS_CONTEXT
OBJECT_RIGHTS_EX_CONTEXT

в итоге:
надо просто последовательно проверить все варианты найти причину и устранить
наскоком и шашкой наголо эта беда не лечиться
да и у оракла нет секретной кнопки с патчем, чтоб устранялись баги
tsktalk
Участник со стажем


Вступление в Клуб: 27.09.2007
СообщениеСб Ноя 01, 2008 06:07    Ответить с цитатой
Полезность: 1
забыл упомянуть, что для каких-то версий оракла
(точнее связок) наблюдается глюк,
при обращенни к линку тоже вылетает шестисотая ошибка
при этом на другой связке эта ошибки не существует
пример:
одна и та же база
ползем с 9206 на 10204 получаем все тип
патчим базу до 9208
ползем с 9208 на 10204 получаем ошибку
для каких-то платформ (но вроде не для всех) есть у оракла специальный патчик фиксящий этот глюк

в цифирках (версиях) я может ошибся, но то что такой баг есть - это факт, на эту граблю я наступал и фиксил ораклу

тут для каждой версии надо детально смотреть есть баг или нет
tsktalk
Участник со стажем


Вступление в Клуб: 27.09.2007
СообщениеСб Ноя 01, 2008 06:17    Ответить с цитатой
Полезность: Нет оценки
Васильев Николай пишет:
месяца 3 назад у нас было что то похожее, в том числе [][][][].Щас с админом пытались вспомнить , сошлись на том что дали нужным юзерам гранты. А вот на что конкретно, уже не вспоминается Sad


и такой вариант тоже правильный и проверять его надо
не совсем корректно оракл исключения по правам и грантам обрабатывает.
а ошибку выдает формальную или как обычно "наведенную"
и по ней ничего не определишь
tsktalk
Участник со стажем


Вступление в Клуб: 27.09.2007
СообщениеСб Ноя 01, 2008 06:21    Ответить с цитатой
Полезность: Нет оценки
Васильев Николай пишет:

Так ведь в IBSO вызов дблинка и идет от имени IBS. Давайте уточним- ошибка появляется откуда? С операции IBSO? Или же какого нить скл навигатора?


Вот тут Вы не совсем правы...
Вызов линка не всегда идет от имени IBS
и цепляется в чужую базу он в зависимости от того как этот линк сделан.
линк ведь можно сделать так чтоб лез он в другую базу именно с текущими реквизитами (имя пользователя и пароль) под которым вошли в текущую базу
Visual
Участник


Вступление в Клуб: 20.12.2007
СообщениеСб Ноя 01, 2008 08:07    Ответить с цитатой
Полезность: Нет оценки
Васильев Николай пишет:
Ну так что нам скажут авторы ветки, какие результаты? Насколько велики контексты? Наскоко помню у вас есть доступ по реквизиту.
Мы то у себя убираем , посему и контекстов минимум.
Чем дело то кончилось ? Smile


Запрос на ряде юзеров показал что количество в пределах 30 000.
Видимо этого количества тоже достаточно для того что бы вылетала ошибка. Sad
Васильев Николай
Профи


Вступление в Клуб: 29.06.2007
СообщениеСб Ноя 01, 2008 09:53    Ответить с цитатой
Полезность: Нет оценки
tsktalk пишет:
Васильев Николай пишет:

Так ведь в IBSO вызов дблинка и идет от имени IBS. Давайте уточним- ошибка появляется откуда? С операции IBSO? Или же какого нить скл навигатора?


Вот тут Вы не совсем правы...
Вызов линка не всегда идет от имени IBS
и цепляется в чужую базу он в зависимости от того как этот линк сделан.
линк ведь можно сделать так чтоб лез он в другую базу именно с текущими реквизитами (имя пользователя и пароль) под которым вошли в текущую базу

Несомненно, я имел ввиду логичное создание линка от имени владельца схемы. Права пользователя могут скакать сильно.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Oracle DBA Часовой пояс: GMT + 3
На страницу Пред.  1, 2
Страница 2 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru