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>
1 2 3 |
[oracle@orcldb01 dbs]$ ls -l orapw* -rw-r----- 1 oracle oinstall 1536 Sep 7 15:19 orapworcldb01 |
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:
1 2 3 4 |
SQL> conn sys/oracle_4U@orcldb01 as sysdba ERROR: ORA-01017: invalid username/password; logon denied |
Để kiểm tra các user có quyền mạnh:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
SQL> select * from v$pwfile_users; USERNAME SYSDB SYSOP SYSAS ------------------------------ ----- ----- ----- SYS TRUE TRUE FALSE SQL> grant sysoper to scott; Grant succeeded. SQL> select * from v$pwfile_users; USERNAME SYSDB SYSOP SYSAS ------------------------------ ----- ----- ----- SYS TRUE TRUE FALSE SCOTT FALSE TRUE FALSE |
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
1 2 3 4 5 6 7 8 9 10 11 12 |
$ orapwd Usage: orapwd file=<fname> entries=<users> force=<y/n> ignorecase=<y/n> nosysdba=<y/n> where file - name of password file (required), password - password for SYS will be prompted if not specified at command line, entries - maximum number of distinct DBA (optional), force - whether to overwrite existing file (optional), ignorecase - passwords are case-insensitive (optional), nosysdba - whether to shut out the SYSDBA logon (optional Database Vault only). There must be no spaces around the equal-to (=) character. |
Ý 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:
1 |
[oracle@orcldb01 dbs]$ orapwd file=orapworcldb01 password=oracle_4U entries=5 force=y |
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.
Leave a Reply