Как я могу подключиться к базе данных Oracle от имени системы, используя строку подключения ADO?

#oracle #ado #connection-string #sysdba

Вопрос:

Я пытаюсь это сделать:

 Provider=MSDASQL.1;Persist Security Info=False;User ID=sys;Password=pwd;Initial Catalog=DATABASE;Data Source=OdbcDataSource;DBA Privilege=SYSDBA
 

Но я получаю ошибку:

 [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed
 

Я использую Delphi, но ответы на любом языке приветствуются.

Уточнение: Я могу подключиться как обычный пользователь. Я сталкиваюсь с проблемами, когда пытаюсь подключиться КАК SYSDBA.

Ответ №1:

Вы не можете подключиться как SYSDBA, используя стандартные System.Data.Оракул, как указано в этом посте : http://forums.microsoft.com/MSDN/ShowPost.aspx?postID=2245591 и SiteID=1.

Вы можете сделать это с помощью ODP .NET (поставщик данных Oracle для .NET) или библиотеки других сторонних разработчиков. Если вы планируете создать серьезное приложение Oracle на .NET, я предлагаю вам хотя бы взглянуть на ODP.NET

Комментарии:

1. Мы переехали из ODP.Net в превосходную стороннюю библиотеку — DevArt (ранее CoreLAB) OraDirect.Net. Они позволяют вам подключаться как SYSDBA или SYSOPER ( devart.com/oranet/docs/… ) :о)

Ответ №2:

Я не уверен, что вы подразумеваете под подключением как система, но здесь есть ссылка на хранилище строк подключения. Я надеюсь, что вы сможете найти там свой ответ.

Комментарии:

1. как sys = с именем пользователя «sys». Из sql plus это будет SYS КАК SYSDBA.

Ответ №3:

Пример строки подключения Oracle

У вас должен быть идентификатор SID Oracle, определенный в файле TNSNames. Который является источником данных.

 Data Source=oracl;User Id=userID;Password=password;Integrated Security=no
 

Если вы используете Visual Studios, вы можете добавить источник данных в раздел «Исследование», и он выдаст вам строку подключения.

Ответ №4:

Опубликуйте ответ здесь, так как это лучший результат при поиске ответа для строки подключения с правами администратора базы данных

 Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ORCL))); User ID=sys; Password=syspassword; DBA PRIVILEGE=SYSDBA
 

Комментарии:

1. Я одобрил это усовершенствование. Спасибо!