Quản trị các phương thức xác thực người dùng (Administering User Authentication Methods) trong Oracle Database là một nhiệm vụ quan trọng để đảm bảo rằng chỉ có những người dùng hợp lệ mới có thể truy cập vào cơ sở dữ liệu. Oracle Database hỗ trợ nhiều phương thức xác thực khác nhau, bao gồm xác thực bằng mật khẩu, xác thực hệ điều hành, xác thực qua mạng, và xác thực dựa trên chứng chỉ. Dưới đây là cách quản trị các phương thức này.
1. Xác Thực Bằng Mật Khẩu (Password Authentication)
Đây là phương thức xác thực cơ bản nhất trong Oracle Database. Mật khẩu của người dùng được lưu trữ trong cơ sở dữ liệu và được sử dụng để xác thực mỗi khi người dùng đăng nhập.
Tạo Người Dùng Với Mật Khẩu
CREATE USER username IDENTIFIED BY password;
Gán Quyền Cho Người Dùng
GRANT CONNECT, RESOURCE TO username;
Thay Đổi Mật Khẩu Người Dùng
ALTER USER username IDENTIFIED BY new_password;
2. Xác Thực Hệ Điều Hành (Operating System Authentication)
Trong phương thức này, Oracle Database sử dụng thông tin đăng nhập của hệ điều hành để xác thực người dùng. Người dùng hệ điều hành phải được đặt tên bắt đầu với OPS$ hoặc OS_AUTHENT_PREFIX nếu có thay đổi.
Nếu bạn không muốn sử dụng tiền tố mặc định của Oracle OPS => bạn có thể thay đổi trong tham số: OS_AUTHENT_PREFIX
show parameter os_authent_prefix
Đặt lại tham số bạn muốn:
ALTER SYSTEM SET os_authent_prefix='duong' SCOPE=SPFILE;
Tìm tệp sqlnet.ora, thường nằm trong thư mục $ORACLE_HOME/network/admin.
SQLNET.AUTHENTICATION_SERVICES = (NTS)
Tạo Người Dùng Với Xác Thực Hệ Điều Hành
Ví dụ, nếu bạn muốn người dùng hệ điều hành oracle_user có thể đăng nhập vào cơ sở dữ liệu mà không cần mật khẩu:
CREATE USER ops$oracle_user IDENTIFIED EXTERNALLY;
Gán Quyền Cho Người Dùng
GRANT CONNECT, RESOURCE TO ops$oracle_user;
3. Xác Thực Qua Mạng (Network Authentication)
Oracle có thể tích hợp với các dịch vụ xác thực mạng như Kerberos, RADIUS, hoặc sử dụng các dịch vụ thư mục như Oracle Internet Directory (OID) để xác thực người dùng.
Cấu Hình Xác Thực Kerberos
Cấu hình tệp sqlnet.ora: (tệp này nằm trong /network/admin)
SQLNET.AUTHENTICATION_SERVICES = (KERBEROS5) SQLNET.KERBEROS5_CONF = /path/to/krb5.conf SQLNET.KERBEROS5_KEYTAB = /path/to/krb5.keytab
Tạo Người Dùng Với Xác Thực Kerberos:
CREATE USER username IDENTIFIED GLOBALLY AS 'principal_name';
4. Xác Thực Dựa Trên Chứng Chỉ (Certificate Authentication)
Oracle Database có thể sử dụng chứng chỉ số để xác thực người dùng. Chứng chỉ này được cấp bởi một cơ quan chứng nhận (CA).
Cấu Hình Xác Thực Chứng Chỉ
Cấu hình tệp sqlnet.ora:
SQLNET.AUTHENTICATION_SERVICES = (TCPS) SSL_CLIENT_AUTHENTICATION = TRUE WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /path/to/wallet)))
Tạo Người Dùng Với Xác Thực Chứng Chỉ:
CREATE USER username IDENTIFIED BY CERTIFICATE;
5. Kiểm Soát và Quản Lý
Kiểm Tra Phương Thức Xác Thực Hiện Tại
SELECT username, password, authentication_type FROM dba_users WHERE username = 'USERNAME';
Thu Hồi Quyền Truy Cập
ALTER USER username ACCOUNT LOCK;
Xóa Người Dùng
DROP USER username CASCADE;
Quản trị các phương thức xác thực người dùng trong Oracle Database là một phần quan trọng của bảo mật cơ sở dữ liệu. Việc hiểu và sử dụng đúng các phương thức xác thực sẽ giúp đảm bảo rằng chỉ những người dùng hợp lệ mới có thể truy cập và thực hiện các thao tác trên cơ sở dữ liệu. Điều này không chỉ bảo vệ dữ liệu mà còn giúp duy trì hiệu suất và ổn định của hệ thống.