วิธีการแก้ไข ORA-01031: ข้อผิดพลาดสิทธิ์ไม่เพียงพอในการติดตั้ง Windows


12

ฉันติดตั้ง Oracle 11G บนเซิร์ฟเวอร์ Windows 2008 R2 ของฉัน ฉันยังติดตั้ง Oracle Client Libraries โดยใช้สื่อการติดตั้งแยกต่างหาก หลังจากการติดตั้งไคลเอนต์เมื่อฉันพยายามเข้าสู่ระบบฐานข้อมูลโดยใช้:

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 ของคุณอยู่ในเส้นทางของระบบก่อนการติดตั้ง Oracle Server ของคุณ (ในความเป็นจริงคุณยังพูดถึงว่ามันทำงานก่อนที่คุณจะติดตั้งไคลเอนต์)

ดำเนินการดังนี้:

  1. ลบไคลเอนต์ Oracle เนื่องจากสับสนเท่านั้น ใช้ตัวเลือกถอนการติดตั้ง แต่หลังจากนั้นให้ตรวจสอบว่าไดเรกทอรีและคีย์รีจิสตรีของ Oracle ไคลเอ็นต์หายไปและลบด้วยมือหากจำเป็น

    (เป็นไปได้ที่จะทำให้สิ่งนี้ทำงานได้โดยมี Oracle client home อยู่ในพา ธหลังจาก home server แต่ง่ายกว่ามากที่จะมีเพียงแค่การติดตั้งครั้งเดียวการติดตั้งเซิร์ฟเวอร์ Oracle นั้นมีไคลเอ็นต์ Oracle ที่สมบูรณ์อยู่แล้ว)

  2. ตรวจสอบให้แน่ใจว่าเส้นทางไปยังบ้านของเซิร์ฟเวอร์อยู่ใน PATH ของคุณ และไม่มีบ้านอื่น ๆ ของออราเคิลอยู่ในเส้นทาง

  3. ตรวจสอบให้แน่ใจว่าบัญชีของคุณอยู่ในกลุ่ม ORA_DBA ตรวจสอบอีกครั้งโดยเฉพาะถ้าคุณใช้โดเมน

  4. หากสิ่งอื่นล้มเหลวคุณสามารถลบออกSQLNET.AUTHENTICATION_SERVICES=(NTS)จาก sqlnet.ora ของคุณได้เนื่องจากจะทำให้คุณต้องใช้การตรวจสอบสิทธิ์ด้วยรหัสผ่าน


ช่วยให้ฉันใส่ถัง OracleXE ก่อนที่ลูกค้าถังขยะในเส้นทาง
mmey

ปัญหาของฉันคือ SQLNET.AUTHENTICATION_SERVICES = (ไม่มี) แทน NTS
jcho360

0

ฉันติดตั้งทั้ง 10g และ 11g บนแล็ปท็อปของฉันรวมถึงไคลเอนต์ OBIEE ล่าสุด ฉันเคยสามารถเข้าสู่ระบบเป็นอินสแตนซ์ sysdb ถึง 11g ได้ แต่เช้าวันนี้:

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

ฉันแก้ไขปัญหาโดยทำสิ่งต่อไปนี้:

  1. db เริ่มต้น & ฟัง;
  2. ตรวจสอบให้แน่ใจ tnsname ทำงานโดยtnsping orcl; แล้วก็
  3. set ORACLE_SID=orcl
  4. sqlplus sys/"passwd"@orcl as sysdba

หวังว่านี่จะช่วยได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.