Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Visual Участник
Вступление в Клуб: 20.12.2007
|
Чт Окт 30, 2008 09:46   |
|
Полезность: Нет оценки
|
Васильев Николай пишет: | Цитата: | если бы например под пользователем можно было прогнать запрос от имени того же IBS-а то думаю сработало бы. Но я не представляю такой возможности. |
Так ведь в IBSO вызов дблинка и идет от имени IBS. Давайте уточним- ошибка появляется откуда? С операции IBSO? Или же какого нить скл навигатора? |
Уточняю.
проблема расматривается в разрезе запросов.
хотя если сделать операцию которая пользует этот линк то проблема абсолютно такая же. Т.е. IBS - пользователь отлично ее выполняет и мы имеем данные... а любой другой пользователь отваливается точно с такой же ошибкой. |
|
 |
Васильев Николай Профи
Вступление в Клуб: 29.06.2007
|
Чт Окт 30, 2008 11:02   |
|
Полезность: Нет оценки
|
месяца 3 назад у нас было что то похожее, в том числе [][][][].Щас с админом пытались вспомнить , сошлись на том что дали нужным юзерам гранты. А вот на что конкретно, уже не вспоминается  |
|
 |
Alexsey Эксперт
Вступление в Клуб: 06.09.2007
|
Чт Окт 30, 2008 12:08   |
|
Полезность: Нет оценки
|
Васильев Николай пишет: | месяца 3 назад у нас было что то похожее, в том числе [][][][].Щас с админом пытались вспомнить , сошлись на том что дали нужным юзерам гранты. А вот на что конкретно, уже не вспоминается  |
Николай, так может все же постараетесь вспомнить?... надо очень.. _________________ всегда есть как минимум 2 выхода |
|
 |
Васильев Николай Профи
Вступление в Клуб: 29.06.2007
|
Чт Окт 30, 2008 13:14   |
|
Полезность: Нет оценки
|
попробуйте дать пользователю роль CONNECT |
|
 |
Visual Участник
Вступление в Клуб: 20.12.2007
|
Чт Окт 30, 2008 13:17   |
|
Полезность: Нет оценки
|
У него есть такая роль уже .. КОННЕКТ |
|
 |
Васильев Николай Профи
Вступление в Клуб: 29.06.2007
|
Чт Окт 30, 2008 13:54   |
|
Полезность: Нет оценки
|
да, у всех юзеров.
Давайте попробуем от максимального, методом отбора.
вот 3 привилегии, которые относятся к dblink:
CREATE SESSION,
CREATE DATABASE LINK,
CREATE PUBLIC DATABASE LINK.
На первый взгляд CREATE SESSION должно хватить.
Где то видел, что в даном случае пральней будет дать привилегию пользователю а не роли. Ну пробуйте и так и так О выполнении доложИте . Самому уже интересно, победим или нет .
ЗЫ. я ж не админ, а ему щас некогда (ну как всегда) |
|
 |
Visual Участник
Вступление в Клуб: 20.12.2007
|
Чт Окт 30, 2008 14:04   |
|
Полезность: Нет оценки
|
Васильев Николай пишет: | да, у всех юзеров.
Давайте попробуем от максимального, методом отбора.
вот 3 привилегии, которые относятся к dblink:
CREATE SESSION,
CREATE DATABASE LINK,
CREATE PUBLIC DATABASE LINK.
На первый взгляд CREATE SESSION должно хватить.
Где то видел, что в даном случае пральней будет дать привилегию пользователю а не роли. Ну пробуйте и так и так О выполнении доложИте . Самому уже интересно, победим или нет .
ЗЫ. я ж не админ, а ему щас некогда (ну как всегда) |
Вот что мне ответила в переписке по данной проблемме одна из наших коллег по несчастью. Видимо банков с такой проблемой хватает.
Цитирую:
Цитата: | Да, мы решили данную проблему, все дело в контекстах пользователей в ИБСО.
Если контексты забиты, то 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   |
|
Полезность: Нет оценки
|
Ну так что нам скажут авторы ветки, какие результаты? Насколько велики контексты? Наскоко помню у вас есть доступ по реквизиту.
Мы то у себя убираем , посему и контекстов минимум.
Чем дело то кончилось ?  |
|
 |
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 назад у нас было что то похожее, в том числе [][][][].Щас с админом пытались вспомнить , сошлись на том что дали нужным юзерам гранты. А вот на что конкретно, уже не вспоминается  |
и такой вариант тоже правильный и проверять его надо
не совсем корректно оракл исключения по правам и грантам обрабатывает.
а ошибку выдает формальную или как обычно "наведенную"
и по ней ничего не определишь |
|
 |
tsktalk Участник со стажем
Вступление в Клуб: 27.09.2007
|
Сб Ноя 01, 2008 06:21   |
|
Полезность: Нет оценки
|
Васильев Николай пишет: |
Так ведь в IBSO вызов дблинка и идет от имени IBS. Давайте уточним- ошибка появляется откуда? С операции IBSO? Или же какого нить скл навигатора? |
Вот тут Вы не совсем правы...
Вызов линка не всегда идет от имени IBS
и цепляется в чужую базу он в зависимости от того как этот линк сделан.
линк ведь можно сделать так чтоб лез он в другую базу именно с текущими реквизитами (имя пользователя и пароль) под которым вошли в текущую базу |
|
 |
Visual Участник
Вступление в Клуб: 20.12.2007
|
Сб Ноя 01, 2008 08:07   |
|
Полезность: Нет оценки
|
Васильев Николай пишет: | Ну так что нам скажут авторы ветки, какие результаты? Насколько велики контексты? Наскоко помню у вас есть доступ по реквизиту.
Мы то у себя убираем , посему и контекстов минимум.
Чем дело то кончилось ?  |
Запрос на ряде юзеров показал что количество в пределах 30 000.
Видимо этого количества тоже достаточно для того что бы вылетала ошибка.  |
|
 |
Васильев Николай Профи
Вступление в Клуб: 29.06.2007
|
Сб Ноя 01, 2008 09:53   |
|
Полезность: Нет оценки
|
tsktalk пишет: | Васильев Николай пишет: |
Так ведь в IBSO вызов дблинка и идет от имени IBS. Давайте уточним- ошибка появляется откуда? С операции IBSO? Или же какого нить скл навигатора? |
Вот тут Вы не совсем правы...
Вызов линка не всегда идет от имени IBS
и цепляется в чужую базу он в зависимости от того как этот линк сделан.
линк ведь можно сделать так чтоб лез он в другую базу именно с текущими реквизитами (имя пользователя и пароль) под которым вошли в текущую базу |
Несомненно, я имел ввиду логичное создание линка от имени владельца схемы. Права пользователя могут скакать сильно. |
|
 |
|