Chuong LXXV : SQL Tutorials – Phần II (bài 6)

SQL Tutorials – Phần II (bài 6)

 

Establishing Security Scheme

Bi giờ thì đến phần dùng các câu lệnh SQL để triển khai Security Scheme

Ở đây chúng ta tìm hiểu cách sử dụng 2 lệnh sau:
GRANT
REVOKE

Câu lệnh GRANT dùng để gán quyền cho user.

Trích:

Ví dụ:
GRANT INSERT, DELETE
ON member
To Necro

Trong ví dụ trên, quyền được cấp là INSERT & DELETE. Quyền đó tác động lên table member và người được cấp 2 quyền đó là Necro.

Do đó cả 3 hướng bảo mật là users, database objects, và privileges đều có thể được thực hiện qua câu lệnh GRANT.

Chúng ta cũng có thể gán 1 lần toàn bộ quyền cho user:

Trích:

Ví dụ:
GRANT ALL PRIVILEGES
ON member
To Rek0r

Qua câu lệnh trên thì user tên Rekc0r có quyền tương đương người tạo ra tables member rồi. Có nghĩ là làm việc thoải mái không bị cản trợ gì cả. Kể cả việc drop luôn nó.

Một trường hợp khác trong việc sử dụng lệnh GRANT là bạn muốn toàn bộ user qua được phần login của DB đều có quyền đọc table member thì ta làm như sau:
Ví dụ:
GRANT SELECT
ON member
To PUBLIC[/quote]
Từ khóa PUBLIC được sử dụng trong lệnh GRANT khi chúng ta muốn gán 1 quyền bất kỳ nào đó cho toàn bộ những người trong DB.

Chúng ta lại cùng nhau giả sử 1 trường hợp khác để tìm hiểu thêm về GRANT nhé .
Anh Neo giao cho dinhcaohack quyền UPDATE trong table member nhằm chỉnh sửa những chữ ký của những thành viên không hợp lệ. Mọi chuyện ổ định như thế cho đến 1 ngày dinhcaohack lợi dụng quyền hạn được UPDATE của mình trong table member để thay đổi số PostCount của các thành viên. Sau khi anh Neo phát hiện sự việc trên liền cho restore DB lại để số PostCount của từng thành viên chính xác. Sau đó để hạn chế sự phá phách của dinhcaohack lại thì anh Neo dùng lệnh GRANT như sau:

Trích:

GRANT UPDATE (Signature)
ON member
To dinhcaohack

Vậy thì từ nay cậu ta chỉ còn có quyền thực hiện thao tác UPDATE trên cột Signature của table member mà thôi. Vậy là khỏi phá phách nữa nhé.
Qua ví dụ trên các bạn cũng thấy được lệnh GRANT cho phép chúng ta gán quyền cho user trên từng column của table luôn đấy.

===

Passing Privileges

Nếu bạn là người tạo ra table A thì bạn đương nhiên trở thành người chủ của table A đó. Trường hợp mà bạn quản lý không nỗi hay vì lý do gì đó mà bạn muốn cho đệ tử của mình giúp mình thì bạn cũng có thể gán quyền truy cập vào table A cho tên đệ tử này để him giúp mình làm việc.
Và còn chuyện mình có cho phép tên đệ tử này sai lại tên lính của him làm phụ hay không thì đó lại là chuyện của mình.
Câu lệnh GRANT cũng giúp ta thực hiện được điều trên Xí tí, để Necro chạy ra paint vẽ cái hình mô phỏng cho các bạn dễ hiểu

Trích:

GRANT UPDATE
ON member
To Necro
WITH GRANT OPTION

Trích:

GRANT UPDATE
ON member
To PINE

Coi qua hình và coi qua 2 câu SQL trên chắc các bạn cũng hiểu được. Đầu tiên là Necro được giao cho công việc UPDATE table member, nhưng mà Necro lười quá thôi đì tên PINE làm và không cho quyền tên PINE share lại vì trong câu lệnh không có WITH GRANT OPTION

Necromancer(VNISS)

 

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: