20.1.CHỨC DANH (ROLE) TRONG DATABASE
Oracle cung cấp công cụ cho phép quản lý một cách dễ dàng các quyền thông qua việc sử dụng chức danh (Roles). Chức danh là một nhóm các quyền được đặt tên có liên quan đến nhau và được gán cho một user hay một chức danh khác. Chức danh được đưa ra nhằm làm dễ dàng quản lý các quyền trong hệ thống.
20.1.1. Các tính chất của chức danh
§ Được gán và lấy lại từ user với cùng câu lệnh.
§ Có thể gán cho bất cứ user nào một chức danh ngoại trừ cho chính nó.
§ Có thể bao gồm cả quyền hệ thống (system privileges) và quyền đối tượng (object privileges) trong chức danh.
§ Có thể enable và disable các chức danh được gán cho các user.
§ Có thể yêu cầu password khi cần enable các chức danh.
§ Tên các chức danh phải là duy nhất trong các user đang tồn tại và tên các chức danh đang tồn tại.
§ Không thuộc về bất cứ user nào và không thuộc về bất cứ schema nào.
§ Có các mô tả đặt trong data dictionary.
20.1.2. Lợi ích của việc sử dụng chức danh
Giảm công việc gán các quyền
Sử dụng các chức danh đơn giản hoá việc quản lý các chức danh, bằng cách gán một tập các quyền cho người dùng. Có thể gán các quyền cho một chức danh và sau đó gán chức danh đó cho các user.
Quản lý các quyền một cách linh động
Khi thay đổi các quyền có trong một chức danh thì quyền của tất cả các user đã được gán các chức danh đó sẽ bị thay đổi theo.
Chọn các quyền đã có sẵn
Một chức danh có thể được enable hay disable tạm thời để cho phép hay cấm các quyền.
Không có hiện tượng lan truyền khi lấy lại các chức danh.
Các quyền đối tượng có thể lấy lại mà không gây ra hiện tượng lan truyền.
20.2.QUẢN LÝ CHỨC DANH
20.2.1. Tạo và sửa chữa các Chức danh
Sử dụng câu lệnh sau đây thực hiện việc tạo các chức danh
Cú pháp:
CREATE ROLE role_name [NOT IDENTIFIED | IDENTIFIED
{BY password | EXTERNALLY }]
Với:
role_name tên của chức danh
NOT IDENTIFIED chỉ định không cần kiểm tra chức danh khi enable chức danh
BY password mật khẩu người dùng cần cung cấp khi enable chức danh
EXTERNALLY chỉ định user phải được xác lập bởi dịch vụ bên ngoài (như hệ điều hành hay dịch vụ bên thứ ba) trước khi enable chức danh.
Ví dụ:
CREATE ROLE sales_clerk;
Hoặc:
CREATE ROLE hr_clerk
IDENTIFIED BY bonus;
Hoặc:
CREATE ROLE hr_manager
IDENTIFIED EXTERNALLY;
Chú ý:
Câu lệnh CREATE ROLE IDENTIFIED GLOBALLY chỉ định rằng việc kiểm tra xác lập chức danh thông qua Oracle Security Server.
20.2.2. Các chức danh được định nghĩa sẵn
Các chức danh được liệt kê dưới đây được định nghĩa tự động trong Oracle Database. Connect và Resource là chức danh cung cấp để phù hợp với các version trước đây của Oracle database.
Các chức danh EXP_FULL_DATABASE và IMP_FULL_DATABASE dùng cho các công cụ export và import.
Các chức danh có tên là DELETE_CATALOG_ROLE, EXCUTE_CATALOG_ROLE và SELECT_CATALOG_ROLE cho phép thực hiện truy xuất tới các views và các packages trong data dictionary. Các chức danh này có thể gán cho user không có quyền DBA nhưng muốn xem thông tin trong các bảng và view thuộc data dictionary.
Tên chức danh
|
Diễn giải
|
CONNECT
|
Chức danh cung cấp sẵn để tương thích với các phiên bản trước đó
|
RESOURCE
| |
DBA
|
Tất cả các quyền hệ thống, có tuỳ chọn: WITH ADMIN OPTION
|
EXP_FULL_DATABASE
|
Quyền export dữ liệu của database
|
IMP_FULL_DATABASE
|
Quyền import dữ liệu vào database
|
DELETE_CATALOG_ROLE
|
Quyền xoá dữ liệu
|
EXECUTE_CATALOG_ROLE
|
Quyền thực hiện một thủ tục
|
SELECT_CATALOG_ROLE
|
Quyền lấy dữ liệu
|
Một số chức danh đặc biệt khác:
Oracle còn có một số chức danh khác để xác lập người quản trị database, trên nhiều hệ điều hành khác nhau, các chức danh này được goi là OSOPER và OSDBA tên của chúng có thể khác biệt trên các hệ điều hành. Các chức danh khác được định nghĩa bởi SQL script được cung cấp cùng với database.
20.2.3. Sửa chữa các chức danh
Sử dụng cú pháp sau đây đề sửa chữa một chức danh đã tồn tại.
Cú pháp:
ALTER ROLE role_name {NOT IDENTIFIED | IDENTIFIED
{BY password | EXTERNALLY }};
Với:
role_name tên của chức danh cần thay đổi.
NOT IDENTIFIED chỉ định không cần xác nhận khi enable chức danh
IDENTIFIED chỉ định cần xác nhận khi enable các chức danh
BY password cung cấp mật khẩu xác nhận khi enable chức danh
EXTERNALLY chỉ định user cần được xác nhận bởi dịch vụ bên ngoài (cơ chế xác nhận bởi hệ điều hành)
Ví dụ:
ALTER ROLE sales_clerk
IDENTIFIED BY commission;
Hoặc:
ALTER ROLE hr_clerk
IDENTIFIED EXTERNALLY;
Hoặc:
ALTER ROLE hr_manager
NOT IDENTIFIED;
20.2.4. Gán các chức danh
Sử dụng cú pháp sau đây để gán một chức danh cho một user:
Cú pháp :
GRANT role_name [, role_name ]...
TO {user|role|PUBLIC}
[, {user|role|PUBLIC} ]...
[WITH ADMIN OPTION]
Với :
role_name tên của chức danh gán
user tên của user được gán chức danh
role tên của chức danh được gán
PUBLIC chỉ định gán chức danh cho tất cả các user
WITH ADMIN OPTION
cho phép user được gán chức danh có thể gán chức danh cho user khác.
Ví dụ:
GRANT sales_clerk TO scott;
Hoặc:
GRANT hr_clerk,
TO hr_manager;
Hoặc:
GRANT hr_manager TO scott
WITH ADMIN OPTION;
User tạo chức danh được mặc định gán tuỳ chọn WITH ADMIN OPTION.
20.2.5. Thiết lập chức danh mặc định
Một user có thể có nhiều chức danh được gán. Chức danh mặc định là một tập con các chức danh được tự động enable khi user log on vào database. Giới hạn các chức danh mặc định bằng câu lệnh ALTER USER.
Cú pháp :
ALTER USER user DEFAULT ROLE
{role [,role]... | ALL [EXCEPT role [,role]... ] | NONE}
Với:
user tên của user được gán các chức danh
role tên của chức danh được thiết lập mặc định
ALL đặt tất cả các chức danh được gán cho user là mặc định ngoại trừ các chức danh nằm sau mệnh đề EXCEPT.
EXCEPT chỉ định các chức danh đi sau mệnh đề này không thuộc vào các chức danh mặc định.
NONE không chức danh nào trong số chức danh được gán cho user là chức danh mặc định.
Ví dụ:
ALTER USER scott
DEFAULT ROLE hr_clerk, sales_clerk;
Hoặc:
ALTER USER scott DEFAULT ROLE ALL;
Hoặc:
ALTER USER scott DEFAULT ROLE ALL
EXCEPT hr_clerk;
Hoặc:
ALTER USER scott DEFAULT ROLE NONE;
Vì các chức danh cần được gán trước khi chúng có thể được thiết lập mặc định nên không thể khởi tạo các chức danh mặc định ngay khi sử dụng câu lệnh CREATE USER.
20.2.6. Enable và Disable các chức danh
Enable và Disable các chức danh sẽ tạm thời cho phép hoặc không cho phép các quyền kết hợp với các chức danh. Để enable các chức danh trước hết cần gán các chức danh cho user.
Khi một chức danh được enable, user có thể sử dụng các quyền được gán cho chức danh đó và ngược lại trừ khi các quyền đó được gán trực tiếp cho user hay được gán cho chức danh khác nhưng chức danh đó được enable cho user đó.
Chỉ định các chức danh được enable
Câu lệnh SET ROLE và thủ tục DBMS_SESSION.SET_ROLE cho phép enable tất cả các chức danh và disable các chức danh khác .
Cú pháp:
SET ROLE {role [ IDENTIFIED BY PASSWORD ]
[, role [ IDENTIFIED BY PASSWORD ]]...
| ALL [ EXCEPT role [, role ] ...]
| NONE }
Với:
role là tên của chức danh
IDENTIFIED BY password
chỉ định mật khẩu xác nhận khi enable chức danh
ALL enable tất cả các chức danh được gán cho user hiện thời ngoại trừ các chức danh trong danh sách sau mệnh đề EXCEPT
EXCEPT danh sách các chức danh không được enable.
NONE disable tất cả các chức danh cho session hiện thời.
Ví dụ:
SET ROLE sales_clerk
IDENTIFIED BY commission;
Hoặc:
SET ROLE hr_clerk;
Hoặc:
SET ROLE ALL EXCEPT
sales_clerk;
Hoặc:
SET ROLE NONE;
20.2.7. Thu hồi các chức danh từ các user
Sử dụng cú pháp sau đây để thu hồi các chức danh từ các user .
Cú pháp :
REVOKE role_name [, role_name ]...
FROM {user|role|PUBLIC}
[, {user|role|PUBLIC} ]...
Với:
role_name tên của các chức danh cần thu hồi.
user tên user bị thu hồi chức danh.
role tên của các chức danh bị thu hồi chức danh.
PUBLIC thu hồi các quyền hay chức danh từ tất cả các user.
Ví dụ:
REVOKE sales_clerk FROM scott;
Hoặc:
REVOKE hr_manager FROM PUBLIC;
20.2.8. Xoá các chức danh
Để xoá các chức danh từ database sử dụng câu lệnh sau.
Cú pháp:
DROP ROLE role_name;
Với:
role_name là tên của chức danh bị xoá.
Ví dụ:
DROP ROLE hr_manager;
20.3.THÔNG TIN VỀ CÁC CHỨC DANH
Các bảng thông tin về chức danh
Thông tin về các chức danh được lấy trong data dictionary. Có rất nhiều tables và views chứa thông tin về các quyền được gán cho user.
Tên view
|
Diễn giải
|
DBA_ROLES
|
Tất cả các chức danh trong database
|
DBA_ROLE_PRIVS
|
Các chức danh đã được gán quyền cho user hay chức danh khác
|
ROLE_PRIVS
|
Các chức danh đã được gán quyền cho chức danh khác
|
DBA_SYS_PRIVS
|
Quyền hệ thống gán cho user hay chức danh
|
ROLE_SYS_PRIVS
|
Quyền hệ thống gán cho chức danh
|
ROLE_TAB_PRIVS
|
Quyền trên table được gán cho chức danh
|
SESSION_ROLES
|
Các chức danh được phép của user hiện thời
|
Ví dụ: Thông tin về các quyền cấp phát cho user
SVRMGRL> SELECT chức danh, password_required FROM dba_chức danhs;
ROLE PASSWORD
------------------------------ -----------
CONNECT NO
RESOURCE NO
DBA NO
AQ_USER_ROLE NO
SELECT_CATALOG_ROLE NO
EXECUTE_CATALOG_ROLE NO
DELETE_CATALOG_ROLE NO
AQ_ADMINISTRATOR_ROLE NO
RECOVERY_CATALOG_OWNER NO
IMP_FULL_DATABASE NO
EXP_FULL_DATABASE NO
SNMPAGENT NO
SALES_CLERK YES
HR_CLERK EXTERNAL
14 rows selected.
=============================
Website không bao giờ 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 muốn tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp 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ộ kinh nghiệm, thủ tục, quy trình, bí kíp thực chiến mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google 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/admin1_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
=============================
Website không bao giờ 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 muốn tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp 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ộ kinh nghiệm, thủ tục, quy trình, bí kíp thực chiến mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google 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/admin1_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
=============================
HỌC ORACLE DATABASE CƠ BẢN TỪ A-Z - BÀI 20: QUẢN LÝ CHỨC DANH (ROLE), 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, 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, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty