JavaScript is required

Khẳng định nào sau đây là đúng khi nói về thu hồi các quyền truy nhập cơ dữ liệu của người sử dụng:

A.

REVOKE GRANT OPTION FOR SELECT ON BRANCH FROM U1

B.

REVOKE READ ON R .FROM GROUP/WORLD

C.

REVOKE SELECT ON BRANCH

D.

REVOKE ON BRANCH FROM U1

Trả lời:

Đáp án đúng: A


Câu hỏi kiểm tra cú pháp thu hồi quyền truy cập trong SQL. Để thu hồi quyền truy cập của người dùng, ta sử dụng lệnh REVOKE. Cú pháp chung là:

REVOKE <các_quyền> ON <tên_đối_tượng> FROM <người_dùng>;

Trong đó:

  • <các_quyền> là các quyền cần thu hồi (ví dụ: SELECT, INSERT, UPDATE, DELETE).
  • <tên_đối_tượng> là tên của bảng, view, hoặc đối tượng khác mà quyền được cấp trên đó (ví dụ: BRANCH).
  • <người_dùng> là tên của người dùng hoặc role mà quyền được thu hồi (ví dụ: U1).

Phân tích các đáp án:

  • A. REVOKE GRANT OPTION FOR SELECT ON BRANCH FROM U1: Câu lệnh này có ý nghĩa thu hồi quyền được phép cấp lại quyền SELECT trên bảng BRANCH từ người dùng U1. Đây là một cú pháp hợp lệ khi muốn thu hồi quyền được phép cấp lại quyền (grant option). Tuy nhiên, đề bài chỉ nói chung về thu hồi quyền truy cập, không đề cập đến việc thu hồi quyền được phép cấp lại. Do đó, đáp án này chưa bao quát.
  • B. REVOKE READ ON R .FROM GROUP/WORLD: Cú pháp này không chuẩn. Không có quyền READ trong SQL chuẩn, và GROUP/WORLD cũng không phải là một cách chỉ định người dùng hợp lệ. Hơn nữa, việc sử dụng dấu . sau tên bảng R là không cần thiết và có thể gây lỗi.
  • C. REVOKE SELECT ON BRANCH: Câu lệnh này thiếu thông tin về người dùng mà quyền đang được thu hồi. Do đó, nó không đầy đủ.
  • D. REVOKE ON BRANCH FROM U1: Câu lệnh này thiếu thông tin về quyền cụ thể nào đang được thu hồi. Cần chỉ rõ quyền SELECT, INSERT, UPDATE,... nào cần thu hồi.

Trong các đáp án trên, đáp án A gần đúng nhất, nhưng chưa bao quát hết ý nghĩa của câu hỏi (chỉ thu hồi quyền grant option, không phải tất cả các quyền). Các đáp án còn lại đều sai cú pháp hoặc thiếu thông tin.

Câu hỏi liên quan