У нас есть требование, чтобы наши продукты работали на Oracle, а также на SQL Server (вокруг которого они были изначально созданы). К сожалению, у нас нет опыта разработки Oracle в Oracle, но, как старший разработчик, мне пришлось возглавить проект. До сих пор мне удалось сделать наше приложение подключиться к базе данных Oracle (я использую Oracle XE 11.2), используя следующую строку соединения:Строка соединения Oracle с аутентификацией Windows
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=VS010-ORA11GR1)(PORT=1523))(CONNECT_DATA=(SERVICE_NAME=DEVORA)));User Id=dbo;Password=dbo;
Поэтому мы решили использовать этот тип строки подключения, так как мы не хотим полагаться на изменение tnsnames.ora на каждом клиентском компьютере. Однако, как вы видите, это указывает пользователь Oracle и связанный с ним пароль. Мы также должны предоставить возможность использовать эквивалент интегрированной безопасности SQL Server.
В соответствии с литературой, которую я прочитал, для этого мне просто нужно указать /
как идентификатор пользователя, а затем опустить часть пароля (так как это все равно игнорируется для проверки подлинности Windows). Я также создал пользователь в Oracle, убедившись, что он соответствует пользователю Windows, со следующими отрывками:
CREATE USER "OPS$<DOMAIN>\<user>" IDENTIFIED EXTERNALLY;
GRANT CONNECT,RESOURCE TO "OPS$<DOMAIN>\<user>";
Я также проверил, что файл sqlnet.ora на моей локальной машине, которая принимает экземпляр Х и моя DEV среда содержит строку:
SQLNET.AUTHENTICATION_SERVICES= (NTS)
Я понял, что это позволит моему приложению подключиться к базе данных Oracle uing Windows Authentication. Однако на самом деле происходит то, что я получаю следующее сообщение об ошибке Oracle:
ORA-01005: null пароль указан; logon denied
Это не имеет большого смысла, потому что, конечно, его нуль - это должно быть, согласно учебникам, которые я прочитал.
Приложение предназначено для .Net Framework 3.5, мы используем System.Data.OracleProvider, а фактическое подключение и т. Д. Обрабатывается корпоративной библиотекой 5. Кстати, я знаю об устаревании компонента OracleClient, но я просто хотите, чтобы это работало, прежде чем я перейду к дополнительным сложностям смены поставщиков.
Может ли кто-нибудь сказать мне, что мне не хватает? Я выбрал неправильный тип строки подключения? Я прошу прощения за любые основные ошибки, но мне всегда удавалось избежать Oracle до сих пор, поэтому мои знания об этом близки к нулю.
Большое спасибо
Действительно? Я не могу вспомнить, пробовал ли я это или нет, но я отдам ему время, когда у нас будет время, чтобы проверить это. Мы решили не предлагать интегрированную безопасность, по крайней мере, на начальном этапе, особенно учитывая, что сами Oracle не рекомендуют ее. Если это решит, тогда я буду очень счастлив! –
Наконец-то у меня получилось несколько минут, чтобы получить трещину, но я просто не мог заставить его работать. Я отказываюсь от этих исследований, пока не будет насущной необходимости! –