Oracle
database có khoảng 80 quyền hệ thống và con số này đang tiếp tục tăng lên.
Các
quyền hệ thống có thể chia ra như sau:
§ Các quyền
cho phép thực hiện các thao tác mức độ rộng trên hệ thống ví dụ như: CREATE
SESSION, CREATE TABLESPACE.
§ Các quyền
cho phép quản lý các đối tượng thuộc về một user ví dụ: CREATE
TABLE
§ Các quyền cho phép quản lý các đối tượng trong bất
cứ một schema nào ví dụ câu lệnh: CREATE ANY TABLE.
Có
thể điều khiển các quyền bằng cách câu lệnh GRAND
hay REVOKE.
Chú ý:
Các
users có quyền ANY đều có thể truy xuất các bảng thuộc
data dictionary ngoại trừ các tiền tố USER_ALL và bất cứ
views nào trên đó các quyền được gán cho PUBLIC.
19.1.1. Các
quyền hệ thống
Phân
loại
|
Ví
dụ
|
INDEX
|
CREATE ANY INDEX
ALTER ANY INDEX
DROP ANY INDEX
|
TABLE
|
CREATE TABLE
CREATE ANY TABLE
ALTER ANY TABLE
DROP ANY TABLE
SELECT ANY TABLE
UPDATE ANY TABLE
DELETE ANY TABLE
|
SESSION
|
CREATE SESSION
ALTER SESSION
RESTRICTED SESSION
|
TABLESPACE
|
CREATE TABLESPACE
ALTER TABLESPACE
DROP TABLESPACE
UNLIMITED TABLESPACE
|
§ Không
có quyền CREATE
INDEX
§ Các quyền
như CREATE
TABLE, CREATE PROCEDURE, CREATE
CLUSTER bao gồm cả các quyền xoá các đối tượng đó.
§ CREATE TABLE bao gồm các quyền CREATE
INDEX và ANALYZE, Các user cần
có đủ quota trên tablespace hay phải được gán UNLIMITED TABLESPACE .
§ Để
truncate các bảng thì quyền DROP ANY TABLE được sử
dụng.
19.1.2. Gán
các quyền hệ thống
Sử
dụng cú pháp sau đây để gán quyền hệ thống cho user
Cú
pháp:
GRANT
{system_priv|role}
[, {system_priv|role} ]...
TO {user|role|PUBLIC}
[, {user|role|PUBLIC} ]...
[WITH ADMIN OPTION]
Với:
system_priv
chỉ định quyền hệ thống sử dụng
role
chỉ định tên
chức danh được gán
PUBLIC
gán quyền hệ thống
cho tất cả các user
WITH
ADMIN OPTION
cho phép user được
gán quyền có thể gán
quyền hay chức
danh đó cho user khác.
Ví dụ:
GRANT
CREATE SESSION, CREATE TABLE
TO user1;
Hoặc
GRANT
CREATE SESSION TO scott
WITH ADMIN OPTION;
Một số hướng dẫn
§ Để có
quyền hệ thống, user cần được gán quyền có kèm thêm tuỳ chọn WITH ADMIN OPTION.
§ Người
được gán với tuỳ chọn WITH ADMIN OPTION có
thể tiếp tục gán cho một user khác quyền hệ thống với WITH
ADMIN OPTION.
§ Bất cứ
một user nào có quyền GRANT ANY ROLE có thể
gán bất kì quyền nào trong database.
§ Người
được gán với tuỳ chọn WITH ADMIN OPTION có
thể gán quyền hay lấy lại các quyền từ bất
cứ user hay role nào trong database.
19.1.3. Xác
nhận user bằng password file
Trong
chương quản lý database, ta đã biết đến hai quyền hệ thống là SYSDBA
và SYSOPER.
Các quyền này được sử dụng chỉ định rằng việc xác lập user thông qua password
file.
Chỉ
có người quản trị hệ thống mới có thể có khả năng connect vào database với quyền
quản trị. Kết nối với quyền SYSDBA
sẽ cho phép user có quyền thực thi không giới hạn đối với các hoạt động trên
database hay đối tượng trong database.
Bảng sau đây phân
biệt giữa hai loại quyền SYSDBA và SYSOPER
Phân
loại
|
Ví
dụ
|
SYSOPER
|
STARTUP
SHUTDOWN
ALTER DATABASE OPEN | MOUNT
ALTER DATABASE BACKUP CONTROLFILE
ALTER TABLESPACE BEGIN/END BACKUP
RECOVER DATABASE,
ALTER DATABASE ARCHIVELOG
RESTRICTED SESSION
|
SYSDBA
|
SYSOPER privileges WITH ADMIN
OPTION
CREATE DATABASE
RECOVER DATABASE UNTIL
|
Sau
khi tạo password file bằng công cụ password và khởi tạo tham số trong
initialization file:
REMOTE_LOGIN_PASSWORD_FILE=EXCLUSIVE
Người
quản trị hệ thống có thể thêm các user
vào trong password file bằng cách gán các quyền SYSDBA
và SYSOPER
cho user.
Tuỳ
chọn WITH
ADMIN OPTION không được sử dụng cho việc gán các quyền này. Chỉ
có user hiện đang được nối đến database với quyền SYSDBA
mới có thể gán và lấy lại SYSDBA hay SYSOPER
cho các user khác. Các quyền này không thể được gán cho một role bởi vì các
role không tồn tại khi database startup.
View
V$PWFILE_USERS
chứa thông tin về các user được gán quyền SYSDBA và SYSOPER.
SVRMGR> SELECT
* FROM v$pwfile_users;
USERNAME SYSDB SYSOP
----------------- --------- -----------
INTERNAL TRUE TRUE
SYS TRUE TRUE
2 rows selected.
19.1.4. Thông
tin về các quyền
Thông
tin về các quyền được lấy từ các view data dictionary: DBA_SYS_PRIVS
và SESSION_PRIVS.
Các
thông tin bao gồm:
§ DBA_SYS_PRIVS: GRANTEE,
PRIVILEGE, ADMIN OPTION
§ SESSION_PRIVS: PRIVILEGE
Ví
dụ:
Lịêt
kê các quyền hệ thống được gán cho user và role:
SVRMGR>SELECT *
FROM DBA_SYS_PRIVS;
GRANTEE PRIVILEGE ADM
---------- --------------- -----
...
SCOTT SELECT ANY TABLE NO
SYS DELETE ANY TABLE NO
SYS EXECUTE ANY TYPE NO
SYS INSERT ANY TABLE NO
SYS SELECT ANY SEQUENCE NO
SYS SELECT ANY TABLE YES
SYS UPDATE ANY TABLE NO
SYSTEM UNLIMITED TABLESPAC YES
...
View
SESSION_PRIVS
liệt kê các quyền có sẵn cho session hiện tại cho một user.
SVRMGR> SELECT
* FROM session_privs;
PRIVILEGE
----------------------------------------
CREATE SESSION
ALTER SESSION
CREATE TABLE
SELECT ANY TABLE
CREATE CLUSTER
CREATE SYNONYM
CREATE VIEW
CREATE SEQUENCE
CREATE DATABASE
LINK
CREATE PROCEDURE
CREATE TRIGGER
CREATE TYPE
12 rows selected.
19.2.QUẢN LÝ QUYỀN
19.2.1. Thu
hồi các quyền hệ thống
Sử
dụng cú pháp sau đây để lấy lại các quyền hệ thống.
Cú
pháp:
REVOKE
{system_priv|role}
[,
{system_priv|role} ]...
FROM
{user|role|PUBLIC}
[,
{user|role|PUBLIC} ]...
Ví
dụ:
REVOKE CREATE
TABLE FROM user1;
Hoặc:
REVOKE CREATE
SESSION FROM scott;
Chú ý:
§ Câu lệnh
REVOKE
chỉ có thể lấy lại quyền của mà đã được gán trực tiếp bằng câu lệnh
GRANT.
§ Thu hồi
các quyền hệ thống có thể ảnh hưởng đến một số các đối tượng phụ thuộc. Ví dụ:
nếu quyền SELECT
ANY TABLE được gán cho user và user đó được gán các thủ tục hay
view mà sử dụng các bảng thuộc về các user khác thì việc lấy lại các quyền sẽ
làm cho các thủ tục hay view đó trở nên không hợp lệ.
Thu hồi các quyền
sử dụng có WITH ADMIN OPTION
Hai
hình dưới đây sử minh hoạ việc thu hồi các quyền hệ thống sử dụng WITH
ADMIN OPTION.
Không
có sự ảnh hưởng lan truyền khi thu hồi quyền hệ thống, khi sử dụng tuỳ chọn WITH
ADMIN OPTION.
19.2.2. Quyền
trên các đối tượng
Mỗi
quyền trên đối tượng được gán cho phép người dùng được gán thực thi một số thao
tác trên đối tượng, bảng dưới đây liệt kê các quyền có thể được gán trên một đối
tượng.
Quyền
|
Table
|
View
|
Sequence
|
Procedure
|
ALTER
|
X
|
X
|
||
DELETE
|
X
|
X
|
||
EXECUTE
|
X
|
|||
INDEX
|
X
|
|||
INSERT
|
X
|
X
|
||
REFERENCES
|
X
|
|||
SELECT
|
X
|
X
|
X
|
|
UPDATE
|
X
|
X
|
19.2.3. Gán
các quyền trên đối tượng
Sử
dụng cú pháp sau đây để gán một quyền trên đối tượng.
Cú
pháp:
GRANT {
object_priv [(column_list)]
[, object_priv
[(column_list)] ]...
|ALL [PRIVILEGES]}
ON [schema.]object
TO
{user|role|PUBLIC}
[,
{user|role|PUBLIC} ]...
[WITH GRANT
OPTION]
object_priv chỉ định quyền đối tượng được
gán column_list chỉ định các cột của một bảng hay view (tuỳ chọn này chỉ sử dụng
khi gán các quyền INSERT,REFERENCES hay UPDATE.
ALL gán tất cả các quyền
cho đối tượng mà đã được gán với WITH ADMIN OPTION.
ON
object chỉ định đối tượng
trên đó các quyền được gán .
WITH
GRANT OPTION
cho phép người được gán quyền có thể
gán các quyền đó cho một user khác.
Lưu ý:
§ Để gán
các quyền, các đối tượng phải thuộc về schema của user gán hoặc cần có quyền WITH
GRANT OPTION.
§ Mặc định
nếu một object thuộc về một user nào đó thì user đó có đầy đủ các quyền trên đối
tượng đó.
§ Tuỳ chọn
WITH
ADMIN OPTION không dùng cho việc gán các quyền cho các chức danh.
19.2.4. Thông
tin về các quyền
Thông
tin về các quyền được lưu trữ trong các data dictionary.
Một
số thông tin ta cần quan tâm:
§ DBA_TAB_PRIVS: GRANTEE, OWNER, TABLE_NAME,
GRANTOR, PRIVILEGE, GRANTABLE
§ DBA_COL_PRIVS: GRANTEE, OWNER, TABLE_NAME,
COLUMN_NAME, GRANTOR, PRIVILEGE, GRANTABLE
Truy
vấn thông tin trên bảng DBA_TAB_PRIVS để lấy
thông tin về các quyền trên đối tượng được gán cho user.
svrmgr>
SELECT * FROM dba_tab_privs
2> WHERE GRANTEE=’SCOTT’
GRANTEE OWNER TABLE_NAME GRA PRIVILEGE GRA
--------- ----- ----------- ----- ---------- -----
SCOTT SYS RESUMES
SYS READ NO
1
row selected.
19.2.5. Thu
hồi các quyền trên đối tượng
Sử
dụng cú pháp sau đây để lấy lại quyền đã cấp.
Cú
pháp:
REVOKE
{ object_priv
[, object_priv ]...
|ALL [PRIVILEGES] }
ON [schema.]object
FROM {user|role|PUBLIC}
[, {user|role|PUBLIC} ]...
[CASCADE CONSTRAINTS]
Với:
object_pri chỉ định quyền trên đối tượng
đã được gán
ALL thu hồi toàn bộ các
quyền trên đối tượng đã được gán cho user.
ON chỉ định đối tượng
trên đó các quyền trên đối tượng được thu hồi.
FROM chỉ định user hay role
bị thu hồi quyền.
CASCADE
CONSTRAINTS
xoá tất cả các tham chiếu mà việc
thu hồi đã được định nghĩa do sử dụng quyền REFERENCES hay ALL.
Ví
du:
REVOKE
execute ON dbms_pipe
FROM scott;
Lấy
lại các quyền đối tượng khi sử dụng mệnh đề WITH
GRANT OPTION
Việc
thu hồi các quyền đối tượng sẽ dẫn đến các việc thu hồi các quyền lan truyền.
Hình sau minh hoạ quá trình lan truyền đó:
=============================
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 19: CÁC QUYỀN HỆ THỐNG, 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