Hủy bỏ cỏc quyền

Một phần của tài liệu Giáo trình Ngôn ngữ SQL doc (Trang 162 - 167)

CHƯƠNG III : LẬP TRèNH

3.6.6 Hủy bỏ cỏc quyền

Một quyền được cấp cú thể bị hủy bỏ bất cứ lỳc nào. Trờn thực tế, việc hủy bỏ cỏc quyền cú thể được yờu cầu theo kiểu dõy chuyền (cascade) theo nghĩa là việc hủy bỏ một quyền với grant option đó được chuyển cho cỏc người sử dụng khỏc cú thể yờu cầu cỏc quyền đú cũng bị hủy bỏ. Dạng đơn giản của lệnh hủy là:

1. Từ khúa REVOKE

2. Một danh sỏch gồm một hoặc nhiều quyền 3. Từ khúa ON

4. Một phần tử cơ sở dữ liệu 5. Từ khúa FROM

6. Một danh sỏch gồm một hoặc nhiều người sử dụng (cỏc authorization ID).

Như vậy, dạng của một lệnh hủy quyền là như sau:

REVOKE < danh sỏch quyền> ON < phần tử cơ sở dữ liệu> FROM < danh sỏch người sử dụng>

Tuy nhiờn, Một trong cỏc mục sau đõy cũng phải cú trong lệnh:

quyền bị hủy bỏ cấp. Chớnh xỏc hơn, nếu người sử dụng U đó hủy bỏ quyền P của người sử dụng V dựa trờn quyền Q thuộc vào U thỡ chỳng ta loại bỏ cạnh từ U/Q đến V/P trong biểu đồ cấp quyền. Bõy giờ đỉnh nào khụng truy cập được từ một đỉnh chủ cũng bị loại bỏ.

2. Một lệnh cú thể kết thỳc bằng RESTRICT, điều đú cú nghĩa là lệnh hủy khụng thể được thực hiện nếu luật lan truyền được mụ tả trong mục trước cú thể dẫn đến việc loại bỏ cỏc quyền do cỏc quyền bị hủy đó chuyển cho quyền khỏc.

Hoa SELECT on Movie ** Hoa INSERT on Movie ** Hoa INSERT on Studio ** Hoa SELECT on Studio ** Nam SELECT on Movie * Nam SELECT on Studio * Thanh SELECT on Movie * Thanh SELECT on Studio * Huy SELECT(name) on Studio Huy SELECT on Movie Huy INSERT on Studio Huy SELECT on Studio Nam INSERT on Studio * Thanh INSERT on Studio *

Hỡnh 3.26 Biểu đồ cấp quyền

Việc thay thế REVOKE bằng REVOKE GRANT OPTION FOR là được phộp, trong trường hợp này cỏc quyền cốt lừi vẫn cũn nhưng tựy chọn cấp chỳng cho người khỏc bị loại bỏ. Chỳng ta cú thể sửa đổi một đỉnh, định hướng lại cỏc cạnh, hoặc tạo ra một đỉnh mới để phản ỏnh cỏc thay đổi đối với cỏc người sử dụng bị ảnh hưởng. Dạng này của REVOKE cũng cú thể được thực hiện cựng với CASCADE hoặc RESTRICT.

Vớ dụ 3.38: Tiếp tục với vớ dụ 3.36, giả sử rằng Hoa hủy bỏ cỏc quyền mà anh ta đó cấp cho Thanh với cỏc lệnh:

REVOKE SELECT, INSERT ON Studio FROM thanh CASCADE ; REVOKE SELECT ON Movie FROM thanh CASCADE ;

Chỳng ta loại bỏ cỏc cạnh của hỡnh 3.26 từ cỏc quyền này của Hoa đến cỏc quyền tương ứng của Thanh. Bởi vỡ CASCADE được quy định, chỳng ta cũng phải nhỡn xem cú những quyền nào khụng thể đi đến được từ một quyền cú hai dấu sao. Khảo sỏt hỡnh 8.26 chỳng ta thấy rằng cỏc quyền của Thanh khụng cũn đi đến được từ một đỉnh cú hai dấu sao. Cũng như vậy, quyền INSERT vào Studio của Huy cũng khụng đi đến được. Vậy chỳng ta khụng chỉ bỏ cỏc quyền của Thanh ra khỏi biểu đồ cấp quyền mà cũn bỏ quyền INSERT của Huy.

