Установка параметра global_names - PullRequest
1 голос
/ 25 ноября 2008

Привет,

Моя компания использует Peoplesoft для своих финансов и HR. Наша реализация баз данных Oracle. Установка global_names = TRUE заставляет вас называть вашу ссылку на базу данных такой же, как и цель. Мой вопрос: знает ли кто-нибудь, что значение global_names равно false в файле параметров init.ora?

В частности, я хочу, чтобы в одной из наших сред (global_names = true) была ссылка на базу данных с именем PRODLINK, и она указывала на производственную базу данных HR. В другой среде (где global_names = false) также будет ссылка PRODLINK, но она будет указывать на непроизводственную базу данных. Чтобы еще больше усложнить задачу, одна среда баз данных находится на Oracle 9.2, а другая на Oracle 10.2

.

Я искал ответ на этот вопрос, но не могу его найти. Заранее благодарим за любую помощь / совет, который вы можете предложить.

J.C.

1 Ответ

3 голосов
/ 25 ноября 2008

Преимущество наличия global_names = TRUE состоит в том, что оно просто заставляет вас использовать имена для ссылок на базы данных, которые четко указывают, к какой базе данных они подключаются. Установка в FALSE просто снимает это ограничение; Недостатком является то, что это позволит вам создавать ссылки с именами, которые могут сбивать с толку. В извращенном случае, если у вас есть базы данных A, B и C, вы можете создать ссылку в A, называемую «B», но указывающую на C.

Вы также можете считать это проблемой безопасности, так как этот параметр global_names = FALSE делает маловероятным, что кто-то может злонамеренно изменить определение ссылки, что приведет к неправильному доступу или повреждению данных. Хотя я не могу придумать конкретный сценарий для этого.

В целом, нет большого недостатка в настройке FALSE. Однако есть несколько других вариантов, которые вы могли бы рассмотреть.

Один из них - сохранить глобальную настройку TRUE, но сбросить ее на FALSE на уровне сеанса в коде, который нуждается в этом. Мы делаем это на моем сайте, потому что есть только одно приложение, которое требует использования «неправильно» именованных ссылок. Этот метод гарантирует, что любому, кто использует ссылку в интерактивном режиме или пишет код, который ее использует, будет напоминать, что имя не соответствует назначению.

Другой вариант - оставить global_names = TRUE, чтобы в средах использовались разные имена ссылок, но при этом имя ссылки должно быть параметром или параметром конфигурации в вашем коде. Например, если у вас есть сценарии, которые создают пакеты PL / SQL, вы можете сделать имя ссылки параметром сценария.

...