1. Trang chủ
  2. » Công Nghệ Thông Tin

An toàn cơ sở dữ liệu, thực hành oracle 9i

30 379 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 886,81 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin

Trang 1

AN TOÀN CƠ SỞ DỮ LIỆU

THỰC HÀNH ORACLE 9i

Bài thực hành 1: cài đặt Oracle

- Cài đặt thành công Oracle 9i: chú ý chọn tùy chọn Custom, và chọn

tuỳ chọn Oracle Label Security trong khi cài đặt

- Tạo CSDL có tên là QLSV (SID = QLSV) bằng công cụ Database

Configuration Assistant

-

Trang 2

Bài thực hành 2: Quản lý an toàn trong Oracle 9i

- Users: quản trị các tài khoản người dùng

- Roles: sắp xếp các đặc quyền trong các nhóm Role.

- Profiles: quản lý tài nguyên CSDL, giới hạn tài nguyên mà người

dùng được sử dụng trong profile đó

Chú ý: Người dùng mặc định là SYSTEM/mật khẩu = MANAGER

Trang 3

- Khi tạo ra một user, hệ thống sẽ tạo ra một lược đồ - schema có tên

giống với tên của user đó

- User này phải được gán một tablespace

- Để anh ta có thể connect đến CSDL thì anh ta phải có:

+ Role: Connect (mặc định đã có) + System Prilvilege: SELECT ANY DICTIONARY + Quota: tương ứng với tablespace anh ta được gán phải là Unlimited

(hoặc thay bởi điều này, gán cho anh ta role RESOURCE)

(Chú ý: nếu Quota này không được gán Unlimited thì user vẫn

connect được CSDL nhưng ko được tạo bảng trong đó)

Ví dụ:

Trang 5

- Bước 2: disconnect khỏi CSDL và đăng nhập lại bằng các tài khoản

này

- Bước 3: Đăng nhập lại bằng tài khoản SYSTEM, tạo một user

giống với user1 là user11, sau đó có thể thêm/remove đặc quyền cho user này, khóa tài khoản này và đăng nhập lại vào CSDL xem sự thay đổi

1.2 Roles

Roles

„ Tạo một role

„ Tạo một role giống một role khác

„ Sửa đổi thuộc tính của một role

„ Thêm đặc quyền và role cho một role

„ Remove đặc quyền và role khỏi một role

- Bước 1: Tạo một role có tên là AT, sau đó gán các role, các đặc quyền

hệ thống (system Prilvilege), đặc quyền đối tượng (Object Prilvilege) cho role này

- Bước 2: vào tài khoản SYSTEM, gán quyền cho user2 thêm role AT

này Sau đó chuột phải vào role AT để xem những người dùng đã được gán role này

1.3 Profiles:

Profiles: quản lý tài nguyên

„ Tạo một profile (bao gồm cả chính sách cho mật khẩu và số lần đăng nhập fail để khóa tài khoản)

„ Tạo một profile giống một profile khác

„ Thay đổi thuộc tính của một profile

„ Chỉ ra các phụ thuộc của một profile

„ Gán một profile cho user

„ Xóa một profile

Trang 6

- Bước 1: Tạo một profile có tên là AT_Profile, gán các tài nguyên cho

profile này, khóa tài khoản của người dùng sau 3 lần đăng nhập sai

- Bước 2: đăng nhập bằng tài khoản SYSTEM, tạo tài khoản user4, sau

đó chọn profile không phải là DEFAULT mà là AT_Profile, sau đó thử đăng nhập bằng tài khoản user4 sai 3 lần xem tài khoản này có bị khóa hay ko?

Trang 7

Bài thực hành 3: Quản lý lưu trữ trong Oracle

„ Đường dẫn đến các file điều khiển

Tablespaces

Trang 8

„ Tập hợp logic các file dữ liệu, tablespace bao gồm các segment

„ System tablespace – bao gồm dữ liệu hệ thống mà CSDL cần để quản

lý dữ liệu (bao gồm từ điển dữ liệu)

