Làm cách nào để giải quyết ORA-01031: lỗi không đủ đặc quyền khi cài đặt Windows?


11

Tôi đã cài đặt Oracle 11G trên Máy chủ Windows 2008 R2. Tôi cũng đã cài đặt Thư viện khách hàng của Oracle bằng phương tiện cài đặt riêng. Sau khi cài đặt máy khách, khi tôi cố gắng đăng nhập vào cơ sở dữ liệu bằng cách sử dụng:

C:\>sqlplus / as sysdba

Tôi gặp một lỗi sau:

ORA-01031: không đủ đặc quyền

Điều này làm việc trước khi cài đặt máy khách. Tài khoản của tôi thuộc ORA_DBAnhóm. Tài khoản của tôi cũng thuộc nhóm Quản trị viên. Tôi đã không ORACLE_SIDthiết lập trong danh sách các biến môi trường của tôi. Nó có phải là? Điều này hoạt động trước khi cài đặt máy khách và tôi cũng không có biến đó.

UAC ở mức thấp nhất và tôi luôn chạy cmdvới tư cách quản trị viên.

Tôi có một sqlnet.oratập tin như thế này trong thư mục:

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)
    )
  )

người nghe

# 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

Từ sổ đăng ký windows (sử dụng regedit), từ đường dẫn Computer > HKEY_LOCAL_MACHINE > SOFTWARE > Wow6432Node > ORACLEtôi có thể tìm thấy hai khóa:

KEY_OraClient11g_home1
KEY_OraDb11g_home1

Và dưới các khóa đó tôi có thể tìm thấy ORACLE_HOMEcác biến. Vì vậy, có vẻ như cài đặt máy khách được tạo ra ORACLE_HOMEđể bây giờ tôi có hai ORACLE_HOMEs. Tôi không biết nếu điều này có liên quan đến vấn đề này?

Làm cách nào để khắc phục lỗi này trên máy Windows của tôi?

Câu trả lời:


7

Vấn đề là cài đặt Máy khách Oracle của bạn nằm trong hệ thống PATH trước khi cài đặt Máy chủ Oracle của bạn (thực tế, bạn thậm chí còn đề cập rằng nó đã hoạt động trước khi bạn cài đặt máy khách).

Tiến hành như sau:

  1. Xóa Máy khách Oracle vì nó chỉ là những điều khó hiểu. Sử dụng tùy chọn gỡ cài đặt nhưng sau đó kiểm tra xem thư mục và khóa đăng ký Oracle Client đã biến mất và xóa bằng tay nếu cần.

    (Có thể làm việc này bằng cách nhờ nhà Oracle khách hàng trong đường dẫn sau các nhà máy chủ, nhưng nó đơn giản hơn nhiều để chỉ có Một cài đặt máy chủ Oracle cài đặt. Đơn đã có chứa một khách hàng Oracle hoàn anyway).

  2. Hãy chắc chắn rằng đường dẫn đến nhà của máy chủ nằm trong ĐƯỜNG của bạn. Và không có nhà Oracle nào khác đang trên đường.

  3. Đảm bảo rằng tài khoản của bạn nằm trong nhóm ORA_DBA. Kiểm tra kỹ điều này, đặc biệt nếu bạn đang sử dụng tên miền.

  4. Nếu vẫn thất bại, bạn có thể xóa SQLNET.AUTHENTICATION_SERVICES=(NTS)khỏi sqlnet.ora vì điều này sẽ buộc bạn phải sử dụng xác thực mật khẩu.


Đã giúp tôi đặt thùng OracleXE trước thùng của khách hàng trong PATH
mmey

vấn đề của tôi là SQLNET.AUTHENTICATION_SERVICE = (KHÔNG) thay vì NTS
jcho360

0

Tôi đã cài đặt cả 10g và 11g trên máy tính xách tay của mình, cộng với ứng dụng khách OBIEE gần đây nhất. Tôi đã từng có thể đăng nhập như sysdb đến 11g, nhưng đã nhận được sáng nay:

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

Tôi đã giải quyết vấn đề bằng cách làm như sau:

  1. khởi động db & listener;
  2. đảm bảo tnsname hoạt động bằng cách tnsping orcl; sau đó
  3. set ORACLE_SID=orcl
  4. sqlplus sys/"passwd"@orcl as sysdba

Hi vọng điêu nay co ich.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.