Quản lý quyền người dùng với tùy chọn ADMIN OPTION, GRANT OPTION trong Oracle Database

Quản lý quyền người dùng với tùy chọn ADMIN OPTION trong Oracle Database cho phép người dùng được cấp quyền có thể không chỉ sử dụng quyền đó mà còn có thể cấp lại quyền này cho các người dùng hoặc vai trò khác. Điều này cung cấp một cách linh hoạt và mạnh mẽ để quản lý quyền, nhưng cũng yêu cầu sự quản lý cẩn thận để tránh lạm quyền.

Quản lý quyền người dùng với tùy chọn ADMIN OPTION, GRANT OPTION trong Oracle Database

Gán quyền hệ thống với ADMIN OPTION

Khi bạn cấp một quyền hệ thống cho một người dùng với ADMIN OPTION, người dùng đó có thể sử dụng quyền này và cũng có thể cấp quyền đó cho các người dùng khác.

Ví dụ, bạn muốn cấp quyền CREATE TABLE cho người dùng user1 với ADMIN OPTION:

GRANT CREATE TABLE TO user1 WITH ADMIN OPTION;

Bây giờ, user1 có thể cấp quyền CREATE TABLE cho các người dùng khác:

GRANT CREATE TABLE TO user2;

Gán quyền đối tượng với GRANT OPTION

Bạn cũng có thể cấp quyền đối tượng với GRANT OPTION. Điều này cho phép người dùng có quyền đối tượng cụ thể và cũng có thể cấp quyền đó cho các người dùng khác.

Ví dụ, bạn muốn cấp quyền SELECT trên bảng employees cho user1 với GRANT OPTION:

GRANT SELECT ON employees TO user1 WITH GRANT OPTION;

Bây giờ, user1 có thể cấp quyền SELECT trên bảng employees cho các người dùng khác:

GRANT SELECT ON employees TO user2;

Kiểm tra quyền được cấp với ADMIN OPTION, GRANT OPTION

Bạn có thể kiểm tra quyền hệ thống đã được cấp cho người dùng với ADMIN OPTION bằng cách truy vấn bảng DBA_SYS_PRIVS:

SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'USER1' AND ADMIN_OPTION = 'YES';

Bạn cũng có thể kiểm tra quyền đối tượng đã được cấp cho người dùng với GRANT OPTION bằng cách truy vấn bảng DBA_TAB_PRIVS:

SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = 'USER1' AND GRANTABLE = 'YES';

Thu hồi quyền với ADMIN OPTION, GRANT OPTION

với ADMIN OPTION

Khi bạn thu hồi quyền từ một người dùng đã được cấp với ADMIN OPTION, bạn cần lưu ý rằng người dùng đó sẽ không còn khả năng cấp quyền đó cho các người dùng khác.

Ví dụ, để thu hồi quyền CREATE TABLE từ user1:

REVOKE CREATE TABLE FROM user1;

Nếu user1 đã cấp quyền CREATE TABLE cho user2, quyền của user2 sẽ không bị ảnh hưởng bởi lệnh này. Bạn cần thu hồi quyền từ user2 một cách riêng biệt nếu cần.

Nghĩa là khi bạn thu hồi quyền đã gán với admin option thì chỉ thu hồi được quyền ở user1 thôi, quyền ở user2 không được tự động thu hồi mà phải thu hồi thủ công.

với GRANT OPTION

REVOKE SELECT ON employees FROM user1;

Điều này sẽ làm cho user1 không còn quyền SELECT trên bảng employees và cũng không thể cấp quyền này cho người dùng khác nữa.

Kết quả là user1 không còn quyền SELECT trên bảng employees, và quyền SELECT mà user1 đã cấp cho user2 cũng sẽ bị thu hồi. => thu hồi hết cả quyền của user1 và user2.

Tóm lại:

  • Gán quyền hệ thống với ADMIN OPTION: Cho phép người dùng sử dụng và cấp quyền hệ thống cho người dùng khác.
  • Gán quyền đối tượng với GRANT OPTION: Cho phép người dùng sử dụng và cấp quyền đối tượng cho người dùng khác.
  • Kiểm tra quyền đã được cấp với ADMIN OPTION: Sử dụng các bảng từ điển dữ liệu như DBA_SYS_PRIVS và DBA_TAB_PRIVS.
  • Thu hồi quyền: Đối với ADMIN OPTION Sử dụng lệnh REVOKE, lưu ý rằng việc thu hồi từ người dùng cấp quyền không ảnh hưởng đến người dùng nhận quyền trừ khi thu hồi riêng.
  • Thu hồi quyền: Đối với GRANT OPTION Sử dụng lệnh REVOKE, tất cả quyền của người dùng được gán và gán lại cho người dùng khác đều bị thu hồi hết tất cả.

So sánh GRANT OPTION và ADMIN OPTION

Tiêu chíGRANT OPTIONADMIN OPTION
Ngữ cảnh sử dụngQuyền đối tượng (Object Privileges)Quyền hệ thống (System Privileges) và vai trò (Roles)
Chức năngCho phép người dùng cấp quyền đối tượngCho phép người dùng cấp quyền hệ thống hoặc vai trò
Ví dụ sử dụngGRANT SELECT ON table TO user WITH GRANT OPTION;GRANT CREATE TABLE TO user WITH ADMIN OPTION;
Thu hồi quyềnThu hồi hết tất cả quyền của người dùng được gán và người dùng quyền đó mang đi gán lại cho người khác (thu hồi tự động)Chỉ thu hồi quyền được gán, quyền mang đi gán lại cho user khác không bị thu hồi tự động mà cần phải thu hồi thủ công nếu cần thiết

 

Datalinks.vn

Hello các bạn, mình là Dương Nguyễn tác giả của blog này. Với gần 20 năm làm việc trong lĩnh vực CNTT, VT trong và ngoài nước, mong muốn được chia sẻ kiến thức và kinh nghiệm về database với các bạn đam mê và quan tâm đến lĩnh vực này. Đặc biệt là #OracleDatabase hoặc luyện thi #OCP database admin. Các bạn cần người đồng hành thì alo mình nhé. Call/Zalo: 0765 871 888. Thanks you !.....
0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận