Trong Oracle Database, quản trị role (vai trò) là một phần quan trọng của việc quản lý quyền truy cập vào cơ sở dữ liệu. Role là tập hợp các quyền được gom nhóm lại và được gán cho người dùng hoặc các đối tượng khác trong cơ sở dữ liệu. Dưới đây là một số hoạt động liên quan đến quản trị role trong Oracle:
Tạo Role
Bạn có thể tạo một role mới trong Oracle bằng lệnh CREATE ROLE.
CREATE ROLE role_name;
Gán Quyền cho Role
Sau khi tạo role, bạn có thể gán các quyền cụ thể cho role đó bằng lệnh GRANT.
GRANT privilege_name TO role_name; GRANT SELECT, INSERT, UPDATE ON employees TO accountant_role;
Gán Role cho Người Dùng
Sau khi tạo và cấp quyền cho role, bạn có thể gán role đó cho người dùng hoặc role khác bằng lệnh GRANT.
GRANT role_name TO user_name;
Kiểm Tra Quyền của Người Dùng
Để kiểm tra quyền của một người dùng, bạn có thể sử dụng các bảng thông tin hệ thống như DBA_ROLE_PRIVS, USER_ROLE_PRIVS, DBA_TAB_PRIVS, vv.
Thực Hiện Quản Lý Quyền
Sử dụng lệnh REVOKE để thu hồi quyền khỏi role hoặc người dùng.
REVOKE privilege_name FROM role_name; REVOKE SELECT, INSERT, UPDATE ON employees FROM accountant_role;
Xóa Role
Để xóa một role, bạn có thể sử dụng lệnh DROP ROLE.
DROP ROLE role_name; DROP ROLE accountant_role;
Một số quyền trong database:
- SELECT: Quyền cho phép người dùng truy vấn (SELECT) dữ liệu từ các bảng trong cơ sở dữ liệu.
- INSERT: Quyền cho phép người dùng thêm dữ liệu mới vào các bảng trong cơ sở dữ liệu.
- UPDATE: Quyền cho phép người dùng cập nhật dữ liệu hiện có trong các bảng trong cơ sở dữ liệu.
- DELETE: Quyền cho phép người dùng xóa dữ liệu từ các bảng trong cơ sở dữ liệu.
- CREATE TABLE: Quyền cho phép người dùng tạo mới các bảng trong cơ sở dữ liệu.
- CREATE VIEW: Quyền cho phép người dùng tạo mới các view trong cơ sở dữ liệu.
- CREATE SESSION: Quyền cho phép người dùng kết nối vào cơ sở dữ liệu.
- CREATE PROCEDURE: Quyền cho phép người dùng tạo mới các thủ tục (procedures) trong cơ sở dữ liệu.
- CREATE SEQUENCE: Quyền cho phép người dùng tạo mới các chuỗi số (sequences) trong cơ sở dữ liệu.
- CREATE ROLE: Quyền cho phép người dùng tạo mới các vai trò (roles) trong cơ sở dữ liệu.
- DROP TABLE: Quyền cho phép người dùng xóa các bảng từ cơ sở dữ liệu.
- DROP VIEW: Quyền cho phép người dùng xóa các view từ cơ sở dữ liệu.
- ALTER TABLE: Quyền cho phép người dùng thay đổi cấu trúc của các bảng trong cơ sở dữ liệu.
- ALTER SESSION: Quyền cho phép người dùng thay đổi các thuộc tính phiên làm việc hiện tại của họ.
- EXECUTE: Quyền cho phép người dùng thực thi các thủ tục hoặc hàm trong cơ sở dữ liệu.
- SELECT ANY TABLE: Quyền cho phép người dùng truy cập vào bất kỳ bảng nào trong cơ sở dữ liệu mà không cần quyền SELECT cụ thể cho từng bảng.
- DBA: Quyền toàn quyền truy cập và quản lý hệ thống của cơ sở dữ liệu.
- CREATE SYNONYM: Quyền cho phép người dùng tạo các đối tượng đồng nghĩa (synonym), là các tên định danh (alias) cho các đối tượng khác trong cơ sở dữ liệu.
- DROP SYNONYM: Quyền cho phép người dùng xóa các đối tượng đồng nghĩa (synonym) từ cơ sở dữ liệu.
- CREATE DATABASE LINK: Quyền cho phép người dùng tạo liên kết (link) tới các cơ sở dữ liệu khác.
- DROP DATABASE LINK: Quyền cho phép người dùng xóa liên kết (link) tới các cơ sở dữ liệu khác.
- CREATE ANY INDEX: Quyền cho phép người dùng tạo bất kỳ chỉ mục (index) nào trong cơ sở dữ liệu, không cần quyền CREATE INDEX trên các bảng cụ thể.
- DROP ANY INDEX: Quyền cho phép người dùng xóa bất kỳ chỉ mục (index) nào trong cơ sở dữ liệu, không cần quyền DROP INDEX trên các bảng cụ thể.
- ALTER ANY TABLE: Quyền cho phép người dùng thay đổi cấu trúc của bất kỳ bảng nào trong cơ sở dữ liệu, không cần quyền ALTER TABLE trên các bảng cụ thể.
- ALTER ANY INDEX: Quyền cho phép người dùng thay đổi bất kỳ chỉ mục (index) nào trong cơ sở dữ liệu, không cần quyền ALTER INDEX trên các chỉ mục cụ thể.
- CREATE TRIGGER: Quyền cho phép người dùng tạo mới các trigger trong cơ sở dữ liệu.
- DROP TRIGGER: Quyền cho phép người dùng xóa các trigger từ cơ sở dữ liệu.
- DEBUG CONNECT SESSION: Quyền cho phép người dùng kết nối vào phiên debug của mình hoặc của người khác.
- DEBUG ANY PROCEDURE: Quyền cho phép người dùng debug bất kỳ thủ tục nào trong cơ sở dữ liệu.
- CREATE USER: Quyền cho phép người dùng tạo mới các người dùng trong cơ sở dữ liệu.
- CREATE ANY SEQUENCE: Quyền cho phép người dùng tạo chuỗi số (sequence) trong bất kỳ schema nào trong cơ sở dữ liệu.
- DROP ANY SEQUENCE: Quyền cho phép người dùng xóa chuỗi số (sequence) từ bất kỳ schema nào trong cơ sở dữ liệu.
- CREATE ANY PROCEDURE: Quyền cho phép người dùng tạo thủ tục (procedure) trong bất kỳ schema nào trong cơ sở dữ liệu.
- DROP ANY PROCEDURE: Quyền cho phép người dùng xóa thủ tục (procedure) từ bất kỳ schema nào trong cơ sở dữ liệu.
- CREATE ANY TRIGGER: Quyền cho phép người dùng tạo trigger trong bất kỳ schema nào trong cơ sở dữ liệu.
- DROP ANY TRIGGER: Quyền cho phép người dùng xóa trigger từ bất kỳ schema nào trong cơ sở dữ liệu.
- ADMINISTER DATABASE TRIGGER: Quyền cho phép người dùng quản lý các trigger toàn cục (database-level triggers) trong cơ sở dữ liệu.
- CREATE ANY DIRECTORY: Quyền cho phép người dùng tạo thư mục (directory) trong cơ sở dữ liệu.
- DROP ANY DIRECTORY: Quyền cho phép người dùng xóa thư mục (directory) trong cơ sở dữ liệu.
- ALTER ANY SEQUENCE: Quyền cho phép người dùng thay đổi các thuộc tính của bất kỳ chuỗi số (sequence) nào trong cơ sở dữ liệu.
- ALTER ANY PROCEDURE: Quyền cho phép người dùng thay đổi các thuộc tính của bất kỳ thủ tục (procedure) nào trong cơ sở dữ liệu.
- ALTER ANY TRIGGER: Quyền cho phép người dùng thay đổi các thuộc tính của bất kỳ trigger nào trong cơ sở dữ liệu.
- ALTER SYSTEM: Quyền cho phép người dùng thay đổi cấu hình hệ thống của cơ sở dữ liệu, ví dụ như thay đổi tham số hệ thống.
- CREATE EXTERNAL JOB: Quyền cho phép người dùng tạo các công việc ngoại vi (external job) trong cơ sở dữ liệu.
- DROP EXTERNAL JOB: Quyền cho phép người dùng xóa các công việc ngoại vi (external job) từ cơ sở dữ liệu.
- CREATE ANY CONTEXT: Quyền cho phép người dùng tạo bất kỳ ngữ cảnh (context) nào trong cơ sở dữ liệu. Ngữ cảnh được sử dụng để lưu trữ thông tin phiên của người dùng và chia sẻ thông tin giữa các phiên.
- DROP ANY CONTEXT: Quyền cho phép người dùng xóa bất kỳ ngữ cảnh (context) nào trong cơ sở dữ liệu.
- CREATE JOB: Quyền cho phép người dùng tạo các công việc (job) trong cơ sở dữ liệu. Công việc có thể được lập lịch để chạy tự động vào một thời điểm nhất định hoặc theo một lịch trình được xác định trước.
- CREATE LIBRARY: Quyền cho phép người dùng tạo thư viện (library) trong cơ sở dữ liệu. Thư viện là một tập hợp các chương trình thực thi được lưu trữ trong cơ sở dữ liệu và có thể được sử dụng bởi các thủ tục và hàm.
- DROP LIBRARY: Quyền cho phép người dùng xóa thư viện (library) từ cơ sở dữ liệu.
- CREATE MATERIALIZED VIEW: Quyền cho phép người dùng tạo các view vật liệu (materialized view) trong cơ sở dữ liệu. View vật liệu là một bảng ảo được lưu trữ dưới dạng bảng vật liệu, giúp tăng tốc độ truy vấn dữ liệu.
- DROP MATERIALIZED VIEW: Quyền cho phép người dùng xóa các view vật liệu (materialized view) từ cơ sở dữ liệu.
- CREATE PROCEDURE: Quyền cho phép người dùng tạo thủ tục (procedure) trong schema của họ.
- CREATE PUBLIC DATABASE LINK: Quyền cho phép người dùng tạo liên kết (link) cơ sở dữ liệu công cộng (public database link). Liên kết công cộng cho phép truy cập từ cơ sở dữ liệu hiện tại tới một cơ sở dữ liệu khác mà không cần cung cấp thông tin đăng nhập.
- CREATE PUBLIC SYNONYM: Quyền cho phép người dùng tạo các đối tượng đồng nghĩa (synonym) công cộng (public synonym). Đối tượng đồng nghĩa công cộng có thể được truy cập bởi tất cả người dùng trong cơ sở dữ liệu.
- CREATE SEQUENCE: Quyền cho phép người dùng tạo chuỗi số (sequence) trong schema của họ. Chuỗi số được sử dụng để tạo ra các giá trị duy nhất trong cơ sở dữ liệu.
- CREATE SESSION: Quyền cho phép người dùng kết nối vào cơ sở dữ liệu. Đây là quyền cần thiết để bắt đầu một phiên làm việc (session) mới.
- CREATE SNAPSHOT: Quyền cho phép người dùng tạo bản sao (snapshot) của dữ liệu từ một hoặc nhiều bảng trong cơ sở dữ liệu. Bản sao có thể được sử dụng cho việc truy vấn dữ liệu ổn định.
- CREATE SYNONYM: Quyền cho phép người dùng tạo các đối tượng đồng nghĩa (synonym) trong schema của họ. Đối tượng đồng nghĩa giúp đơn giản hóa việc truy cập đến các đối tượng khác trong cơ sở dữ liệu.
- CREATE TABLE: Quyền cho phép người dùng tạo các bảng mới trong schema của họ. Bảng được sử dụng để lưu trữ dữ liệu trong cơ sở dữ liệu.
- CREATE TRIGGER: Quyền cho phép người dùng tạo trigger trong schema của họ. Trigger là các đoạn mã tự động được kích hoạt bởi các sự kiện hoặc hành động trong cơ sở dữ liệu.
- CREATE TYPE: Quyền cho phép người dùng tạo các kiểu dữ liệu tùy chỉnh (user-defined types) trong schema của họ. Kiểu dữ liệu tùy chỉnh được sử dụng để định nghĩa các loại dữ liệu mới không có sẵn trong Oracle.
- CREATE USER: Quyền cho phép người dùng tạo mới các người dùng khác trong cơ sở dữ liệu. Điều này thường chỉ được cấp cho các người quản trị hệ thống.
- CREATE VIEW: Quyền cho phép người dùng tạo các view trong schema của họ. View là các câu truy vấn lưu trữ trong cơ sở dữ liệu và có thể được sử dụng như các bảng ảo để truy vấn dữ liệu.
- DEBUG ANY PROCEDURE: Quyền cho phép người dùng debug bất kỳ thủ tục nào trong cơ sở dữ liệu. Điều này cho phép người dùng sử dụng các công cụ debug để theo dõi và kiểm tra thủ tục của họ.
- CREATE VIEW ANY: Quyền cho phép người dùng tạo view trên bất kỳ bảng nào trong cơ sở dữ liệu, không cần phải sở hữu bảng đó.
- CREATE ANY INDEX: Quyền cho phép người dùng tạo chỉ mục (index) trên bất kỳ bảng nào trong cơ sở dữ liệu, không cần phải sở hữu bảng đó.
- CREATE ANY TABLE: Quyền cho phép người dùng tạo bất kỳ bảng nào trong cơ sở dữ liệu, không cần phải sở hữu schema nơi bảng được tạo.
- DROP ANY INDEX: Quyền cho phép người dùng xóa bất kỳ chỉ mục (index) nào trong cơ sở dữ liệu, không cần phải sở hữu chỉ mục đó.
- DROP ANY TABLE: Quyền cho phép người dùng xóa bất kỳ bảng nào trong cơ sở dữ liệu, không cần phải sở hữu bảng đó.
- DROP ANY VIEW: Quyền cho phép người dùng xóa bất kỳ view nào trong cơ sở dữ liệu, không cần phải sở hữu view đó.
- ALTER ANY INDEX: Quyền cho phép người dùng thay đổi bất kỳ chỉ mục (index) nào trong cơ sở dữ liệu, không cần phải sở hữu chỉ mục đó.
- ALTER ANY TABLE: Quyền cho phép người dùng thay đổi bất kỳ bảng nào trong cơ sở dữ liệu, không cần phải sở hữu bảng đó.
- ALTER ANY VIEW: Quyền cho phép người dùng thay đổi bất kỳ view nào trong cơ sở dữ liệu, không cần phải sở hữu view đó.
- MANAGE ANY FILE GROUP: Quyền cho phép người dùng quản lý (tạo, sửa đổi, xóa) bất kỳ nhóm tập tin nào trong cơ sở dữ liệu, không cần phải sở hữu nhóm tập tin đó.
- MANAGE SCHEDULER: Quyền cho phép người dùng quản lý các công việc lập lịch (jobs) và các lịch trình (schedules) trong Oracle Scheduler.
- MANAGE TABLESPACE: Quyền cho phép người dùng quản lý (tạo, sửa đổi, xóa) bất kỳ tablespace nào trong cơ sở dữ liệu, không cần phải sở hữu tablespace đó.
- UNLIMITED TABLESPACE: Quyền cho phép người dùng sử dụng không giới hạn dung lượng tablespace trong cơ sở dữ liệu.
- SELECT ANY DICTIONARY: Quyền cho phép người dùng truy vấn dữ liệu từ bất kỳ bảng từ điển nào trong cơ sở dữ liệu, không cần phải sở hữu bảng đó.
- EXECUTE ANY PROCEDURE: Quyền cho phép người dùng thực thi bất kỳ thủ tục nào trong cơ sở dữ liệu, không cần phải sở hữu thủ tục đó.
Một số Role có sẵn trong Oracle database:
- SYSDBA: Quản trị viên hệ thống cao cấp, có quyền quản lý toàn bộ hệ thống và cơ sở dữ liệu.
- SYSOPER: Cho phép thực hiện các hoạt động cơ bản liên quan đến quản trị hệ thống.
- DBA: Vai trò quản trị và duy trì cơ sở dữ liệu Oracle.
- CONNECT: Cho phép kết nối vào cơ sở dữ liệu.
- RESOURCE: Cung cấp quyền truy cập vào các đối tượng tiêu chuẩn trong cơ sở dữ liệu.
- SELECT_CATALOG_ROLE: Cho phép truy cập vào thông tin từ các bảng xem hệ thống.
- EXECUTE_CATALOG_ROLE: Cho phép thực thi các thủ tục và hàm từ các bảng xem hệ thống.
- DBMS_SCHEDULER_ADMIN: Quản lý và điều chỉnh công việc lập lịch.
- DBMS_JOB_ADMIN: Quản lý và điều chỉnh các công việc lập lịch.
- DBMS_MONITOR: Theo dõi hiệu suất và vận hành cơ sở dữ liệu.
- AUDIT_ADMIN: Quản lý và ghi nhật ký hoạt động.
- AUDIT_VIEWER: Xem các bản ghi kiểm tra và nhật ký.
- DATAPUMP_EXP_FULL_DATABASE: Xuất dữ liệu từ toàn bộ cơ sở dữ liệu.
- DATAPUMP_IMP_FULL_DATABASE: Nhập dữ liệu vào toàn bộ cơ sở dữ liệu.
- SELECT ANY TABLE: Truy cập đọc vào bất kỳ bảng nào.
- INSERT ANY TABLE: Chèn dữ liệu vào bất kỳ bảng nào.
- UPDATE ANY TABLE: Cập nhật dữ liệu trong bất kỳ bảng nào.
- DELETE ANY TABLE: Xóa dữ liệu từ bất kỳ bảng nào.
- EXECUTE ANY PROCEDURE: Thực thi bất kỳ thủ tục nào.
- CREATE SESSION: Kết nối vào cơ sở dữ liệu.
- CREATE TABLESPACE: Tạo không gian lưu trữ cho các bảng.
- CREATE TABLE: Tạo bảng mới trong cơ sở dữ liệu.
- CREATE VIEW: Tạo chế độ xem mới.
- CREATE ANY DIRECTORY: Tạo thư mục trong cơ sở dữ liệu.
- CREATE PROCEDURE: Tạo thủ tục mới.
- CREATE FUNCTION: Tạo hàm mới.
- CREATE TRIGGER: Tạo điều khiển tự động cho các sự kiện.
- CREATE SEQUENCE: Tạo chuỗi số tự động.
- CREATE DATABASE LINK: Tạo liên kết tới cơ sở dữ liệu khác.
- CREATE ROLE: Tạo vai trò mới.
- CREATE USER: Tạo người dùng mới.
- DROP USER: Xóa người dùng.
- ALTER USER: Thay đổi thông tin người dùng.
- DROP ROLE: Xóa vai trò.
- ALTER ROLE: Thay đổi thông tin vai trò.
- GRANT ANY PRIVILEGE: Cấp quyền bất kỳ.
- REVOKE ANY PRIVILEGE: Thu hồi quyền bất kỳ.
- GRANT ANY OBJECT PRIVILEGE: Cấp quyền truy cập vào bất kỳ đối tượng nào.
- REVOKE ANY OBJECT PRIVILEGE: Thu hồi quyền truy cập vào bất kỳ đối tượng nào.
- EXECUTE ANY TYPE: Thực thi bất kỳ kiểu nào.
- EXECUTE ANY LIBRARY: Thực thi bất kỳ thư viện nào.
- ANALYZE ANY: Phân tích bất kỳ đối tượng nào.
- DEBUG CONNECT SESSION: Kết nối vào phiên gỡ lỗi.
- DEBUG ANY PROCEDURE: Gỡ lỗi bất kỳ thủ tục nào.
- DEBUG ANY STATEMENT: Gỡ lỗi bất kỳ câu lệnh nào.
- SELECT ANY DICTIONARY: Truy cập vào từ điển dữ liệu.
- UNLIMITED TABLESPACE: Không giới hạn không gian bảng.
- DATAPUMP_IMP_FULL_DATABASE: Nhập dữ liệu vào toàn bộ cơ sở dữ liệu.
- RECOVERY_CATALOG_OWNER: Chủ sở hữu của Catalog Phục hồi.
- RECOVERY_CATALOG_ADMINISTRATOR: Quản trị viên của Catalog Phục hồi.