Thứ Hai, 8 tháng 9, 2025

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
=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
cở sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c/21c/23c/23ai, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master