Як вирішити ORA-01031: недостатня помилка привілеїв при встановленні Windows?


12

Я встановив Oracle 11G на своєму сервері Windows 2008 R2. Я також встановив бібліотеки клієнтів Oracle, використовуючи окремі носії для встановлення. Після установки клієнта, коли я намагаюся увійти в базу даних, використовуючи:

C:\>sqlplus / as sysdba

Я отримую таку помилку:

ORA-01031: недостатня кількість пільг

Це працювало до встановлення клієнта. Мій рахунок у ORA_DBAгрупі. Мій обліковий запис також знаходиться в групі адміністратора. Я не ORACLE_SIDвстановив у своєму списку змінних середовища. Чи має бути? Це працювало до встановлення клієнта, і я не мав цієї змінної в той час.

UAC працює на найнижчому рівні, і я завжди працюю cmdадміністратором.

У мене в sqlnet.oraпапці такий файл:

C:\app\myaccount\product\11.2.0\dbhome_1\NETWORK\ADMIN

sqlnet.ora

# sqlnet.ora Network Configuration File: C:\app\myaccount\product\11.2.0\dbhome_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

# This file is actually generated by netca. But if customers choose to 
# install "Software Only", this file wont exist and without the native 
# authentication, they will not be able to connect to the database on NT.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

tnsnames.ora

# tnsnames.ora Network Configuration File: C:\app\myaccount\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.mydb.com)
    )
  )

listener.ora

# listener.ora Network Configuration File: C:\app\myaccount\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\myaccount\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\myaccount\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = C:\app\myaccount

З реєстру Windows (використовуючи regedit), з шляху Computer > HKEY_LOCAL_MACHINE > SOFTWARE > Wow6432Node > ORACLEя можу знайти два ключі:

KEY_OraClient11g_home1
KEY_OraDb11g_home1

І під тими клавішами я можу знайти ORACLE_HOMEзмінні. Тож здається, що клієнтська установка генерувала також ORACLE_HOMEтак, що в мене зараз два ORACLE_HOMEs. Я не знаю, чи це пов'язане з цією проблемою?

Як вирішити цю помилку на моїй машині Windows?

Відповіді:


7

Проблема полягає в тому, що ваша установка Oracle Client знаходиться в системі PATH перед установкою Oracle Server (адже ви навіть згадуєте, що вона працювала до встановлення клієнта).

Виконайте наступне:

  1. Видаліть Oracle Client, оскільки це лише заплутано. Скористайтеся опцією видалення, але після цього перевірте, чи каталог та ключ реєстру клієнта Oracle відсутні та видаліть вручну, якщо необхідно.

    (Це можливо зробити так, якщо клієнт Oracle перейде додому після дому сервера, але набагато простіше просто встановити одну установку. Встановлення сервера Oracle у будь-якому випадку вже містить повний клієнт Oracle).

  2. Переконайтесь, що шлях до дому сервера знаходиться у вашій ПАРТІ. І жоден інший дім Oracle не стоїть на шляху.

  3. Переконайтеся, що ваш обліковий запис належить до групи ORA_DBA. Двічі перевірте це, особливо якщо ви використовуєте домени.

  4. Якщо все інше не вдасться, ви можете видалити його SQLNET.AUTHENTICATION_SERVICES=(NTS)з sqlnet.ora, оскільки це змусить вас використовувати автентифікацію пароля.


Допоміг мені поставити контейнер OracleXE перед тим, як клієнт
покладає

моє видання було SQLNET.AUTHENTICATION_SERVICES = (NONE) замість NTS
jcho360

0

У мене на ноутбуці встановлені і 10 г, і 11 г, а також клієнт OBIEE останнім часом. Раніше я міг увійти як sysdb до екземпляра 11g, але отримав наступне вранці:

SQL> conn / as sysdba
ERROR:
ORA-01031: insufficient privileges

Я вирішив проблему, зробивши наступне:

  1. запуск db & listener;
  2. переконайтеся, що tnsname працює tnsping orcl; тоді
  3. set ORACLE_SID=orcl
  4. sqlplus sys/"passwd"@orcl as sysdba

Сподіваюсь, це допомагає.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.