Quản trị Password File trong Oracle Database là một khía cạnh quan trọng để kiểm soát truy cập và bảo mật cho các tài khoản quản trị. Password File được sử dụng để xác thực người dùng khi thực hiện kết nối từ xa với tư cách SYSDBA, SYSOPER, hoặc các đặc quyền quản trị khác.
Tại sao Oracle lưu password trong file mà không phải database?
Lưu tập tin password riêng biệt ngoài cơ sở dữ liệu là một phần quan trọng của chiến lược bảo mật và quản lý cơ sở dữ liệu trong Oracle. Nó giúp bảo vệ thông tin xác thực, tạo khả năng khôi phục dự phòng và cải thiện hiệu suất trong quá trình quản lý người dùng và quyền hạn.
Nếu ko có file password file thì user có quyền sysdba, sysoper do user sys tao ra cũng ko thể đăng nhập với quyền sysdba được (/ as sysdba) bởi vì ngoài user sys ra thì nếu muốn đăng nhập với quyền sysdba phải xác thực thông qua file pasword file. Nếu chúng ta xoá password file đi thì ngay cả user sys cũng không đăng nhập được vào database, vì theo mặc định trong password file có dữ liệu của user sys rồi.
Oracle lưu tập tin password (password file) ngoài cơ sở dữ liệu chính (database) thay vì lưu trực tiếp trong cơ sở dữ liệu vì có những lợi ích và quyết định bảo mật sau:
Bảo mật cao hơn: Lưu trữ thông tin xác thực (như mật khẩu) trong cơ sở dữ liệu chính làm tăng nguy cơ bảo mật. Nếu thông tin xác thực bị xâm nhập, tất cả người dùng và quyền truy cập cơ sở dữ liệu có thể bị đe dọa. Tập tin password đặc biệt được thiết kế để cung cấp một lớp bảo vệ bổ sung cho thông tin xác thực, bảo vệ nó khỏi các mối đe dọa tiềm năng.
Dự phòng và khôi phục: Tập tin password thường được sao lưu định kỳ cùng với dự phòng cơ sở dữ liệu. Nếu cơ sở dữ liệu gặp sự cố hoặc cần khôi phục từ một bản sao lưu, tập tin password có thể giúp bạn khôi phục quyền truy cập mà không cần phải phục hồi cơ sở dữ liệu từ đầu.
Hiệu suất: Truy cập thông tin xác thực từ tập tin password thường nhanh hơn so với truy vấn dữ liệu trong cơ sở dữ liệu để kiểm tra quyền truy cập. Điều này đặc biệt quan trọng khi cơ sở dữ liệu đang chạy trong tình trạng bảo trì hoặc sự cố, và hiệu suất truy cập cơ sở dữ liệu cần phải được đảm bảo.
Quản lý người dùng và quyền hạn: Tập tin password là nơi người quản trị cơ sở dữ liệu có thể tạo, chỉnh sửa và xóa người dùng, cũng như quản lý vai trò và quyền truy cập. Việc quản lý người dùng và quyền hạn thông qua tập tin password rất quan trọng để bảo đảm tính toàn vẹn và quyền truy cập trong cơ sở dữ liệu.
Các bước quản trị Password File trong Oracle Database
1. Tạo Password File
Để tạo một Password File mới, bạn sử dụng tiện ích orapwd. Ví dụ, để tạo một Password File cho một instance Oracle có SID là ORCL, bạn làm như sau:
orapwd file=$ORACLE_HOME/dbs/orapwORCL password=your_password entries=10
file: Đường dẫn và tên của Password File.
password: Mật khẩu cho tài khoản SYS.
entries: Số lượng tối đa các mục người dùng có thể lưu trữ trong Password File.
2. Cấu hình Password File
Sau khi tạo Password File, bạn cần đảm bảo rằng tham số REMOTE_LOGIN_PASSWORDFILE trong tệp init.ora hoặc spfile được đặt chính xác.
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE;
Giá trị của REMOTE_LOGIN_PASSWORDFILE có thể là:
NONE: Không sử dụng Password File.
SHARED: Một Password File được chia sẻ giữa nhiều instance (không khuyến khích).
EXCLUSIVE: Mỗi instance có một Password File riêng (khuyến khích).
3. Thêm người dùng vào Password File
Để thêm người dùng vào Password File với các đặc quyền SYSDBA hoặc SYSOPER, bạn sử dụng lệnh SQL sau: (đơn giản là chúng ta gán quyền sysdba và sysoper cho user =>> chúng sẽ được tự động thêm vào)
GRANT SYSDBA TO username; GRANT SYSOPER TO username;
Người dùng được thêm vào Password File sẽ có thể kết nối từ xa với các đặc quyền quản trị.
4. Kiểm tra Password File
Để kiểm tra các người dùng hiện có trong Password File với các đặc quyền SYSDBA hoặc SYSOPER, bạn có thể sử dụng câu lệnh SQL sau:
SELECT * FROM V$PWFILE_USERS;
5. Quản lý Password File
Đổi mật khẩu người dùng SYS
Để thay đổi mật khẩu cho người dùng SYS, bạn sử dụng lệnh SQL:
ALTER USER SYS IDENTIFIED BY new_password;
Xóa người dùng khỏi Password File (revoke quyền sysdba…)
REVOKE SYSDBA FROM username;
6. Sao lưu Password File
Password File cần được sao lưu cùng với các tệp quan trọng khác của Oracle Database để đảm bảo có thể khôi phục trong trường hợp sự cố.
cp $ORACLE_HOME/dbs/orapwORCL /backup/location/orapwORCL.bak
7. Xóa Password File
Để xóa Password File, bạn chỉ cần xóa tệp tương ứng:
rm $ORACLE_HOME/dbs/orapwORCL