„ Temp tablespace - temporary clipboard được sử dụng để quản lý các

giao tác như sắp xếp dữ liệu từ mệnh đề ORDER BY của một câu truy vấn

„ Tools tablespace – Lưu các đối tượng được sử dụng bởi các tools

tương tác với CSDL

„ User’s tablespace – Lưu các đối tượng của một user riêng.

„ Rollback tablespace – Lưu các rollback segments; rollback segments

được sử dụng bởi CSDL để phục hồi dữ liệu (ví dụ: một giao tác bị lỗi để phục hồi nhưng thay đổi chưa được hoàn tất)

„ Data and index tablespaces – Lưu dữ liệu ứng dụng

„ Chỉ ra các không gian đĩa, kích cỡ của chúng và số lượng không gian

đã sử dụng trong các tablespace này (tính theo MB)

Tablespaces: Một số hoạt động thực hiện trên tablespace

„ Tạo, sửa hay xóa một tablespace

„ Tạo tablespace dựa trên một tablespace khác (create like)

„ Thêm một datafile

„ Thêm một rollback segment

„ Đặt một tablespace ở trạng thái online hay offline

„ Tạo một table read-only hoặc có thể ghi

„ Thiết lập các tham biến lưu trữ cho mỗi đối tượng

Trang 9

Chú ý:

„ Khi tạo ra một tablespace (hay một profile) ta đều có thể dùng để gán cho user

„ Khi user được gán một tablespace, anh ta chỉ có thể tạo table,

view…trên tablespace của anh ta mà thôi!!!

- Bước 1: Tạo một tablespace tên là TableSpace_AT

- Bước 2: đăng nhập bằng tài khoản SYSTEM, tạo user5 và gán

tablespace cho anh ta là TableSpace_AT Sau đó đăng nhập bằng user5, kiểm tra xem tạo bảng và view trên các tablespace khác có được ko?

Trang 10

Bài thực hành 4: Tạo bảng, khóa chính, khóa ngoại

Giả sử có hai bảng Lớp và Sinh viên như sau:

Lop(MaLop, TenLop)

Sinhvien(MaSV, HoTen, Quequan, MaLop)

- Bước 1: Tạo hai bảng này với MaLop, MaSV là hai khóa chính của hai bảng,

MaLop trong bảng Sinhvien là khóa ngoại chỉ đến MaLop trong bảng Lop

- Bước 2: Nhập dữ liệu cho hai bảng này

- Bước 3: Tạo một khung nhìn cho 2 bảng này, bao gồm các thông tin sau –

MaSV, HoTen, Quequan, TenLop, với điều kiện sinh viên đó thuộc tỉnh Hà Nam

Trang 11

Bài thực hành 5: Thực hành chính sách

kiểm soát truy nhập MAC

1 Giới thiệu

Có thể nói sự thực thi của MAC trong các hệ quản trị là dựa và các nhãn - label,

dùng để gán cho các chủ thể và đối tượng của hệ thống Do đó, trong Oracle gọi

MAC là an toàn dựa vào nhãn - OLS (Oracle Label Security)

OLS trong Oracle cho phép bảo vệ dữ liệu của các bảng đến mức hàng - mức

bản ghi (row level)

Cài đặt OLS

Để cài đặt OLS, bạn phải lựa chọn tuỳ chọn Custom trong quá trình cài đặt

Oracle Đồng thời, khi create Database bạn phải chọn tuỳ chọn Oracle Label

Security

Bạn có thể thực thi OLS trong Oracle bằng công cụ Oracle Policy Manager Tại

đây, ta có thể tạo policy để áp dụng vào các bảng và các lược đồ Trong một Policy tạo ra, ta quan tâm đến 3 phần sau:

- Labels: là nhãn ta tạo ra để gán cho các bản ghi trong table, bao gồm:

+ Label components (Thành phần nhãn): bao gồm Level, Compartment và

Group

+ Data label: là nhãn dữ liệu tạo ra từ 3 thành phần nhãn trên

- Authorizations: là phần cấp quyền cho các user để cho phép họ truy nhập và