Chỳ ý rằng chỳng ta khụng loại bỏ cỏc quyền SELECT trờn Movie và Studio của Huy hoặc quyền INSERT(name) trờn Studio của Huy vỡ những quyền này cú thể đi đến được từ cỏc quyền sở hữu của Hoa thụng qua cỏc quyền của Nam. Biểu đồ cấp quyền kết quả được chỉ ra ở hỡnh 3.27.

Hỡnh 3.27: Biểu đồ cấp quyền sau khi loại bỏ cỏc quyền của Thanh

Hoa SELECT on Movie ** Hoa INSERT on Movie ** Hoa INSERT on Studio ** Hoa SELECT on Studio ** Nam SELECT on Movie * Nam SELECT on Studio * Huy SELECT(name) on Studio Huy SELECT on Movie Huy SELECT on Studio Nam INSERT on Studio *

Vớ dụ 3.39: Cú một vài điều tinh tế mà chỳng ta sẽ minh họa bằng cỏc vớ dụ trừu tượng. Đầu tiờn, khi chỳng ta hủy bỏ một quyền tổng quỏt p, chỳng ta khụng hủy bỏ một quyền là trường hợp riờng của p. Vớ dụ, xột dóy cỏc bước sau đõy, người sử dụng U nào đú là chủ của quan hệ R cấp quyền INSERT trờn quan hệ R cho V, và cũng cấp quyền INSERT(A) trờn cựng một quan hệ

1. U GRANT INSERT ON R TO V 2. U GRANT INSERT(A) ON R TO V

3. U REVOKE INSERT ON R FROM V RESTRICT

Khi U hủy bỏ INSERT ra khỏi V, quyền INSERT(A) vẫn cũn. Cỏc biểu đồ cấp quyền sau bước (2) và bước (3) được cho ở hỡnh 3.28.

Hỡnh 3.28 Hủy bỏ một quyền tổng quỏt để lại một quyền riờng Chỳ ý rằng sau bước (2) cú hai đỉnh rời nhau cho hai quyền khỏc nhau của V. Cũng chỳ ý rằng tựy chọn RESTRICT trong bước (3) khụng ngăn ngừa sự hủy bỏ bởi vỡ V khụng cấp cấp tựy chọn cho cỏc người sử dụng khỏc.

U INSERT on R ** V INSERT(A) on R V INSERT on R U INSERT on R ** V INSERT(A) on R

Vớ dụ 3.40 Bõy giờ chỳng ta hóy xột một vớ dụ tương tự trong đú U cấp cho V quyền p với tựy chọn cấp quyền và sau đú chỉ hủy tựy chọn cấp quyền. Trong trường hợp này, chỳng ta phải thay đổi đỉnh của V để phản ỏnh việc mất tựy chọn cấp quyền và cỏc cấp quyền p do V thực hiện phải được hủy bỏ bằng cỏch loại cỏc cạnh đi ra từ đỉnh V/p. Dóy cỏc bước như sau:

1. U GRANT p TO V WITH GRANT OPTION 2. V GRANT p TO W

3. U REVOKE OPTION FOR p FROM V CASCADE

Trong bước (1), U cấp quyền p cho V với tựy chọn cấp quyền. Trong bước (2), V sử dụng tựy chọn cấp quyền để cấp p cho W. Biểu đồ được đưa ra ở hỡnh 3.29(a). Sau đú trong bước (3), U hủy bỏ tựy chuyện cấp quyền đối với quyền p từ V nhưng khụng hủy bỏ quyền p. Như vậy, dấu sao sẽ bị loại bỏ khỏi đỉnh đối với V và p. Tuy hiờn, một đỉnh khụng cú dấu * khụng thể cú một cạnh đi ra vỡ một đỉnh như vậy khụng thể là nguồn của một việc cấp quyền. Vỡ thế chỳng ta cũng phải loại bỏ cạnh đi ra từ đỉnh V/p đi đến đỉnh W/p. Bõy giờ đỉnh W/p khụng cú một đường đi đến nú từ một đỉnh cú hai dấu sao biểu thị nguồn gốc của quyền p. Kết quả là đỉnh W/p bị loại bỏ khỏi biểu đồ. Tuy nhiờn đỉnh V/p vẫn cũn nhưng bị bỏ mất dấu sao biểu thị tựy chọn cấp quyền. Biểu đồ cấp quyền kết quả được cho ở hỡnh 3.29(b).

Sau bước (2) Sau bước (3)

Hỡnh 3.29 Hủy bỏ một tựy chọn cấp quyền để lại quyền cơ bản

Một phần của tài liệu Giáo trình Ngôn ngữ SQL doc (Trang 162 - 167)

Tải bản đầy đủ (PDF)

(177 trang)