Я настроил свою базу данных Oracle для аутентификации NTS и настроил свой вход в Windows как пользователь в базе данных.
Я могу войти в базу данных с помощью команды sqlplus /
.
Я также могу подключиться с помощью проверки подлинности Windows с помощью поставщика System.Data.OracleClient для ADO.NET.
Например, работает следующий фрагмент кода:
DbProviderFactory factory = DbProviderFactories.GetFactory("System.Data.OracleClient");
DbConnection connection = factory.CreateConnection();
connection.ConnectionString = "Data Source=//localhost/Test; Integrated Security=yes";
connection.Open();
Однако я не могу подключиться с использованием проверки подлинности Windows с использованием Oracle.DataAccess.Client (ODP.NET).
DbProviderFactory factory = DbProviderFactories.GetFactory("Oracle.DataAccess.Client");
DbConnection connection = factory.CreateConnection();
connection.ConnectionString = "Data Source=//localhost/Test; User Id=/";
connection.Open();
Этот блок кода приводит к следующему исключению:
Oracle.DataAccess.Client.OracleException не обработано. Сообщение = ORA-1017: неверное имя пользователя / пароль;вход в систему запрещен
По этой ссылке я могу создать соединение ODP.NET с Oracle, используя предоставленную строку подключения: http://www.oracle.com/technetwork/articles/dotnet/cook-masteringdotnet-090821.html
Почему клиент ODP.NET не позволяет мнеподключиться, пока (устарел) клиент Microsoft?
Эта проблема обсуждалась в следующем потоке в 2007 году, но не было предоставлено ни одного решения: http://forums.oracle.com/forums/thread.jspa?messageID=2312148.
Это showtopper.