Trong Oracle Database, quyền (privileges) của người dùng có thể được chia thành ba loại chính: quyền hệ thống (system privileges), quyền đối tượng (object privileges) và quyền Role (role privileges). Mỗi loại quyền này cho phép người dùng thực hiện các hành động khác nhau trong cơ sở dữ liệu.
Các loại quyền của users trong Oracle database | Privileges in Oracle database
1. Quyền Hệ Thống (System Privileges)
Quyền hệ thống cho phép người dùng thực hiện các hành động cấp cao trong cơ sở dữ liệu như tạo bảng, tạo người dùng, sao lưu cơ sở dữ liệu, và nhiều hành động khác.
Ví dụ về quyền hệ thống:
- CREATE SESSION: Cho phép người dùng đăng nhập vào cơ sở dữ liệu.
- CREATE TABLE: Cho phép người dùng tạo bảng trong cơ sở dữ liệu.
- CREATE USER: Cho phép người dùng tạo tài khoản người dùng mới.
- ALTER USER: Cho phép người dùng sửa đổi tài khoản người dùng hiện có.
- DROP USER: Cho phép người dùng xóa tài khoản người dùng.
- CREATE VIEW: Cho phép người dùng tạo view.
- CREATE ANY TABLE: Cho phép người dùng tạo bảng trong bất kỳ lược đồ nào.
- ALTER ANY TABLE: Cho phép người dùng sửa đổi bảng trong bất kỳ lược đồ nào.
- DROP ANY TABLE: Cho phép người dùng xóa bảng trong bất kỳ lược đồ nào.
- SELECT ANY TABLE: Cho phép người dùng truy vấn bất kỳ bảng nào.
- INSERT ANY TABLE: Cho phép người dùng chèn dữ liệu vào bất kỳ bảng nào.
- UPDATE ANY TABLE: Cho phép người dùng cập nhật dữ liệu trong bất kỳ bảng nào.
- DELETE ANY TABLE: Cho phép người dùng xóa dữ liệu khỏi bất kỳ bảng nào.
- EXECUTE ANY PROCEDURE: Cho phép người dùng thực thi bất kỳ thủ tục hoặc hàm nào.
2. Quyền Đối Tượng (Object Privileges)
Quyền đối tượng cho phép người dùng thực hiện các hành động cụ thể trên các đối tượng cơ sở dữ liệu như bảng, view, thủ tục, và gói.
Ví dụ về quyền đối tượng:
- SELECT: Cho phép người dùng truy vấn dữ liệu từ bảng hoặc view.
- INSERT: Cho phép người dùng chèn dữ liệu vào bảng hoặc view.
- UPDATE: Cho phép người dùng cập nhật dữ liệu trong bảng hoặc view.
- DELETE: Cho phép người dùng xóa dữ liệu khỏi bảng hoặc view.
- EXECUTE: Cho phép người dùng thực thi thủ tục hoặc hàm.
- ALTER: Cho phép người dùng sửa đổi cấu trúc của bảng hoặc view.
- INDEX: Cho phép người dùng tạo chỉ mục trên bảng.
- REFERENCES: Cho phép người dùng tạo ràng buộc khóa ngoại trên bảng.
3. Quyền Vai Trò (Role Privileges)
Vai trò (role) là một tập hợp các quyền hệ thống và quyền đối tượng được gán cho người dùng hoặc các vai trò khác. Sử dụng vai trò giúp đơn giản hóa việc quản lý quyền.
Ví dụ về vai trò mặc định trong Oracle Database:
- CONNECT: Một vai trò cơ bản cho phép người dùng đăng nhập vào cơ sở dữ liệu và thực hiện các thao tác cơ bản.
- RESOURCE: Vai trò này cho phép người dùng tạo và quản lý các đối tượng của riêng họ.
- DBA: Vai trò này có tất cả các quyền hệ thống và thường được gán cho các quản trị viên cơ sở dữ liệu.
Cách gán quyền và role cho người dùng
Gán quyền hệ thống cho người dùng:
GRANT CREATE SESSION TO username; GRANT CREATE TABLE TO username;
Gán quyền đối tượng cho người dùng:
GRANT SELECT, INSERT ON employees TO username; GRANT EXECUTE ON procedure_name TO username;
Gán role cho người dùng:
GRANT CONNECT TO username; GRANT RESOURCE TO username;
Cách kiểm tra quyền của người dùng
Để kiểm tra quyền của người dùng, bạn có thể truy vấn các bảng từ điển dữ liệu như DBA_SYS_PRIVS, DBA_TAB_PRIVS, và DBA_ROLE_PRIVS.
Kiểm tra quyền hệ thống của người dùng:
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'USERNAME';
Kiểm tra quyền đối tượng của người dùng:
SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = 'USERNAME';
Kiểm tra role của người dùng:
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'USERNAME';
Như vậy:
Oracle Database cung cấp ba loại quyền chính: quyền hệ thống, quyền đối tượng và role. Quyền hệ thống cho phép người dùng thực hiện các hành động cấp cao, quyền đối tượng cho phép thực hiện các hành động cụ thể trên các đối tượng cơ sở dữ liệu, và roles là tập hợp các quyền để đơn giản hóa quản lý quyền. Việc quản lý đúng các quyền này là rất quan trọng để đảm bảo an toàn và hiệu quả trong việc sử dụng cơ sở dữ liệu.