Professional Documents
Culture Documents
TIỂU LUẬN
MỤC LỤC
1
LỜI MỞ ĐẦU....................................................................................................................
3
4.1. TÀI KHOẢN NGƯỜI DÙNG CƠ SỞ DỮ LIỆU ORACLE..................................60
KẾT LUẬN.......................................................................................................................
LỜI MỞ ĐẦU
Ngày nay, thuật ngữ cơ sở dữ liệu đang ngày càng phổ biến trong lĩnh vực công nghệ thông tin
và truyền thông. Hầu hết các doanh nghiệp lớn ở lĩnh vực truyền thông ,các đài truyền hình
đều có một hệ cơ sở dữ liệu khổng lồ. Hầu hết các sản phẩm quản lý, thương mại hiện nay đều
thao tác trên cơ sở dữ liệu. Để quản trị số lượng cơ sở dữ liệu khổng lồ đó các nhà quản trị sử
dụng đến hệ thống quản lý cơ sở dữ liệu quan hệ ( RDBMS ).Trong đó, RDBMS là viết tắt của
Relational Database Management System có nghĩa là hệ quản trị cơ sỡ dữ liệu quan hệ.
RDBMS là cơ sở cho SQL, và cho tất cả các hệ thống cơ sở dữ liệu hiện đại như MS SQL
Server, IBM DB2, Oracle, MySQL và Microsoft Access.
5
Bởi vì các bảng này được tổ chức chặt chẽ nên việc truy cập dữ liệu trở nên dễ dàng
hơn trong RDBMS.
7
o Năm 2001, cơ sở dữ liệu Oracle9i đã giới thiệu Oracle RAC cho phép nhiều
phiên bản truy cập đồng thời vào một cơ sở dữ liệu duy nhất. Ngoài ra, Cơ sở
dữ liệu XML của Oracle (Oracle XML DB) đã giới thiệu khả năng lưu trữ và
truy vấn XML.
Điện toán lưới
o Năm 2003, Oracle Database 10g giới thiệu điện toán lưới. Bản phát hành này
cho phép các tổ chức ảo hóa tài nguyên máy tính bằng cách xây dựng cơ sở hạ
tầng lưới dựa trên các máy chủ hàng hóa chi phí thấp. Mục tiêu chính là làm
cho cơ sở dữ liệu tự quản lý và tự điều chỉnh. Quản lý lưu trữ tự động Oracle
(Oracle ASM) đã giúp đạt được mục tiêu này bằng cách ảo hóa và đơn giản hóa
việc quản lý lưu trữ cơ sở dữ liệu.
Khả năng quản lý, khả năng chẩn đoán và tính khả dụng
o Năm 2007, Oracle Database 11g được phát hành đã giới thiệu một loạt các tính
năng mới cho phép quản trị viên và nhà phát triển thích ứng nhanh chóng với
các yêu cầu kinh doanh thay đổi. Chìa khóa của khả năng thích ứng là đơn giản
hóa cơ sở hạ tầng thông tin bằng cách hợp nhất thông tin và sử dụng tự động
hóa bất cứ khi nào có thể.
o Năm 2009, phát hành phiên bản database 11gR2 .
o Năm 2013, phát hành Oracle 12c, phiên bản Oracle database có rất nhiều thay
đổi để chạy trên nền tảng điện toán đám mây, là bước khởi đầu cho DaaS (Data
as a service)
o Hiện nay đã phát hành Oracle 18c, 19c và 21c
− Cơ sở dữ liệu oracle được chuyển sang tất cả các nền tảng khác với tất cả các nền tảng
khác của nó. Nó dễ dàng chạy trên gần 20 giao thức mạng và trên hơn 100 nền tảng
phần cứng. Điều tương tự cũng giúp bạn dễ dàng viết một ứng dụng oracle bằng cách
thực hiện các thay đổi một cách an toàn trong hệ điều hành và phần cứng.
Khả năng sao lưu và phục hồi dễ dàng
− Nó là tốt để được sử dụng như là một bản sao lưu thích hợp của toàn bộ bản sao lưu
trực tuyến oracle của bạn cũng như phục hồi. Với sự trợ giúp của việc sử dụng cơ sở
dữ liệu oracle, người ta có thể dễ dàng thực hiện khôi phục tại mọi thời điểm nhưng
yêu cầu không gian lưu trữ lớn và có cơ chế lưu trữ.
Hiệu suất cao
− Có nghĩa là việc tạo ra một cơ sở dữ liệu oracle tốt sẽ cung cấp cho bạn tốc độ khá tốt
và cả với cơ sở dữ liệu lớn. Ngoài ra, cơ sở dữ liệu oracle cải thiện hiệu suất và tốc độ
xem xét với việc kiểm soát và khóa giao dịch.
Hỗ trợ nhiều cơ sở dữ liệu
− Lợi thế tốt nhất mà người dùng nhận được khi sử dụng cơ sở dữ liệu oracle là nó dễ
dàng quản lý nhiều cơ sở dữ liệu trong cùng một giao dịch.
Thị trường lớn
− Cho đến nay, Oracle là Nhà cung cấp RDBMS lớn nhất và chi nhiều hơn cho Nghiên
cứu và Phát triển so với các đối thủ còn lại. Về thị phần RDBMS, Oracle có thị phần
tối đa trong các lĩnh vực máy chủ VMS, UNIX và OS .
Thay đổi phiên bản tương thích
− Kể từ phiên bản V4 Beta và chưa bao giờ phải đối mặt với bất kỳ trải nghiệm khó chịu
nào về mặt cú pháp. Cho nên có thể nói khả năng tương thích rất tốt
Tính bảo mật cao
− Cơ chế độc quyền do Oracle cung cấp để giám sát và kiểm soát việc truy cập và sử
dụng dữ liệu. Bạn có thể dễ dàng ngăn chặn truy cập trái phép và cho phép người dùng
truy cập riêng biệt bằng cách triển khai cấp quyền và chỉnh sửa các hành động của
người dùng.
Hạn chế:
Quá phức tạp
− Không đơn giản như cài đặt Oracle và bắt đầu, mà nó đòi hỏi các kỹ năng chuyên môn
để cài đặt và bảo trì vì nó là một công cụ cực kỳ phức tạp.
Chi phí của Cơ sở dữ liệu Oracle
9
− Giá của các sản phẩm Oracle có thể tăng lên đến mười lần so với giải pháp Cơ sở dữ
liệu MS SQL Server cho một giải pháp tầm trung. Hơn nữa, không có mức giá cụ thể
để có được giấy phép Oracle vì nó thường thay đổi theo thời gian tùy thuộc vào nhiều
yếu tố như thay đổi trong chính sách, bản vá và bản cập nhật của công ty.
Khó quản lý
− Khó khăn hơn rất nhiều về mặt quản lý các hoạt động nhất định.
1.3. CÁC PHIÊN BẢN ORACLE HIỆN NAY
Cơ sở dữ liệu Oracle hiện hành trong năm phiên bản dưới đây, mỗi phiên bản phù hợp với các
tình huống triển khai và phát triển khác nhau. Oracle cũng cung cấp một số tùy chọn cơ sở dữ
liệu, gói và các sản phẩm khác để nâng cao khả năng của Cơ sở dữ liệu Oracle cho các ứng
dụng cụ thể.
Cơ sở dữ liệu Oracle Standard Edition One
− Cơ sở dữ liệu Oracle Standard Edition One mang lại khả năng sử dụng, sức
mạnh và hiệu suất dễ dàng chưa từng có cho nhóm làm việc, cấp phòng ban và
các ứng dụng Web. Từ môi trường máy chủ đơn cho các doanh nghiệp nhỏ đến
môi trường chi nhánh phân tán cao, Oracle Database Standard Edition One bao
gồm tất cả các cơ sở cần thiết để xây dựng các ứng dụng quan trọng cho doanh
nghiệp.
Cơ sở dữ liệu Oracle Standard Edition
− Cơ sở dữ liệu Oracle Standard Edition mang đến sự dễ dàng sử dụng, sức mạnh
và hiệu suất chưa từng có của Standard Edition One, với sự hỗ trợ cho các máy
lớn hơn và phân cụm dịch vụ với Oracle Real Application Cluster (Oracle
RAC). Oracle RAC không có trong Phiên bản Tiêu chuẩn của các bản phát
hành trước Cơ sở dữ liệu Oracle 10g, cũng không phải là một tùy chọn khả
dụng với các bản phát hành trước đó.
Oracle Database Enterprise Edition
− Oracle Database Enterprise Edition cung cấp hiệu suất, tính khả dụng, khả năng
mở rộng và bảo mật cần thiết cho các ứng dụng quan trọng như ứng dụng xử lý
giao dịch trực tuyến khối lượng lớn (OLTP- On-Line Transactional
Processing), kho dữ liệu truy vấn chuyên sâu và các ứng dụng Internet yêu cầu.
Oracle Database Enterprise Edition chứa tất cả các thành phần của Cơ sở dữ
liệu Oracle và có thể được nâng cao hơn nữa
Oracle Database Express Edition
− Oracle Database Express Edition (Oracle Database XE) là một phiên bản cấp
độ đầu vào của Cơ sở dữ liệu Oracle, tải xuống nhanh chóng, cài đặt và quản lý
đơn giản và miễn phí để phát triển, triển khai và phân phối. Oracle Database
XE giúp bạn dễ dàng nâng cấp lên các phiên bản khác của Oracle mà không
cần di chuyển phức tạp và tốn kém. Oracle Database XE có thể được cài đặt
trên mọi kích thước máy với số lượng CPU bất kỳ, lưu trữ tối đa 4GB dữ liệu
người dùng, sử dụng bộ nhớ lên đến 1GB và chỉ sử dụng một CPU trên máy
chủ.
Oracle Database Personal Edition
− Oracle Database Personal Edition hỗ trợ các môi trường triển khai và phát triển
một người dùng yêu cầu khả năng tương thích hoàn toàn với Oracle Database
Standard Edition One, Oracle Database Standard Edition và Oracle Database
Enterprise Edition.
Ngoài ra, còn có phiên bản cá nhân bao gồm tất cả các thành phần có trong Phiên bản Doanh
nghiệp, cũng như tất cả các tùy chọn có sẵn với Phiên bản Doanh nghiệp, ngoại trừ tùy chọn
Cụm ứng dụng Thực của Oracle, không thể sử dụng với Phiên bản Cá nhân. Phiên bản Cá
nhân chỉ có sẵn trên nền tảng Windows.
11
Bước 2: Chọn tab tải xuống
Bước 3: Nhấp vào phiên bản mới nhất của Cơ sở dữ liệu Oracle 12c (x64).
Bước 4: Chọn Accept the license agreement chọn tệp tin Oracle Database 12c Release
... for Microsoft Windows (x64) để tải xuống
Bước 5: Đăng nhập vào tài khoản web Oracle của bạn. Nếu chưa có tài khoản Oracle,
hãy nhấp vào liên kết "Đăng ký" để tạo một tài khoản. Sau đó, chọn vị trí bạn muốn tải
xuống các tệp .zip
Bước 6: Giải nén file zip đầu tiên vừa tải xuống
13
Bước 7 : Truy cập thư mục database, kích chuột phải chọn “Run as administrator” để
tiến hành cài đặt.
Bước 8 : Bỏ tùy chọn “I wish to receive security updates via My Oracle Support.”
Bước 9 : Hộp thoại cảnh báo sẽ hiện lên do không điền Email, bấm “Yes” để bỏ qua.
15
Bước 10 : Chọn “Install database software only”
Bước 11 : Chọn “Single instance database installation”
17
Bước 12 : Chọn ngôn ngữ, hoặc để mặc định là English Bấm Next để tiếp tục
Bước 13: Chọn phiên bản database để thực hiện cài đặt.
Bước 14 : Chỉ định Oracle Home User
19
Bước 15 : Bấm Yes để tiếp tục
Bước 17 : Xác nhận thông tin cài đặt Bấm Install để bắt đầu cài đặt
Bước 18: Trong quá trình cài đặt có thể Oracle sẽ yêu cầu quyền truy cập ra network.
Bấm Allow access để Firewall không block ứng dụng.
21
Bước 19 : Kết thúc cài đặt bấm Close
Bước 20: Mở
Start Menu Database Configuration Assitant Kích chuột phải Chọn “Run as
administrator”
Bước 21 : Chọn “Create Database”
23
Bước 23 : Kiểm tra thông tin Database Bấm Finish và đợi tạo Database
Bước 24 : Bấm Allow access
Bước
25 :
Sau
khi
tạo
xong
25
1.5. CÁC THÀNH PHẦN CƠ BẢN
Có ba cấu trúc chính trong kiến trúc máy chủ Cơ sở dữ liệu Oracle: cấu trúc bộ nhớ, cấu trúc
quy trình và cấu trúc lưu trữ. Một hệ thống cơ sở dữ liệu Oracle cơ bản bao gồm một cơ sở dữ
liệu Oracle và một cá thể cơ sở dữ liệu.
Oracle Instance: bao gồm các cấu trúc bộ nhớ (memory structure) và các quy trình nền
(background processes) được liên kết với cá thể đó.
Oracle Database: Cơ sở dữ liệu Oracle là một tập hợp dữ liệu được coi như một đơn vị. Mục
đích của cơ sở dữ liệu là lưu trữ và truy xuất thông tin liên quan. Một máy chủ cơ sở dữ liệu là
chìa khóa để giải quyết các vấn đề về quản lý thông tin. Máy chủ quản lý một cách đáng tin
cậy một lượng lớn dữ liệu trong môi trường đa người dùng để nhiều người dùng có thể truy
cập đồng thời vào cùng một dữ liệu. Máy chủ cơ sở dữ liệu cũng ngăn chặn truy cập trái phép
và cung cấp các giải pháp hiệu quả để khắc phục lỗi.
2. QUẢN TRỊ VẬN HÀNH
27
Bước 3 : chọn Transaction Processing Next
29
Bước 7 : Chọn Next
Bước 11 :
Chọn
31
Character Sets chọn Use Unicode (AL32UTF8) ở mục National Character Set chọn
UTF8- Unicode 3.0 … Next
33
Bước 14 : Chọn ok để xác nhận
Bước 15 : Chờ 5 – 10 p
37
Bước 5 : Chọn giao thức lắng nghe thường là TCP
Bước 6 : Nhập tên máy chủ cơ sở dữ liệu. Ở đây LISTENER lắng nghe CSDL ngay trên cùng
1 máy nên có thể đặt là localhost hoặc tên máy
39
Bước 7 : Chọn Yes, perform a test
Bước 8 : Nếu hiện như hình thì đã cấu hình thành công
2.2. SAO LƯU DỮ LIỆU
Oracle Secure backup và RMAN (Recovery Manager) cung cấp giải pháp backup end-to-end
cho môi trường oracle.
− Quản lý backup lên tape tập trung giữa dữ liệu file sustem và CSDL Oracle
− Lớp quản lý lưu trữ tích hợp tốt nhất để backup lên tape với RAMN
− Backup bất kì dữ liệu nào qua mạng
− Sao lưu RMAN được thực hiện bằng cách sử dụng câu lệnh BACKUP
− Một cách khắc phục là tạo file backup gồm 2 dạng:
o Full backup: Toàn bộ tạo cơ sở dữ liệu
o Partial backup: Chỉ backup một phần file dữ liệu
Lệnh sao lưu RMAN
Để thực hiện sao lưu cơ sở dữ liệu đầy đủ
BACKUP DATABASE;
Để sao lưu tất cả các bản ghi lưu trữ
BACKUP ARCHIVELOG ALL;
Để sao lưu cơ sở dữ liệu và tất cả các tệp nhật ký lưu trữ
BACKUP DATABASE PLUS ARCHIVELOG;
Để sao lưu tệp điều khiển hiện tại
BACKUP CURRENT CONTROLFILE;
Để sao lưu SPFILE
BACKUP SPFILE;
Để sao lưu một tệp dữ liệu cụ thể
BACKUP DATAFILE '/u01/app/oradata/TEST/users01.dbf';
Để sao lưu một vùng bảng
BACKUP TABLESPACE USERS;
Sao lưu thẻ tuỳ chọn
BACKUP DATABASE TAG = 'Full_Backup';
Để chạy một bản sao lưu gia tăng khác nhau
BACKUP INCREMENTAL LEVEL 1 DATABASE;
41
Để chạy một bản sao lưu gia tăng tích lũy
BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;
Để sử dụng sao lưu mức 0
BACKUP INCREMENTAL LEVEL 0 DATABASE;
Để tạo một bản sao hình ảnh của toàn bộ cơ sở dữ liệu
BACKUP AS COPY DATABASE;
Để tạo một bản sao hình ảnh của một tệp dữ liệu cụ thể
BACKUP AS COPY DATAFILE <file#>
Ví dụ:
BACKUP AS COPY DATAFILE 4 FORMAT '/u01/app/oracle/copy/users01.dbf';
Hoặc chỉ định tên tệp nguồn. Ví dụ:
BACKUP AS COPY DATAFILE '/u01/app/oradata/TEST/users01.dbf'
FORMAT '/u01/app/oracle/copy/users01.dbf';
Recovering Block
BLOCKRECOVER CORRUPTION LIST;
BLOCKRECOVER DATAFILE 7 BLOCK 233, 235 DATAFILE 4 BLOCK 101;
43
3. QUẢN TRỊ THÀNH PHẦN
2.
3.
3.1.
3.1.1.
3.1.2.
3.1.3. Sao chép một tables
Ta có thể sử dụng câu lệnh CREATE TABLE để sao chép một table đang tồn tại:
45
Cú pháp:
CREATE TABLE [schema.]table
[LOGGING|NOLOGGING]
....
AS Câu truy vấn con
Ví dụ:
CREATE TABLE new_emp
STORAGE(INITTIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50)
NOLOGGING
TABLESPACE data01
AS SELECT * FROM scott.emp;
47
3.2.2. Cập nhật View
Cú pháp
CREATE OR REPLACE VIEW view_name AS
SELECT columns
FROM table
WHERE conditions;
Ví dụ :
CREATE or REPLACE VIEW sup_orders AS
SELECT suppliers.supplier_id, orders.quantity, orders.price
FROM suppliers
INNER JOIN orders
ON suppliers.supplier_id = supplier_id
WHERE suppliers.supplier_name = 'NOKIA';
3.2.3. Xem dữ liệu trong View
Cú pháp
SELECT * FROM view_name;
Ví dụ
SELECT * FROM sup_orders;
3.2.4. Xóa View
Cú pháp
DROP VIEW view_name;
Ví dụ
DROP VIEW sup_orders;
Trong đó
Mỗi tham số truyền vào được xác định bởi ba loại như sau:
IN: Đây là kiểu mặc định, tham số này sẽ là dữ liệu đầu vào
IN OUT: Là tham số đặc biệt, vừa là đầu vào vừa là đầu ra, và thường thì giá trị tại
đầu ra sẽ bị thay đổi.
Ví dụ
Giả sử ban đầu tạo một bảng user gồm ID và NAME như sau:
Bây giờ mình sẽ viết một thủ tục có nhiệm vụ là thêm mới một record vào bảng User.
Vì bảng user có hai column đó là id và name, vì vậy thủ tục này sẽ có hai tham số.
49
name IN VARCHAR2)
is
begin
insert into user values(id,name);
end;
Khi bạn chạy lệnh này mà chương trình báo "Procedure created." thì tạo thành công.
END;
Ví dụ
Cú pháp
CREATE [OR REPLACE] FUNCTION function_name
[ (parameter [,parameter]) ]
RETURN return_datatype
IS | AS
[declaration_section]
BEGIN
executable_section
[EXCEPTION
exception_section]
END [function_name];
Trong đó
Ví dụ
51
BEGIN
N5 :=n3+n4;
RETURN n5;
END;
Cú pháp
Ví dụ
Trong đó
được sử dụng chỉ định một unique index (non-unique index
UNIQUE
là mặc định).
schema là owner của bảng chứa index.
index là tên của index.
table là tên của bảng chứa index
column là tên cột dùng làm index
ASC/DESC được cung cấp để tương thích về cú pháp cho database khác.
TABLESPACE tên tablespace mà index sẽ được tạo trên đó
không gian dành riêng trong mỗi block, được sử dụng khi
PCTFREE
một có điểm vào mới của index (new entries) được tạo ra.
INITRANS chỉ định số giao dịch thiết lập ban đầu cho mỗi block
giới hạn số giao dịch có thể thiết lập cho mỗi block (giá trị
MAXTRANS
mặc định là 255).
tham số lưu trữ, quy định có bao nhiêu extents sẽ cấp phát
STORAGE
cho index.
chỉ định việc tạo các index và các hoạt đông tuần tự trên trên
LOGGING
index sẽ được ghi vào trong các redo log file
chỉ định việc tạo và các hoạt động tuần tự trên index không
NOLOGGING
được ghi vào các log file.
NOSORT chỉ định các row được lưu trong database theo trật tự tăng
dấn và vì thế oracle server không cấn sắp xếp các hàng trong
53
khi tạo index.
Ví dụ:
CREATE INDEX scott.emp_lname_idx
ON scott.employees(last_name)
PCTFREE 30
STORAGE(INITIAL 200K NEXT 200K
PCTINCREASE 0 MAXEXTENTS 50)
TABLESPACE indx01;
Index Online
Thông thường trong khi tạo index, các câu lệnh DML tác động lên cột dữ liệu có liên quan đều
tạm thời không thực hiện được cho đến khi hoàn tất việc tạo index.
Để có thể cho phép thực hiện câu lệnh DML tác động lên các cột dữ liệu được index, Oracle
có hỗ trợ Index online (Index trực tuyến) khi này, ta cần bổ sung thêm mệnh đề ONLINE vào
trong câu lệnh.
Ví dụ:
ALTER INDEX emp_name REBUILD ONLINE;
CREATE INDEX emp_name ON emp (mgr, emp1, emp2, emp3) ONLINE;
Index theo giá trị hàm
Không chỉ cho phép thực hiện các index trực tiếp trên các cột dữ liệu trong table, Oracle còn
cho phép thực hiện các index dựa vào giá trị các hàm áp dụng trên các cột dữ liệu của table.
Ví dụ:
CREATE INDEX idx ON t (a + b * (c - 1), a, b);
Sử dụng cho câu lệnh truy vấn
SELECT a FROM t WHERE a + b * (c - 1) < 100;
55
[ LOGGING| NOLOGGING ]
REVERSE
Ví dụ:
CREATE UNIQUE INDEX scott.ord_ord_no_idx
ON scott.ord(ord_no) REVERSE
PCTFREE 30
STORAGE(INITIAL 200K NEXT 200K
PCTINCREASE 0 MAXEXTENTS 50)
TABLESPACE indx01;
Câu lệnh này tạo index khoá ngược tương tự như cho index thông thường ngoại trừ việc thêm
mệnh đề REVERSE.
Chú ý: từ khoá NOSORT không được sử dụng trong câu lệnh tạo index khoá ngược.
57
Hình vẽ 5. Thông tin về Index
Sử dụng câu lệnh sau đây kiểm tra tên kiểu và trạng thái của index của user SCOTT:
SELECT index_name, tablespace_name, index_type,
uniqueness, status
FROM dba_indexes
WHERE owner='SCOTT';
Đảm bảo rằng tất cả các giá trị trong một cột
KIỂM TRA
thỏa mãn một điều kiện cụ thể
Đặt giá trị mặc định cho một cột khi không
DEFAULT
có giá trị nào được chỉ định
Được sử dụng để tạo và truy xuất dữ liệu từ
INDEX
cơ sở dữ liệu rất nhanh chóng
3.7. BẪY LỖI (TRIGGER)
After trigger là những trigger sẽ được thực thi sau khi hành động chính hoàn thành.
Cú pháp
CREATE [ OR REPLACE ] TRIGGER trigger_name
AFTER INSERT OR UPDATE OR DELETE ON table_name
[ FOR EACH ROW ]
DECLARE -- variable declarations
BEGIN -- trigger code
EXCEPTION
59
WHEN ... -- exception handling
END;
Ví dụ
Đầu tiên tạo một bảng để thực hành như sau:
CREATE TABLE orders
( order_id number(5),
quantity number(4),
cost_per_item number(6,2),
total_cost number(8,2));
AFTER DELETE
CREATE OR REPLACE TRIGGER orders_after_delete
AFTER DELETE ON orders
[FOR EACH ROW]
DECLARE v_username varchar2(10);
BEGIN -- Find username of person performing the DELETE on the table
SELECT user INTO v_username
FROM dual;
-- Insert record into audit table
INSERT INTO orders_audit
( order_id, quantity, cost_per_item, total_cost, delete_date, deleted_by)
VALUES
( :old.order_id, :old.quantity, :old.cost_per_item, :old.total_cost, sysdate, v_username );
END;
AFTER INSERT
CREATE OR REPLACE TRIGGER orders_after_insert
AFTER INSERT ON orders
FOR EACH ROW
DECLARE
v_username varchar2(10);
BEGIN
-- Find username of person performing the INSERT into the table
SELECT user INTO v_username FROM dual;
-- Insert record into audit table
INSERT INTO orders_audit
( order_id, quantity, cost_per_item, total_cost, username )
VALUES
( :new.order_id, :new.quantity, :new.cost_per_item, :new.total_cost, v_username );
END;
AFTER UPDATE
CREATE OR REPLACE TRIGGER orders_after_update
AFTER UPDATE ON orders
[FOR EACH ROW]
DECLARE
v_username varchar2(10);
BEGIN
--Find username of person performing UPDATE into table
SELECT user INTO v_username FROM dual;
--Insert record into audit table
INSERT INTO orders_audit
( order_id,quantity_before,quantity_after,username )
VALUES
( :new.order_id,:old.quantity,:new.quantity,v_username );
END;
Tắt một trigger đang hoạt động ở một table
ALTER TRIGGER trigger_name DISABLE;
Tắt tất cả trigger đang hoạt động ở một table
ALTER TABLE table_name DISABLE ALL TRIGGERS;
Xóa trigger vĩnh viễn.
61
DROP TRIGGER trigger_name;
Bật một trigger đã tắt cho table
ALTER TRIGGER trigger_name ENABLE;
Bật tất cả trigger đã tắt cho table
ALTER TABLE table_name ENABLE ALL TRIGGERS;
− DBSNMP: Có role OEM_MONITOR.
4.2.2.
4.2.2.
4.2.2.
4.2.2.
4.2.2.
4.2.2.
4.2.2.
4.2.2.
4.2.2.
4.2.2.
Cơ chế bảo mật
63
CSDL được bảo mật thông qua
Quyền (Permission)
− Quyền hệ thống : Cho phép người dùng thực hiện các công việc liên quan tới CSDL
− Quyền Object: Cho phép người dùng truy cập và thay đổi một object cụ thể
Role
− Bao gồm các nhóm quyền và các role khác
− Hỗ trợ khi gán nhiều quyền hay role cho người dùng
Các giải pháp bào mật :
o Oracle Advanced Security
o Oracle Redaction and Masking
o Oracle Database Vault & Oracle Label Security
o Oracle Audit Vault & Oracle Database Firewall
o Database Vault – Privilege Analysis
o Oracle Enterprise Manager – Discover Sensitive Data and Databases
o Oracle Database Lifecycle Management – Configuration Management
4.2.3. Cơ chế xác thực
Oracle hỗ trợ 4 cơ chế xác thực :
1. Authentication by the Operating System
− Xác thực sử dụng tài khoản đăng nhập hệ điều hành
2. Authentication by the Network
− Xác thực Mạng
3. Authentication by Oracle Database
− Xác thực tài khoản Cơ sở dữ liệu Oracle
4. Authentication of Database Administrators
− Xác thực tài khoản quản trị viên cơ sở dữ liệu
Oracle cho phép một cá thể cơ sở dữ liệu duy nhất sử dụng bất kỳ hoặc tất cả các
phương thức. Oracle yêu cầu các thủ tục xác thực đặc biệt cho người quản trị cơ sở dữ
liệu, vì họ thực hiện các thao tác cơ sở dữ liệu đặc biệt. Oracle cũng mã hóa mật khẩu
trong quá trình truyền để đảm bảo tính bảo mật của quá trình xác thực mạng
65
đến cơ sở dữ liệu CREATE SESSION, quyền SELECT trên một bảng cụ thể nào đó,
…).
− Chỉ cấp cho user chính xác những quyền mà user cần đến. Việc cấp dư thừa những
quyền không cần thiết có thể gây nguy hại cho việc bảo mật hệ thống.
Có 2 loại quyền:
Quyền hệ thống (System Privilege): Là quyền thực hiện một tác vụ CSDL cụ thể
hoặc quyền thực hiện một loại hành động trên tất cả những đối tượng schema của
hệ thống.
Ví dụ : quyền ALTER SYSTEM, quyền CREATE TABLE, quyền DELETE
ANY TABLE (xóa các hàng của bất kỳ bảng nào trong CSDL),…
− User có thể cấp 1 quyền hệ thống nếu có một trong các điều kiện sau:
o User đã được cấp quyền hệ thống đó với tùy chọn WITH ADMIN OPTION.
o User có quyền GRANT ANY PRIVILEGE.
Quyền đối tượng (Schema Object Privilege hoặc Object Privilege): Là quyền
thực hiện một hành động cụ thể trên một đối tượng schema cụ thế.
Ví dụ : quyền xóa các hàng dữ liệu khỏi bảng Department.
− Có nhiều quyền đối tượng khác nhau dành cho các loại đối tượng schema khác
nhau.
− Dùng để quản lý việc truy xuất đến các đối tượng schema cụ thể nào đó.
− User có thể cấp 1 quyền đối tượng nếu có một trong các điều kiện sau:
o User có tất cả mọi quyền đối tượng trên tất cả các đối tượng thuộc schema của
mình. Vì vậy user có quyền cấp bất kỳ quyền đối tượng trên bất kỳ đối tượng
nào thuộc sở hữu của mình cho bất cứ user nào khác.
o User có quyền GRANT ANY OBJECT PRIVILEGE.
o User được cấp quyền đối tượng đó với tùy chọn WITH GRANT OPTION.
4.4.2. Vai trò (role)
− Role là một tập hợp bao gồm các quyền và các role khác.
− Role được gán cho các user hoặc các role khác.
− Role giúp cho việc quản trị người dùng dễ dàng và tiết kiệm công sức hơn.
− Có một số role có sẵn do hệ thống định nghĩa(vd: DBA, RESOURCE, CONNECT,
…) nhưng đa phần các role là do người quản trị CSDL tạo ra.
− Role không phải là một đối tượng schema (schema object) nên không được lưu trữ
trong schema của user tạo ra nó. Do vậy, user tạo ra một role có thể bị xóa mà
không ảnh hưởng đến role đó.
− User có thể cấp 1 role nếu có một trong các điều kiện sau:
o User đã tạo ra role đó.
o User đã được cấp role đó với tùy chọn WITH ADMIN OPTION.
o User có quyền GRANT ANY ROLE
Bảo mật role
− Role có thể không phải mặc định và được bật khi được yêu cầu
67
CREATE PROCEDURE, CREATE
SEQUENCE, CREATE TABLE, CREATE
TRIGGER, CREATE TYPE
KẾT LUẬN
Oracle là một sản phẩm phần mềm quản lý database server mạnh mẽ để phục vụ cho các tổ
chức doanh nghiệp hoặc cá nhân. Một hệ thống quản lý cơ sở dữ liệu không chỉ được sử dụng
để lưu trữ dữ liệu mà còn để quản lý nó một cách hiệu quả và cung cấp hiệu suất cao, quyền
truy cập được ủy quyền và các tính năng khôi phục lỗi. Nó bao gồm hầu hết tất cả các tính
năng cần thiết để hỗ trợ các ứng dụng hiện đại và do đó được sử dụng rộng rãi cung cấp một
giải pháp phần mềm dễ sử dụng và quản lý các hoạt động của database.
Oracle là một nhà lãnh đạo ngành công nghiệp trong cơ sở dữ liệu quan hệ. Nó giúp cho doanh
nghiệp giải quyết các vấn đề lưu trữ, cập nhật, thay đổi và quản lý dữ liệu. Các ứng dụng có
thể mua được với cơ sở dữ liệu ORACLE rất linh hoạt và mạnh mẽ và đáp ứng nhu cầu của
nhiều loại hình doanh nghiệp khác nhau. Nhưng bên cạnh đó Hệ quản trị cơ sở dữ liệu Oracle
có những khuyết điểm như : chi phí bản quuyền lớn, rào cản về công nghệ chưa có sự tương
tích, ngôn ngữ lập trình java khó khăn trong việc tiếp cận với các công cụ lập trình, thiết kế.
Sau khi tìm hiểu về hoạt động của hệ cơ sở dữ liệu Oracle, ta đã hiểu thêm vì sao Oracle có ưu
điểm đem lại như: tính ổn định, tính đáp ứng nhanh, tính bảo mật, tính đa nền tảng, cam kết hỗ
trợ từ hãng phần mềm. Nó bao gồm hầu hết tất cả các tính năng cần thiết để hỗ trợ các ứng
dụng hiện đại. Nhờ vậy, Oracle là giải pháp đúng đắn được các doanh nghiệp lựa chọn, cũng
như xứng đáng đạt top 1 DB-Engines 2019.
Thông qua bài báo cáo mong rằng nó đã cung cấp và chứng mình tính ưu việt của hoạt động
hệ cơ sở dữ liệu Oracle.
Khái niệm :
https://www.techopedia.com/definition/8711/oracle-database
https://hoclaptrinh.vn/tutorial/hoc-sql-server/cac-khai-niem-rdbms
Lịch sử :
https://docs.oracle.com/cd/E11882_01/server.112/e40540/intro.htm#CNCPT939
Ưu nhược điểm :
https://theninehertz.com/blog/advantages-of-using-oracle-
database#Major_Advantages_of_Oracle_Database
Các phiên bản:
https://docs.oracle.com/cd/B28359_01/license.111/b28287/editions.htm#DBLIC116
Cài đặt và cấu hình Orcale:
69
https://vinasupport.com/huong-dan-cai-dat-oracle-database-12c-tren-windows/
https://www.oracle.com/webfolder/technetwork/tutorials/obe/db/12c/r1/
Windows_DB_Install_OBE/Installing_Oracle_Db12c_Windows.html
Các thành phần cơ bản :
https://csc.edu.vn/lap-trinh-va-csdl/tin-tuc/kien-thuc-lap-trinh/hoc-oracle--kien-thuc-co-ban-
cho-nguoi-moi-bat-dau-802
Tạo và cấu hình CSDL:
https://www.youtube.com/watch?v=6ksJ5iDpUWw
Sao lưu và phục hồi database:
https://www.tranvanbinh.vn/2018/09/rman-backup-command.html
https://www.youtube.com/watch?v=6Ri0RV6Ck9s
Bảng :
https://www.tranvanbinh.vn/2020/02/tutorial-dba-co-ban-chuong-14-quan-ly.html
Khung nhìn :
https://freetuts.net/cac-lenh-quan-ly-view-trong-oracle-1412.html
Thủ tục :
https://freetuts.net/tim-hieu-procedure-trong-oracle-1432.html
Hàm :
https://freetuts.net/tim-hieu-function-trong-oracle-1433.html
Chỉ mục :
https://www.tranvanbinh.vn/2020/02/tutorial-dba-co-ban-chuong-15-quan-ly.html
Ràng buộc :
https://www.tranvanbinh.vn/2021/01/sql-constraints.html
Bẫy lỗi :
https://freetuts.net/tim-hieu-trigger-trong-oracle-1435.html
Tài khoản người dùng CSDL :
https://www.youtube.com/watch?v=iJj9YSzTbnM
Mô hình truy cập :
https://www.tranvanbinh.vn/2020/02/chuong-2-cac-thanh-phan-kien-truc.html
Cơ chế bảo mật:
https://www.youtube.com/watch?v=HkZdu-Tl9XM&t=526s
https://pnh.com.vn/nhung-giai-phap-bao-mat-oracle-ban-nen-biet/
Cơ chế xác thực :
https://docs.oracle.com/cd/B19306_01/network.102/b14266/authmeth.htm#BABCGGEB
https://www.youtube.com/watch?v=iJj9YSzTbnM
https://docs.oracle.com/cd/B19188_01/doc/B15917/sqcmd.htm
https://blog.cadena-it.com/database/tao-va-phan-quyen-user-trong-oracle-database/
Quyền truy xuất dữ liệu :
https://www.tranvanbinh.vn/2020/02/tutorial-dba-co-ban-chuong-19-cac-quyen.html
Quyền:
https://www.tranvanbinh.vn/2020/02/tutorial-dba-co-ban-chuong-19-cac-quyen.html
Vai trò :
https://www.tranvanbinh.vn/2020/06/hoc-oracle-db-tu-z-bai-20-quan-ly-chuc.html
71