Password file có vai trò lưu trữ password của các user mạnh (có quyền SYSDBA, SYSOPER, SYSASM), nhằm mục đích hỗ trợ khả năng đăng nhập từ xa cho các user mạnh ngay cả khi database không open.

 

Khi tạo database bằng DBCA, password file được tạo ra trong thư mục ORACLE_HOME/dbs trên Linux, với tên file theo định dạng orapw<SID>

 

 

Tham số remote_login_passwordfile: kiểm soát việc sử dụng password file. Tham số này khi thay đổi phải restart lại database.

 

  • None: không dùng password file, phải dùng xác thực hệ điều hành
  • Shared: cho phép nhiều db dùng chung 1 password file, tuy nhiên chỉ lưu password của user SYS và không thay đổi được, trừ khi tạo lại password file. Cấu hình này thực ra không ý nghĩa lắm, và không khuyến khích thiết lập
  • Exclusive: mỗi database có 1 password file riêng. Đây là cấu hình mặc định. user nào được cấp quyền mạnh (SYSDBA, SYSOPER, SYSASM) sẽ được lưu password trong đây

 

VD nếu ta set về None, không thể đăng nhập được bằng password:

 

 

Để kiểm tra các user có quyền mạnh:

 

 

Nếu không có password file, hoặc bị mất, ta có thể tạo lại bằng công cụ orapwd

 

 

Ý nghĩa:

file: tên password file, đặt theo định dạng orapw<SID>. Nên chỉ định rõ đường dẫn, hoặc vào trong thư mục ORACLE_HOME/dbs để tạo không cần chỉ định đường dẫn

password: password cho user SYS. Nếu không để ở dòng lệnh thì sẽ hiện ra dấu nhắc.

entries: số user tối đa được lưu vào đây

force: ghi đè nếu đã có password file tồn tại

ignorecase: bỏ qua phân biệt hoa thường

nosysdba: liên quan đến cấu hình Database Vault, cơ bản là khóa đăng nhập bằng SYSDBA từ xa, bằng SYSOPER vẫn được.

 

VD ta tạo lại password file:

 

 

Password file cơ bản không phải là tập tin có mức độ ảnh hưởng lớn đối với database. Nếu không có hoặc bị hư, hay muốn set lại password cho user SYS, ta có thể dễ dàng tạo lại bằng công cụ orapwd như trên.