ORACLE 7.3 управление пользователями - PullRequest
0 голосов
/ 25 мая 2009

На работе у меня есть приложение, сидящее на Oracle 7.3 (старые вещи, да). Недавно я попытался создать учетную запись, которая была бы в состоянии ВЫБРАТЬ на всех таблицах, но ничего больше, то есть никаких обновлений или удалений. Но всякий раз, когда я создаю новую учетную запись, она уже имеет доступ ко всем таблицам приложений. Я даже урезал это, чтобы СОЗДАТЬ СЕССИЮ только. Это не помогло - пользователь все еще может обновить любую таблицу!

Итак, я обнаружил, что существует целая группа открытых синонимов, названных точно так же, как таблицы (то есть таблица myTable123, открытый синоним myTable123). Я удалил один из них, и пользователь не смог ВЫБРАТЬ на этой конкретной таблице. Затем я создал новую таблицу и, очевидно, новый пользователь не смог ее увидеть. Я добавил общедоступный синоним для этой таблицы, надеясь, что пользователь сможет получить к ней доступ. Не повезло, что новый пользователь не смог его увидеть ... что имело бы смысл, поскольку гранты не давались. Должно быть что-то еще ....

Я не эксперт Oracle, и я пытаюсь разобраться в этом вопросе, но пока не повезло. Пожалуйста, помогите с любыми предложениями, которые у вас могут быть. Ура! Дам

Ответы [ 2 ]

5 голосов
/ 25 мая 2009

Как говорит tuinstoel, вы можете игнорировать общедоступные синонимы - это не повлияет на разрешения.

Возможно, что при создании ваших оригинальных таблиц создатель сделал

grant [permissions] on [table] to public

где [permissions] может быть таким же широким, как "all", что означает, что любому новому пользователю автоматически будут предоставлены разрешения для этих таблиц.

ли

select * from ALL_TAB_PRIVS where table_name = '[one of your problem tables]'

вернуть что-нибудь?

Кстати - никогда не использовал Oracle 7.3.3 - Я предполагаю, что в модели разрешений мало что изменилось.

1 голос
/ 25 мая 2009

Oracle 7.3 не просто старый, он очень, очень, очень старый. Это 12 или 13 лет.

Создание или удаление общедоступных синсов не изменяет чьи-либо права на доступ к таблице. Единственная причина создания общедоступных синонимов - сделать возможным доступ к таблице без добавления префикса к ее имени схемы.

Я думаю, что у ваших старых пользователей есть такие привилегии, как «обновить любую таблицу» и «выбрать любую таблицу» или «dba».

...