2014-09-21 3 views
1

английский не является моим родным, пожалуйста, понятьКакие отличия SID и имя службы при использовании Oracle SQLDeveloper?

Когда я пытаюсь войти как системы/пароль как SYSDBA к оракулу (Linux) по SQLDeveloper (окно)

Это терпят неудачу, когда через имя службы и вернуться ORA-0131: недостаточные привилегии

но SID? успешно прошло

какие отличия? и как связаться с именем службы?

+0

Не знаете, что вы просите. Пожалуйста, покажите команды, которые вы пытаетесь выполнить, и т. Д. – OldProgrammer

+0

Какова моя версия базы данных Oracle? –

+0

Роль 'sysdba' не предоставляется учетной записи' system' по умолчанию. Когда вы укажете «SID» (клиент и сервер на том же компьютере) и подключитесь как «sysdba», вы будете использовать аутентификацию ОС. Имя пользователя и пароль oracle будут игнорироваться, если пользователь OS находится в группе «DBA». Когда вы используете «имя службы» и подключаетесь как «sysdba», файл пароля будет использоваться, и если роль 'sysdba' не предоставляется этому пользователю (пользователь не указан в файле пароля), вы получите' ORA- 0131' ошибка. –

ответ

3

Томас Кайта объяснил разницу beatifully:

Имя службы является более гибким, чем SID будет.

База данных может динамически регистрироваться при прослушивании с использованием одного или нескольких имен служб. Фактически, более чем одна база данных может регистрироваться слушателем с использованием одного и того же имени службы (подумайте о кластерной среде, где у вас есть несколько экземпляров, все они являются одной и той же базой данных под обложками).

База данных, с другой стороны, имеет единственный SID. И один SID отправляется в одну базу данных. Это чистая связь 1: 1.

Услуга - это много-много отношений.

Названия служб используются с динамической регистрацией - регистры данных со слушателем после его запуска. Как только это произойдет, вы можете подключиться.

С SID - это больше походит на сообщение слушателя «Я хочу, чтобы вы подключиться к этой конкретной базе данных, я знаю„адрес“, здесь вы идете»

С SERVICE - вы спрашиваете слушателя чтобы связать вас с базой данных, которая может обслуживать ваш запрос, базу данных, которая регистрирует эту службу.

Больше информации здесь, https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1508737000346067364

Похожий вопрос был задан в Stack Overflow 6 лет назад, How SID is different from Service name in Oracle tnsnames.ora

В тестовой среде, поиграйте с tnsnames.ora и listener.ora. AFAIK, с 12c, Oracle использует только service_name, так как он является гибким и имеет много разных отношений. Я буду перекрестно проверять документацию, если найду ее неверной.

+0

Спасибо @Glenn за редактирование. Действительно, это *** много для многих отношений вообще ***. Но, как вывод, я сказал один для многих специально для дела OP. –

+0

wow Спасибо @Lalit Kumar B Но я не использую tnsnames.ora и listener.ora. Я не установил Oracle Client – Vert

+0

Что касается 'tnsnames.ora' и' listener.ora', это зависит, ссылаетесь ли вы на базы данных локально или по сети. –