ORA-01017 là một trong những lỗi thường gặp khi kết nối với cơ sở dữ liệu oracle.
Đây là tài liệu nói về lỗi này
Đây là danh sách kiểm tra cần chạy để giải quyết ORA-01017:tên người dùng / mật khẩu không hợp lệ
(1) Vấn đề chính với ORA-01017 lỗi là sự kết hợp ID người dùng và mật khẩu không hợp lệ. Bạn phải đảm bảo rằng bạn đang nhập đúng mật khẩu
Trong trường hợp hệ thống đích là 11g, mật khẩu có thể phân biệt chữ hoa chữ thường
Bạn có thể kiểm tra thông số trong hệ thống
SQL> SHOW PARAMETER SEC_CASE_SENSITIVE_LOGON NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ sec_case_sensitive_logon boolean TRUE SQL>
Khi thông số trên được đặt thành true, phân biệt chữ hoa chữ thường bật, Bạn có thể tắt nó và kiểm tra lại kết nối
SQL> ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE; System altered.
Và thử kết nối. Nếu nó hoạt động, thì bạn biết vấn đề là phân biệt chữ hoa chữ thường, bạn có thể muốn thay đổi mật khẩu người dùng và viết nó vào đâu đó để ghi nhớ mật khẩu phân biệt chữ hoa chữ thường và sau đó bật lại tham số hệ thống
SQL> ALTER user test identified by TEST1; User altered. SQL> ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = TRUE; System altered.
(2) Có thể ID người dùng không hợp lệ đối với hệ thống đích. Kiểm tra xem ID người dùng có tồn tại dưới dạng cột tên người dùng trong chế độ xem dba_users hay không.
select username from dba_users where username ='<user name>';
(3) Kiểm tra thông số môi trường $ ORACLE_SID hoặc $ TWO_TASK của bạn. Nếu $ ORACLE_SID của bạn được đặt thành cơ sở dữ liệu sai thì bạn có thể nhận được ORA-01017 lỗi do bạn đang kết nối với cơ sở dữ liệu oracle sai.
(4) Kiểm tra tnsnames.ora của bạn để đảm bảo rằng dịch vụ TNS đang trỏ đến cơ sở dữ liệu bên phải. Bạn cũng có thể sử dụng lệnh tnsping để kiểm tra điều đó
TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 22-JUNE-2016 23:01:06 Copyright (c) 1997, 2014, Oracle. All rights reserved. Used parameter files: /oracle/product/11.2.0.4/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = techgoeasy.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = TEST))) OK (0 msec)
(5) Bạn có thể gặp lỗi ORA-01017 trong môi trường thẻ dữ liệu và cả môi trường chờ
Đảm bảo rằng mật khẩu người dùng SYS giống nhau ở cả Mặt chính và chế độ chờ. Tạo tệp mật khẩu oracle bằng orapwd với cùng một mật khẩu ở cả mặt chính và chế độ chờ
Với cơ sở dữ liệu Oracle 12c, trong trường hợp cơ sở dữ liệu RAC chính, chúng ta cần có tệp mật khẩu tại vị trí chia sẻ
orapwd file='+DATA/TEST/PASSWORDFILE/oraTEST' entries=10 dbuniquename=TEST password=<sys pass>
(6) Đôi khi, có thể có lý do khác gây ra lỗi và ORA-01017 là lỗi gây hiểu nhầm.
Bạn có thể theo dõi ngăn xếp cuộc gọi bằng cách sử dụng lệnh truss hoặc theo dõi
Linux: strace -o /tmp/strace_user.output -cfT sqlplus Scott/[email protected] AIX, Solaris: truss -fea -o /tmp/truss_user.output sqlplus scott/[email protected] HP-UX: tusc -afpo /tmp/tusc_user.output -aef sqlplus scott/[email protected]
(7) Lỗi này cũng có thể gặp phải trong quá trình sao chép hoạt động RMAN
Cause The SYS password is not the same between the original/source database and auxiliary/duplicate database. SOLUTION Perform the following steps: 1) Copy the password file from the original/source database to the auxiliary/duplicate database. 2) Run the following OS command "cksum" to check whether the password files are the same on both the original/source database and auxiliary/duplicate database. cksum {password_file_name}
(8) Mật khẩu không phân biệt chữ hoa chữ thường và ORA-1017 Tên người dùng hoặc Mật khẩu không hợp lệ
Giao thức xác thực mặc định của Oracle Database 12c release 2 (12.2) là 12 (Chế độ độc quyền). Giao thức này yêu cầu mật khẩu phân biệt chữ hoa chữ thường để xác thực. Xem lại các tùy chọn của bạn nếu bạn có các phiên bản mật khẩu phát hành trước đó.
Bắt đầu với Oracle Database 12c release 2 (12.2), giá trị mặc định cho tham số SQLNET.ORA ALLOWED_LOGON_VERSION_SERVER được thay đổi thành 12. Tham số này đề cập đến giao thức xác thực đăng nhập được sử dụng cho máy chủ, không phải bản phát hành Cơ sở dữ liệu Oracle.
Theo mặc định, Oracle không còn hỗ trợ xác thực dựa trên mật khẩu không phân biệt chữ hoa chữ thường; chỉ cho phép các phiên bản mật khẩu mới (11G và 12C). Phiên bản mật khẩu 10G không phân biệt chữ hoa chữ thường không còn được tạo nữa.
Nếu bạn có các tài khoản yêu cầu phiên bản mật khẩu 10G, thì để ngăn tài khoản sử dụng phiên bản mật khẩu đó bị khóa khỏi cơ sở dữ liệu, bạn có thể thay đổi từ Chế độ độc quyền sang giao thức xác thực dễ dãi hơn.
Phiên bản mật khẩu có thể được kiểm tra là
select username,password_version from dba_users;
Đăng nhập với tư cách quản trị viên.
Chỉnh sửa tệp SQLNET.ORA để thay đổi cài đặt SQLNET.ALLOWED_LOGON_VERSION_SERVER từ mặc định, 12, thành 11 hoặc thấp hơn. Ví dụ:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=11
(9) ORA-01017 sử dụng “sqlplus / as sysdba”
Điều này có thể xảy ra nếu người dùng hệ điều hành mà bạn đang cố gắng sử dụng lệnh trên không phải là thành viên của nhóm dba.
Đảm bảo rằng người dùng hệ điều hành là một phần của nhóm DBA.
Ngoài ra, hãy kiểm tra sqlnet.ora. Nếu bạn có sqlnet.authentication_services =none, thì bạn cũng có thể gặp lỗi này
Hy vọng bạn thích nội dung trên ORA-01017 tên người dùng / mật khẩu không hợp lệ
Các bài viết có liên quan
ORA-00911:Bài đăng này dành cho các nguyên nhân phổ biến của ORA-00911:ký tự không hợp lệ trong oracle với các ví dụ và cách giải quyết để giúp bạn hoàn thành công việc
ORA-29913:mẹo khắc phục sự cố đối với các lỗi ORA như ora- 29913:lỗi khi thực thi chú thích odciexttableopen, hoặc-29913:lỗi khi thực thi chú thích odciexttablefetch
ORA-00257:Tìm hiểu cách khắc phục lỗi trình lưu trữ ORA-00257. Chỉ kết nối lỗi nội bộ. Độ phân giải và ví dụ khác nhau được cung cấp theo từng bước.
thay đổi người dùng được xác định bằng các giá trị:Tìm hiểu về mật khẩu Oracle, được lưu trữ trong cơ sở dữ liệu, thuật toán, cách đăng nhập với tư cách người dùng mà không cần thay đổi mật khẩu oracle bằng cách sử dụng người dùng thay đổi được xác định bởi các giá trị
ORA-28000:ORA-28000 tài khoản bị khóa là lỗi rất phổ biến. Xem bài đăng này để biết cách giải quyết nó từng bước một cách dễ dàng mà không gặp bất kỳ vấn đề nào
ORA-00904:Bài đăng này để biết mô tả và các giải pháp khả thi của ORA-00904:không hợp lệ. Mẹo khắc phục sự cố cũng được cung cấp
ORA -28002:Bài đăng này về cách giải quyết ORA-28002, mật khẩu sẽ hết hạn. Có thể làm gì để tránh hoàn toàn nó bằng cách tạo hồ sơ mới
Tài liệu Oracle 12.2