từng hàng dữ liệu như thế nào

- Protected Objects (Các đối tượng cần bảo vệ): đưa vào các bảng hay các

lược đồ cần bảo vệ

Bên cạnh đó, bạn có thể sử dụng thêm công cụ SQLPlus Worksheet để thực

hiện OLS bằng các câu lệnh SQL

Trang 12

Cần có 5 bước để thực thi OLS trong Oracle:

- Bước 1 (Tạo chính sách OLS): Chính sách này bao gồm các nhãn (label), quyền

người dùng (user authorization), đối tượng CSDL cần bảo vệ (protected database

Trang 13

- Bước 4 (Áp dụng chính sách an toàn trên cho các bảng hay các lược đồ): Sau

bước này, các bảng hay lược đồ đó sẽ được add thêm một cột chứa nhãn an toàn của từng hàng

- Bước 5 (Gán nhãn cho các user hay các ứng dụng): Bước này thực hiện gán

nhãn cho người dùng một cách phù hợp với từng người dùng

Sau đó OLS sẽ so sánh nhãn của một người dùng với nhãn dữ liệu gán cho từng hàng để đưa ra quyết định truy nhập Một người dùng chưa được gán nhãn sẽ không thể truy nhập vào bảng đó

2 Thực hành

Ví dụ: Ta có một bảng CSDL lưu thông tin về các nhân viên của một công ty

phần mềm như sau:

02 Lê Minh Hà Tây Kế hoạch Trưởng

04 Nguyễn Văn Hoàng Hà Nội Maketing Nhân viên Miền Nam 3000

05 Lê Thị Vân Hải

Phòng

Maketing Nhân viên Miền Bắc 1500

06 Nguyễn Văn Hải Hải

Lập trình Nhân viên Miền Nam 2000

08 Nguyễn Hoàng Yến Hải

Dương

Kế hoạch Nhân viên Miền Nam 1500

09 Lê Văn Giang Nghệ

An

Kế hoạch Nhân viên Miền Bắc 2000

10 Nguyễn Hồng Kiên Hà Tây Giám đốc Miền Nam 5000

Đặc tả bài toán:

- Tất cả các nhân viên có thể xem thông tin của các nhân viên của phòng mình

- Tất cả các trưởng phòng: có thể xem, sửa và thêm thông tin của phòng mình

- Giám đốc: có thể thực hiện tất cả các hoạt động đối với CSDL

2.1 Bước 1 (Tạo chính sách OLS):

Trang 14

Cách 1: ta khởi động công cụ Oracle Policy Manager Đăng nhập (có thể

bằng tài khoản SYSTEM/manager, chú ý chọn SYSDBA) và tiến hành tạo

Policy (chính sách) với tên là COMPANY và tên cột là Rowlabel để gắn vào bảng dữ liệu Hoặc có thể thực hiện bằng truy vấn SQL thông qua công cụ

SQLPlus Worksheet (có thể bằng tài khoản SYSTEM/manager, chú ý chọn

Trang 15

Tạo 3 level, tương ứng với 3 chức vụ: Giám đốc, trưởng phòng, nhân viên Level

có 3 phần : Short, Long và Numeric

Short Long Numeric

OFF OFFICER 7000 (nhân viên)

MGR MANAGER 8000 (trưởng phòng)

EXEC EXECUTIVE 9000 (giám đốc)

Ta thực hiện các câu lệnh SQL sau :

Trang 16

2.2.2 Compartment

Tạo ra 3 compartnent tương ứng với 3 phòng ban: KH, MK, LT

Short Long Numeric

Trang 17

MN Miền Nam 30 ALL

Ta tạo các Group bằng câu lệnh SQL như sau :

Trang 18

2.3 Bước 3 (Tạo các data label để sử dụng):

Từ các label component đã định nghĩa ở bước 2, tạo một tập các nhãn dựa vào chính sách an toàn phù hợp với ứng dụng của bạn, các nhãn dữ liệu này ta sẽ dùng

để gắn với các bản ghi trong bảng dữ liệu NHANSU

Một label là một sự kết hợp của các levels, compartment, và group Mọi label đều chứa duy nhất một level, và một hoặc nhiều compartment và/hoặc một hay nhiều group Các label gắn với các kiểu truy nhập khác nhau vào dữ liệu của những người dùng khác nhau Label là một sự kết hợp của các shortname của level với các compartment, các group theo cú pháp sau:

Labels= level : compartment_1, compartment_n : group, group_n

Nhãn an toàn có 2 trường chính là Labels và Tag Number

Chúng ta cần tạo ra các nhãn sau :

Trang 21

2.4 Bước 4 (Áp dụng chính sách an toàn trên cho các bảng):

Trước tiên ta cần tạo bảng NHANSU tương ứng với dữ liệu đầu vào:

02 Lê Minh Hà Tây Kế hoạch Trưởng

04 Nguyễn Văn Hoàng Hà Nội Maketing Nhân viên Miền Nam 3000

05 Lê Thị Vân Hải

Phòng

Maketing Nhân viên Miền Bắc 1500

06 Nguyễn Văn Hải Hải

Lập trình Nhân viên Miền Nam 2000

08 Nguyễn Hoàng Yến Hải

Dương

Kế hoạch Nhân viên Miền Nam 1500

09 Lê Văn Giang Nghệ

An

Kế hoạch Nhân viên Miền Bắc 2000

10 Nguyễn Hồng Kiên Hà Tây Giám đốc Miền Nam 5000

2.4.1 Tạo và thêm dữ liệu vào bảng TEST.NHANSU

- Giả sử ta tạo một người dùng là TEST/123 Sau đó, ta tạo bảng NHANSU trong

lược đồ TEST này, và thêm dữ liệu vào cho bảng đó

Trang 23

- Sau bước này, những user bình thường ko select được bảng nữa, chỉ có TEST (người tạo ra bảng), SYSTEM (admin) mới select được, nhưng ko có dữ liệu Do đó, ngay cả TEST ta cũng phải gán nhãn thì mới được quyền truy xuất

dữ liệu trong bảng NHANSU

Tiếp theo chúng ta thực hiện việc cập nhật các nhãn cho các hàng dữ liệu

Trang 24

2.4.3 Gán nhãn cho các hàng dữ liệu của bảng TEST.NHANSU

Cập nhật các nhãn bằng các câu lệnh SQL như sau :

- Gán nhãn cho các giám đốc:

UPDATE test.nhansu

SET ROWLABEL = char_to_label ('COMPANY', 'EXEC:KH,MK,LT:ALL') WHERE UPPER (CHUCVU) LIKE '%GIAM DOC%' AND UPPER(CHINHANH) LIKE '%ALL%';

UPDATE test.nhansu

SET ROWLABEL = char_to_label ('COMPANY', 'EXEC:KH,MK,LT:MB') WHERE UPPER (CHUCVU) LIKE '%GIAM DOC%' AND UPPER(CHINHANH) LIKE '%MIEN BAC%';

UPDATE test.nhansu

SET ROWLABEL = char_to_label ('COMPANY', 'EXEC:KH,MK,LT:MN') WHERE UPPER (CHUCVU) LIKE '%GIAM DOC%' AND UPPER(CHINHANH) LIKE '%MIEN NAM%';

- Gán nhãn cho các trưởng phòng:

UPDATE test.nhansu

SET ROWLABEL = char_to_label ('COMPANY', 'MGR:KH:MB') WHERE UPPER (CHUCVU) LIKE '%TRUONG PHONG%' AND UPPER(PHONG) LIKE '%KE HOACH%' AND UPPER(CHINHANH) LIKE '%MIEN BAC%';

Trang 25

SET ROWLABEL = char_to_label ('COMPANY', 'MGR:LT:MB') WHERE UPPER (CHUCVU) LIKE '%TRUONG PHONG%' AND UPPER(PHONG) LIKE '%LAP TRINH%' AND UPPER(CHINHANH) LIKE '%MIEN BAC%';

- Gán nhãn cho các nhân viên:

UPDATE test.nhansu

SET ROWLABEL = char_to_label ('COMPANY', 'OFF:LT:MB') WHERE UPPER (CHUCVU) LIKE '%NHAN VIEN%' AND UPPER(PHONG) LIKE '%LAP TRINH%' AND UPPER(CHINHANH) LIKE '%MIEN NAM%';

UPDATE test.nhansu

SET ROWLABEL = char_to_label ('COMPANY', 'OFF:KH:MB') WHERE UPPER (CHUCVU) LIKE '%NHAN VIEN%' AND UPPER(PHONG) LIKE '%KE HOACH%' AND UPPER(CHINHANH) LIKE '%MIEN BAC%';

UPDATE test.nhansu

SET ROWLABEL = char_to_label ('COMPANY', 'OFF:KH:MN') WHERE UPPER (CHUCVU) LIKE '%NHAN VIEN%' AND UPPER(PHONG) LIKE '%KE HOACH%' AND UPPER(CHINHANH) LIKE '%MIEN NAM%';

'%MAKETTING%' AND UPPER(CHINHANH) LIKE '%MIEN NAM%';

Tiếp theo ta thử tạo ra một số người dùng với chức danh và vị trí tương ứng

và cấp quyền cho họ để kiểm tra

Trang 26

2.5 Bước 5 (Gán nhãn cho các user hay các ứng dụng):

Bước này thực hiện gán nhãn phù hợp với từng người dùng

- Trước tiên chúng ta tạo một số người dùng (bằng công cụ Enterprise hoặc SQL) như: EXECUTIVE_MB, EXECUTIVE_MN MGR_KH_MB, MGR_KH_MN, OFF_KH_MB, OFF_KH_MN, OFF_MK_MN, OFF_LT_MN…

(Khi chưa gán nhãn cho những người dùng này thì họ sẽ không thể đọc được dữ liệu gì trong bảng TEST.NHANSU, thậm chí cả người dùng TEST)

- Tiến hành gán quyền DAC cho các user này vào table NHANSU như sau (Chú ý: chỉ có người dùng TEST mới được gán quyền này - người sở hữu bảng):

EXECUTIVE_MB: SELECT, UPDATE, INSERT, DELETE

EXECUTIVE_MN: SELECT, UPDATE, INSERT, DELETE

MGR_KH_MB: SELECT, UPDATE, INSERT

MGR_KH_MN: SELECT, UPDATE, INSERT

OFF_KH_MB: SELECT

OFF_KH_MN: SELECT

OFF_MK_MN: SELECT

OFF_LT_MN: SELECT

Trang 27

- Tiếp theo, tiến hành gán các gán các nhãn-label cho các user với chức vụ tương ứng để họ có thể truy nhập vào những bản ghi phù hợp như đặc tả của bài toán

Gán nhãn user

Ta gán nhãn tương ứng như sau: (chú ý người dùng TEST cũng cần được gán nhãn để có thể toàn quyền truy nhập vào bảng NHANSU):

EXECUTIVE_MB label= EXEC: KH, MK, LT: MB

EXECUTIVE_MN label= EXEC: KH, MK, LT: MN

MGR_KH_MB label = MGR: KH: MB

MGR_KH_MN label = MGR: KH: MN

OFF_KH_MB label = OFF: KH: MB

OFF_KH_MN label = OFF:KH:MN

OFF_LT_MN label = OFF: LT: MN

OFF_MK_MN label = OFF: MK: MN

Trang 30

Chú ý: khi giám đốc hay trưởng phòng insert một bản ghi vào bảng NHANSU

(sau khi đã được áp dụng chính sách COMPANY) thì họ phải insert vào nhãn cho bản ghi đó Tuy nhiên anh ta chỉ có thể insert các rowlabel tương ứng với các chức danh nhỏ hơn mình, đồng thời cần phải biết các nhãn tương ứng để insert một cách chính xác

Ngày đăng: 22/10/2014, 22:12

TỪ KHÓA LIÊN QUAN

w