Trường Đại học Công nghiệp TP. HCM Khoa Công nghệ Thông tin
Discretionary Access Control
Giảng viên: Trần Thị Kim Chi
Discretionary Access Control
1. Giới thiệu Discretionary Access Control 2. Các loại quyền trong DAC 3. Ưu và nhược điểm của DAC 4. Các mô hình của DAC
Discretionary Access Control
Điều khiển truy cập tùy ý - Discretionary Access Control (DAC) chỉ rõ những đặc quyền mà mỗi chủ thể có thể có được trên các đối tượng và trên hệ thống (object prilvilege, system privilege)
Các yêu cầu truy nhập được kiểm tra, thông qua một cơ chế kiểm soát tùy ý, truy nhập được trao cho các chủ thể thỏa mãn các quy tắc cấp quyền của hệ thống.
Sức mạnh của DAC: Tính linh hoạt: là một lý do chính tại sao nó được biết đến rộng rãi và được thực hiện trong các hệ thống điều hành chủ đạo.
Người dùng có thể bảo vệ những gì thuộc về mình Chủ của dữ liệu có toàn quyền trên dữ liệu đó Chủ của dữ liệu có quyền định nghĩa các loại truy cập đọc/ghi/thực
thi và gán những quyền đó cho những người khác
Discretionary Access Control
DAC dựa vào định danh của người dùng có yêu cầu truy nhập
Cơ chế này được gọi là tùy ý có nghĩa là:
Cho phép chủ thể có thể cấp quyền cho chủ thể khác truy cập các
đối tượng của nó
Người sử dụng có khả năng cấp phát hoặc thu hồi quyền truy
nhập trên một số đối tượng.
vào các đối tượng dữ liệu (file, thư mục,…)
Việc phân quyền kiểm soát dựa vào quyền sở hữu (kiểu chính
sách cấp quyền dựa vào quyền sở hữu)
Discretionary Access Control
Discretionary Access Control
DAC cho phép đọc thông tin từ một đối tượng và chuyển đến một đối tượng khác (đối tượng này có thể được ghi bởi 1 chủ thể)
Tạo ra sơ hở để cho tấn công Trojan sao chép thông tin từ 1
Ví dụ: UserA là chủ sở hữu tableA, anh ta tạo ra khung nhìn ViewA từ bảng này (sao chép thông tin). UserA không cho phép UserB được đọc tableA nhưng lại vô tình gán quyền Write cho UserB trên ViewA.
Như vậy, UserB có thể đọc thông tin tableA dù không đủ
đối tượng đến 1 đối tượng khác
quyền trên bảng này.
Discretionary Access Control
khác
Người sở hữu dữ liệu có thể xác định kiểu truy xuất để cấp cho những
người khác (read, write, copy...)
Hệ thống cảnh báo hoặc giới hạn truy xuất của người dùng trong trường hợp yêu cầu truy xuất tới tài nguyên hoặc đối tượng không đáp ứng quá trình xác thực (thường là một số lần)
Một phần mềm tăng cường (add-on) hoặc bổ sung (plug-in) áp dụng cho
một máy khách để ngăn ngừa người dùng sao chép thông tin
Người dùng không có quyền truy xuất thông tin không thể xác định được
các đặc điểm của nó (kích thước, tên, đường dẫn của file...)
Việc truy xuất tới thông tin được xác định dựa trên quyền hợp pháp mô tả
trong danh sách kiểm soát truy xuất theo danh tính người dùng và nhóm
Một mô hình DAC thường một số đặc điểm sau đây: Người sở hữu dữ liệu có thể cấp quyền sở hữu thông tin cho những người
Discretionary Access Control
Cách thức cơ bản điều khiển truy cập của DAC trong một hệ CSDL là dựa vào 2 thao tác cơ bản: Gán quyền (granting privileges): Cho phép người dùng khác được quyền truy cập lên đối tượng do mình làm chủ. Tuy nhiên, trong DAC có thể lan truyền các quyền. Ví dụ: trong Oracle và SQL Server có GRANT OPTION,
Thu hồi quyền (revoking privileges): thu hồi lại quyền đã
ADMIN OPTION
gán cho người dùng khác Ví dụ: 1 user có GRANT OPTION, anh ta có thể thu hồi
quyền đã truyền cho người khác
Discretionary Access Control
Các qui tắc trao quyền Các yêu cầu và chính sách an toàn do tổ chức đưa ra, người trao quyền có nhiệm vụ chuyển các yêu cầu này thành các quy tắc trao quyền
Qui tắc trao quyền: biểu diễn đúng với môi trường phần
mềm/phần cứng bảo vệ.
Các loại quyền trong DAC
Quyền ở cấp tài khoản/hệ thống (account/system level): là những quyền độc lập với các đối tượng trong hệ CSDL. Những quyền này do người quản trị hệ thống định nghĩa và gán cho mỗi người dùng
Quyền ở cấp đối tượng(object level): là những quyền trên mỗi đối tượng trong hệ CSDL. Người dùng tạo ra đối tượng nào thì sẽ có tất cả các quyền trên đối tượng đó.
Các loại quyền trong DAC
Quyền ở cấp tài khoản/hệ thống: gồm có các quyền CREATE SCHEMA: tạo lược đồ CSDL CREATE TABLE: tạo bảng dữ liệu/ quan hệ (relation) CREATE VIEW: tạo view ALTER: chỉnh sửa các schema/relation DROP: xóa relation/view MODIFY: quyền thêm/ xóa/ sửa các hàng dữ liệu
SELECT: quyền thực hiện câu truy vấn thông tin trong
(record/ tuple)
CSDL
Các loại quyền trong DAC
Quyền ở cấp đối tượng: gồm các đối tượng dữ liệu và các
loại truy cập mà người dùng được phép thực hiện trên đối tượng đó. Các đối tượng dữ liệu này gồm: các relation hoặc view Các thao tác gồm:
INSERT: thêm dữ liệu vào relation UPDATE: cập nhật/chỉnh sửa dữ liệu trong relation DELETE: xóa dữ liệu trong relation REFERENCE: tham khảo đến dữ liệu trong relation
Một số hình an toàn tùy ý (DAC)
Mô hình ma trận truy nhập (Lampson 1971; Graham-
Denning 1973, Harrision 1976) Mô hình Take-Grant(Jones 1976) Mô hình Action-Entity(Bussolati 1983), Fugini-Martelle
Mô hình của Wood 1979 như kiến trúc ANSI/SpARC để cấp quyền trong các CSDL quan hệ lược đồ - nhiều mức,…
1984)
Trường Đại học Công nghiệp TP. HCM Khoa Công nghệ Thông tin
Nội Dung
Giới thiệu Access Control Matrix Model (ACM) Cấu trúc của ACM Qui tắc hoạt động của ACM Các giải pháp cài đặt mô hình ACM Ưu và nhược điểm của ACM Bài tập
11/09/2015
15
Giới Thiệu Access Control Matrix Model (ACM)
Mô hình được đề nghị bởi Lampson (1971), và được
Graham và Denning mở rộng (1972).
1976, Harrison và các cộng sự đã phát triển mô hình
ma trận truy cập một cách có hệ thống.
Access Control Matrix (ACM) là một công cụ cơ bản để thể hiện trạng thái bảo vệ hệ thống một cách chi tiết và chính xác
ACM là mô hình bảo mật được dùng cho cả cấp hệ
điều hành và cấp cơ sở dữ liệu.
Cấu trúc mô hình ACM
Ma trận điều khiển truy cập ACM là ma trận giữa các chủ thể S(subject), các đối tượng O(object) và các quyền tương ứng giữa của chủ thể với đối tượng.
Cấu trúc mô hình ACM
Trạng thái định quyền (Authorization state)
Q = (S, O, A)
S(Subjects): là tập các chủ thể - các thực thể chủ động (active entity) sử dụng các nguồn tài nguyên của hệ thống.
Ví dụ: người dùng, nhóm các người dùng (group),
quá trình (process), chương trình (programs)
Cấu trúc mô hình ACM
Trạng thái định quyền:
Q = (S, O, A)
O(Objects): là tập các đối tượng - các thực thể cần được bảo vệ, bao gồm các thực thể bị động (passive object) như tài nguyên hệ thống và các chủ thể
Ví dụ: ở cấp hệ điều hành: file, bộ nhớ, segments, quá trình ở cấp CSDL: CSDL, quan hệ, thuộc tính, hàng, trường dữ liệu của hàng
Cấu trúc mô hình ACM
Trạng thái định quyền Q = (S, O, A) A(Access matrix): là ma trận truy cập. Hàng: các chủ thể Cột: các đối tượng Mỗi ô A[s,o] chứa các
quyền truy cập mà chủ thể s được quyền làm trên đối tượng o.
Các quyền truy cập: thêm,
xóa, sửa, đọc, thực thi,…
Cấu trúc mô hình ACM
Ví dụ
O
File 1 File 2 File 3 Program 1
S
Lan Read Read
Minh Execute Read, Write
Tuấn Read Execute
Vương Execute Read Write
Qui tắc hoạt động của ACM
Ví dụ 1: Hệ thống có hai người dùng Bob và Alice xử lý ba
Các quyền truy xuất trên các file này có thể được mô tả như
file, lần lượt là Bill.doc, Edit.exe và Fun.com.
quyền truy xuất.
Bob và Alice chỉ có quyền thực thi file Edit.exe. Bob và Alice có quyền thực thi và quyền đọc file Fun.com nhưng chỉ
có Bob có quyền ghi lên file này
sau: Bob có quyền đọc hoặc ghi file Bill.doc trong khi Alice không có
O
Bill.doc
Edit.exe
Fun.com
S Alice
Execute
Execute, Read
Bob
Read, Write
Execute
Execute, Read, Write
Qui tắc hoạt động của ACM
Ví dụ 2: Xét một thiết bị tính toán đơn giản của một hệ điều hành nhỏ, trong đó chỉ có 2 chủ thể là tiến trình p và q và 2 tệp dữ liệu f và g. Các quyền có thể là đọc (Read), viết sửa (Write), gọi thực hiện (eXecute), ghi thêm (Append) và làm chủ (Own).
O
f
g
p
q
S
p
rwo
r
rwxo
w
q
o
ro
r
rwxo
Giải thích ma trận này
Tại A[p,f]= “rwo”, cho thấy tiến trình p là chủ sở hữu dữ liệu f đồng thời có
đủ quyền đọc và viết
f. A[p,q]=”w” cho thấy tiến trình p có thể gửi tin (viết) cho tiến trình q, còn
q có quyền nhận tin (đọc) từ p vì A[q,p] = “r”.
Mỗi tiến trình có đầy đủ quyền đối với chính mình (“rwxo”)
Qui tắc hoạt động của ACM
Các thao tác sửa đổi nội dung ma trận được phép thực hiện bao gồm: sao chép (copy), chuyển quyền (transfer), quyền sở hữu (owner)
Copy (R*): nếu A[i,j]=R* thì có thể sao chép quyền sang một phần tử A[k,j] khác nghĩa là mở rộng quyền truy xuất R trên cùng đối tượng O
Tranfer (R+): nếu A[i,j]=R+ thì có thể chuyển quyền của nó sang một phần tử A[k,j] khác nghĩa là chuyển quyền truy xuất R+ trên đối tượng O
Owner: nếu A[i,j]=o thì có thề thêm hay xóa các quyền truy xuất
trong bất kỳ phần tử nào trên cột j
Control: nếu A[i,j]=control thì có thể xóa bất kỳ quyền truy xuất
nào trong phần tử trên dòng j
Qui tắc hoạt động của ACM
Ví dụ
Subject
Qui tắc hoạt động của ACM
Ví dụ
Subject
Subject
Qui tắc hoạt động của ACM
Ví dụ
Subject
read+
Subject
read+
Qui tắc hoạt động của ACM
Ví dụ
Subject
Subject
Qui tắc hoạt động của ACM
Ví dụ
Subject
Subject
Qui tắc hoạt động của ACM
Bài tập:
O
File 1
File 2
File 3
Program 1
Tuấn
S
Lan
Read*
Read
Minh
Execute
Read
Tuấn
Execute Write
Read+ Write
Vương
Execute
Owner
Control
Read Write
Qui tắc hoạt động của ACM
Access Control Matrix for System Processes: p, q Files: f , g Rights (quyền): r , w, x, a, o
R = {read, write, execute, own, append}
O
File 1
File 2
Process 1
Process 2
S
Process 1
rwo
r
rwxo
w
Process 2
a
ro
r
rwxo
Qui tắc hoạt động của ACM
Access Control Matrix for Program
Procedures: inc_ctr , dec_ctr , manage Variable: counter Rights: +, - , x, Call
O
counter
inc_ctr
dec_ctr
manage
S
inc_ctr
+
dec_ctr
-
manage
Call
Call
Call
Qui tắc hoạt động của ACM
Access Control Matrix for Database: Access Control by Boolean Expression Evaluation
Sử dụng một ma trận kiểm soát truy cập để kiểm soát truy cập trong một
cơ sở dữ liệu
Value (giá trị) được xác định bởi các biểu thức Boolean Object (Đối tượng) là các record và field; Subject: các chủ thể được ủy quyền để người sử dụng truy cập vào cơ sở
dữ liệu
Các loại truy cập: Insert, Update, Delete, Select,… Rules: Các qui tắc truy xuất đối tượng. Mỗi quy tắc tương ứng với một
chức năng. Bất cứ khi nào một đối tượng cố gắng truy cập một đối tượng sử dụng quyền (verb) r, nếu biểu thức Boolean kết hợp với r là đúng thì được phép truy cập, ngược lại không được phép truy cập
Qui tắc hoạt động của ACM
Ví dụ 1: Access Control Matrix for Database Subject annie: attributes role (artist), groups (creative) Verb paint: default 0 (deny unless explicitly granted) Object picture: Rule is
paint: `artist' in subject.role and `creative' in subject.groups
and time.hour 0 and time.hour < 5
At 10AM, time condition not met; ACM is:
At 3AM, time condition met; ACM is:
… picture …
… picture …
…
…
paint
e i n n a
e i n n a
…
…
Qui tắc hoạt động của ACM
The Access Restriction Facility (ARF) định nghĩa các chủ thể như là các thuộc tính. Ví dụ: name, a level, a role, membership in groups, and access to programs
Ví dụ 2:
Qui tắc hoạt động của ACM
Access Control by Boolean Expression Evaluation
Verbs have a default rule “closed”: Truy cập bị từ chối (0) “open”: Truy cập được cấp (1)
Qui tắc hoạt động của ACM
Associated with each object is a set of verbs, and each
Access Control by Boolean Expression Evaluation
(object, verb) pair has an associated rule
Qui tắc hoạt động của ACM Access Control by Boolean Expression Evaluation
Qui tắc hoạt động của ACM
Access Control by Boolean Expression Evaluation
Qui tắc hoạt động của ACM
Name
Position
Age
Salary
Alice
Teacher
45
40K
Bob
Aide
20
20K
Thường dùng trong CSDL thống kê Trả lời các query trong một nhóm Ngăn chặn mối liên hệ giữa các
Cathy
Principal
37
60K
records
Dilbert
Teacher
50
50K
Kiểm soát truy vấn chồng chéo
Eve
Teacher
33
50K
Ngăn chặn kẻ tấn công để có thông tin riêng bằng cách sử dụng một tập các truy vấn
Tham số r (=2) được sử dụng để xác
1. sum_salary(position = teacher) 2. sum_salary(age > 40 & position =
teacher)
định một query có nên được trả lời hay không?
Access Controlled by History
Qui tắc hoạt động của ACM
Access Controlled by History
Name
Position
Age
Salary
Celia
Teacher
45
40K
Query 1:
Leonard
Teacher
50
50K
Matt
Teacher
33
50K
sum_salary(position = teacher) Answer: 140K
Name
Position Age Salary
Query 2:
Celia
Teacher
45
40K
sum_salary(age > 40 & position
Leonard
Teacher
50
50K
= teacher)
Should not be answered as
Matt’s salary can be deduced
Các giải pháp cài đặt ACM
Cài đặt trực tiếp một ma trận như ACM lại là không thể vì nó vừa quá lớn, tốn quá nhiều bộ nhớ, bộ nhớ đã được cấp phát nhưng không sử dụng => lãng phí
Các giải pháp để cài đặt ACM một cách khả thi:
Theo danh sách truy xuất(Access Control Lists-ACL) Theo khả năng(Capability Lists-CL) Access Control Triples-ACT Cách tiếp cận khác sử dụng các khái niệm riêng như Lock và
key.
Các giải pháp cài đặt ACM
Theo danh sách truy xuất(Access Control Lists-ACL):
Thực hiện phân rã theo cột gồm một đối tượng và nhiều chủ thể. Xác định những chủ thể nào có thể truy cập đến đối tượng này
Tạo nên đối tượng quản lý là các danh sách điều khiển truy nhập. Các ACL sẽ được gắn vào các đối tượng tài nguyên (object), cung cấp danh sách các người sử dụng và quyền có thể truy nhập đến đối tượng
Các giải pháp cài đặt ACM
Theo danh sách truy xuất(Access Control Lists-ACL):
ACL cụ thể sẽ phải đưa ra các câu trả lời và biện pháp cài
đặt chi tiết cho các vấn đề sau: Ai được phép cập nhật lên ACL của mỗi đối tượng tài
Những loại sửa đổi cập nhật nào là được phép? Nếu có những đặc quyền truy nhập (permission) có mâu thuẫn với nhau thì giải quyết như thế nào? Giải quyết cho thủ tục rút phép (revocation) ra sao ?
nguyên?
Các giải pháp cài đặt ACM
Ví dụ: Danh sách điều khiển truy xuất ACL:
O
Bill.doc
Edit.exe
Fun.com
S Alice
Execute
Execute, Read
Bob
Read, Write
Execute
Execute, Read, Write
ACL cho bill.doc là Bob: read, write ACL cho edit.exe là Bob: execute; Alice: execute
ACL cho fun.com là Bob: execute, read, write;
Alice: execute, read
Các giải pháp cài đặt ACM
chủ thể có thể truy cập đến những đối tượng nào.
Tạo nên các danh sách khả năng được gắn với các chủ thể (NSD), cung cấp danh sách các tài nguyên mà chủ thể có thể sử dụng với quyền truy nhập cụ thể tương ứng.
Theo khả năng (Capability Lists-CL): Thực hiện phân rã theo dòng gồm một chủ thể và nhiều đối tượng. Xác định
O
Bill.doc
Edit.exe
Fun.com
S Alice
Execute
Execute, Read
Read, Write
Execute, Read, Write
Bob Khả năng của Alice:
Khả năng của Bob:
Execute edit.exe: execute; fun.com: execute, read bill.doc: read, write; edit.exe: execute; fun.com: execute, read, write
Cách hiện thực mô hình ma trận truy cập
Các giải pháp cài đặt ACM
Access Control Triples-ACT :
ACT (Access Control Triples): tức là danh sách các bộ ba (chủ thể, đối tượng, quyền truy nhập) được lưu trong một cấu trúc bảng; nó chính là biểu diễn rút gọn của ma trận toàn thể bằng cách triệt tiêu toàn bộ các ô dữ liệu trống.
Các giải pháp cài đặt ACM
Access Control Triples-ACT :
Cách tiếp cận khác sử dụng các khái niệm riêng như Lock và key: các tài nguyên có cấu trúc điều khiển gọi là lock mà chủ thể nào muốn sử dụng thì phải có key tương ứng (cũng là một thông tin điều khiển). Cách tiếp cận này phối hợp cả hai kiểu sử dụng ACL (danh sách truy nhập) và CL (danh sách năng lực).
Các giải pháp cài đặt ACM
Ví dụ 1: Một ma trận nhỏ có thể được biểu diễn theo cả 3
Ba cách làm này đều cùng biểu diễn chung một trạng thái của một hệ thống truy nhập với hai chủ thể là Sam và Joe và hai đối tượng tài nguyên là File 1 và File 2
cách - dùng ACL, CL và ACT
Các giải pháp cài đặt ACM
Ví dụ 2:
Các giải pháp cài đặt ACM
Ví dụ 2:
Các giải pháp cài đặt ACM
Bài tập : Hệ thống có 3 người dùng: John: tạo ra file 1, 3 Alice: tạo ra file 2 Bob: tạo ra file 4 Một file có ba quyền là Đọc(R), Ghi(W), Thực thi(E) Các người dùng cấp quyền trên các file cho các người dùng
khác:
John cấp quyền đọc, ghi cho Bob trên file 1 và chỉ quyền đọc
trên file này cho Alice.
Alice cấp quyền đọc trên file 2 cho Bob. Bob cấp quyền đọc trên file 4 cho Alice Vẽ ma trận truy cập, danh sách khả năng, danh sách điều khiển
truy cập.
Các giải pháp cài đặt ACM
Bài tập:
Cho bảng dữ liệu. Vẽ ma trận truy cập, danh sách khả năng (CL), danh sách điều khiển truy cập (ACL) và ACT.
Bài tập: Access Control List (ACL)
Capability List
Matrix is stored by row Each user is associated with a capability list Indicating for each object the access that the user is allow
to exercise on the object
Ưu và Khuyết điểm của ACM
Ưu điểm:
Phân quyền rõ ràng Dễ dàng thực hiện Hệ thống linh hoạt
Khuyết điểm:
Trong thực tế, các ma trận kiểm soát truy xuất là một khái niệm trừu tượng và không thực sự phù hợp cho việc cài đặt trực tiếp nếu số lượng chủ thể và đối tượng lớn lãng phí bộ nhớ
Các tập này thay đổi thường xuyên khó kiểm soát
Bài tập ACM
Lập ACM cho các hệ thống sau: 1. Quản lý bệnh viện 2. Quản lý đăng ký học phần 3. Quản lý thư viện 4. Quản lý Website bán hàng trực tuyến 5. Quản lý đặt vé máy bay trực tuyến Chú ý mỗi hệ thống bạn phải đưa ra các nghiệp vụ chức năng và các chủ thể sử dụng hệ thống và các đối tượng có trong hệ thống của bạn
Một số hình an toàn tùy ý (DAC)
Mô hình ma trận truy nhập (Lampson 1971;
Mô hình Take-Grant(Jones 1976) Mô hình Action-Entity(Bussolati 1983), Fugini-
Graham-Denning 1973, Harrision 1976)
Mô hình của Wood 1979 như kiến trúc ANSI/SpARC để cấp quyền trong các CSDL quan hệ lược đồ - nhiều mức,…
Martelle 1984)
Mô hình Take-Grant(Jones 1976)
Johns và các cộng sự đề nghị mô hình Take-Grant năm 1976 Sử dụng các cấu trúc hình học để biểu diễn mối quan hệ về quyền giữa các chủ thể với đối tượng, giữa chủ thể với chủ thể và giữa đối tượng với đối tượng.
Có thể được xem là một dạng mở rộng của mô hình ma trận
truy cập
Mô hình Take-Grant(Jones 1976)
Trạng thái định quyền: G = (S, O, E)
S: tập các chủ thể (người dùng, quá trình, chương trình) O:tập các đối tượng bị động (file, bộ nhớ, CSDL, bảng, hàng,
V = S U O: tập các đỉnh, S ∩ O = Ф E: tập các cung được đánh nhãn
trường dữ liệu)
Mô hình Take-Grant(Jones 1976)
Thao tác Take và Grant take(d, s, x, y): chủ thể s lấy quyền d trên đối tượng/chủ thể y
từ đối tượng/chủ thể x
Mô hình Take-Grant(Jones 1976)
Thao tác Take và Grant grant(d, s, x, y): chủ thể s gán quyền d trên đối tượng/chủ
thể y cho đối tượng/chủ thể x
Mô hình Take-Grant(Jones 1976)
Các loại quyền truy cập: read, write, take, grant
read, write: không làm thay đổi trạng thái định quyền take, grant: làm thay đổi trạng thái định quyền
Các loại thao tác truyền quyền: take, grant, create, remove
take, grant: lấy và gán quyền create(s, x): chủ thể s tạo đối tượng/chủ thể x. Khi đó cung nối
giữa s và x sẽ được đánh nhãn p (possess: sở hữu)
removep(s, x): chủ thể s bị thu hồi quyền p trên đối tượng/chủ
thể x
Mô hình Take-Grant(Jones 1976)
Mô hình Take-Grant(Jones 1976)
Khuyết điểm của mô hìnhTake-Grant: Không có tính chọn lọc của các quyền quản lý: Tất cả các quyền của s đều có thể bị truyền đi nếu s sở hữu
quyền GRANT
Tất cả các quyền của o/s đều có thể bị lấy đi(truyền đi) nếu có
Không quản lý được sự lan truyền quyền Tính không cục bộ: nếu s có quyền GRANT trên o thì s có thể truyền bất kỳ quyền gì của mình cho o. Như vậy không kiểm soát được tập quyền có thể có trên o.
Khả năng lan truyền ngược của dòng di chuyển quyền
một quyền TAKE trên nó.
DAC trong các hệ QTCSDL thông dụng
1. Điều khiển dữ liệu với SQL 2. DAC và điều khiển dòng thông tin
Điều khiển dữ liệu với SQL
Hai câu lệnh cơ bản:
GRANT REVOKE
Dựa trên 3 đối tượng chính trong CSDL:
Người dùng Các đối tượng CSDL Các quyền: lấy dữ liệu (SELECT), chỉnh sửa (INSERT, UPDATE, DELETE), và tham khảo (REFERENCE)
DAC ở các HQT CSDL thương mại
Tất cà các HQT CSDL thương mại đều cài đặt DAC. Các mô hình cấp quyền theo cơ chế DAC hiện tại đều dựa
System R: do Griffiths và Wade phát triển vào năm 1976, là một trong những mô hình ra đời đầu tiên cho hệ quản trị CSDL quan hệ.
System R: dựa trên nguyên lý ủy quyền quản trị cho người sở
hữu
trên mô hình System R.
System R
Các đối tượng được quản lý trong mô hình là table và view Các phương thức truy cập (privilege) là select, insert, update,
Hỗ trợ làm việc trên group, không hỗ trợ role. Dùng câu lệnh GRANT để cấp quyền, có tùy chọn GRANT
delete, drop, index (chỉ cho table), alter (chỉ cho table).
OPTION
System R
Sự ủy quyền được thể hiện thông qua GRANT OPTION, nếu cấp quyền cho 1 user bằng câu lệnh có GRANT OPTION thì user đó ngoài việc có thể thực hiện quyền được cấp, còn có thể cấp quyền đó cho 1 user khác.
1 user chỉ có thể cấp quyền trên 1 quan hệ cho trước nếu user đó là người sở hữu quan hệ hoặc user đó được người khác cấp quyền với câu lệnh có tùy chọn là GRANT OPTION.
Điều khiển dữ liệu với SQL
GRANT: truyền những quyền trên các đối tượng dữ
liệu của mình cho những người dùng khác
GRANT
REVOKE: lấy lại (hủy bỏ) những quyền trên các đối tượng dữ liệu của mình từ những người dùng khác
REVOKE
ON
Điều khiển dữ liệu với SQL
Trong SQL, những quyền sau đây có thể được gán cho một quan hệ R SELECT: truy xuất/đọc dữ liệu trong R. MODIFY: chỉnh sửa dữ liệu trong R INSERT, UPDATE, DELETE INSERT và UPDATE có thể bị giới hạn trên một số
thuộc tính nào đó (thay vì nguyên cả hàng) REFERENCE: tham khảo đến R (khóa ngoại) REFERENCE cũng có thể bị giới hạn trên một số
thuộc tính nào đó
Câu lệnh GRANT
GRANT PrivilegeList ALL[ PRIVILEGES] ON Relation|View TO UserList | PUBLIC [WITH GRANT OPTION]
Câu lệnh GRANT – Ví dụ
A: GRANT select, insert ON NHANVIEN TO B WITH
A: GRANT select ON NHANVIEN TO C WITH
GRANT OPTION;
B: GRANT select, insert ON NHANVIEN TO C; C có quyền select (từ A và B) và quyền insert (từ B). C có thể cấp quyền select cho các user khác, nhưng C
GRANT OPTION;
không thể cấp quyền insert.
Câu lệnh GRANT
Với từng user, hệ thống ghi nhận lại : - A : tập hợp các quyền mà user sở hữu. - B: tập hợp các quyền mà user có thể ủy quyền cho người
khác.
Khi 1 user thi hành câu lệnh GRANT, hệ thống sẽ - Tìm phần giao của tập B với tập quyền trong câu lệnh - Nếu phần giao là rỗng, thì câu lệnh không được thi hành.
Câu lệnh GRANT- Ví dụ
A: GRANT select, insert ON NHANVIEN TO C WITH
A: GRANT select ON NHANVIEN TO B WITH
GRANT OPTION;
A: GRANT insert ON NHANVIEN TO B; C: GRANT update ON NHANVIEN TO D WITH
GRANT OPTION;
B: GRANT select, insert ON NHANVIEN TO D;
GRANT OPTION;
Câu lệnh GRANT- Ví dụ
•
- Câu lệnh nào được thực thi hoàn toàn? - Câu lệnh nào không được thực thi? - Câu lệnh nào thực thi một phần? TRẢ LỜI :
•
Trong ví dụ trên, hãy cho biết :
• Câu lệnh thứ 4 không thực thi vì C không có quyền
3 câu lệnh đầu tiên thực thi hoàn toàn vì A là người sở hữu table
• Câu lệnh thứ 5 thực thi một phần, B có quyền select,
update trên table.
insert nhưng B không có grant option cho quyền insert nên D chỉ nhận được quyền select.
Câu lệnh GRANT- Ví dụ
Bob: GRANT select, insert ON Employee TO Ann WITH GRANT OPTION; Bob: GRANT select ON Employee TO Jim WITH GRANT OPTION; Ann: GRANT select, insert ON Employee TO Jim; Jim has the select privilege (received from both Bob and
Jimcan grant to other users the select privilege (because it has received it with grant option); however, he cannot grant the insert privilege
Ann) and the insert privilege (received from Ann)
Câu lệnh GRANT- Ví dụ
Bob: GRANT select, insert ON Employee TO Jim WITH GRANT OPTION; Bob: GRANT select ON Employee TO Ann WITH GRANT OPTION; Bob: GRANT insert ON Employee TO Ann; Jim: GRANT update ON Employee TO Tim WITH GRANT OPTION; Ann: GRANT select, insert ON Employee TO Tim; The first three GRANT commands are fully executed (Bob is the owner of
the table)
The fourth command is not executed because Jim does not have executed,
the update privilege on the table
The fifth command is partially executed; Ann has the select andinsert but she does not have the grant option for the insert; so Tim only receives the select privilege
Câu lệnh GRANT- Ví dụ
Bob: GRANT select, insert ON Employee TO Jim WITH GRANT OPTION; Bob: GRANT select ON Employee TO Ann WITH GRANT OPTION; Bob: GRANT insert ON Employee TO Ann; Jim: GRANT update ON Employee TO Tim WITH GRANT OPTION; Ann: GRANT select, insert ON Employee TO Tim; The first three GRANT commands are fully executed (Bob is the owner of
the table)
The fourth command is not executed because Jim does not have executed,
the update privilege on the table
The fifth command is partially executed; Ann has the select andinsert but she does not have the grant option for the insert; so Tim only receives the select privilege
Câu lệnh GRANT
Nếu trong câu lệnh gán có GRANT OPTION, điều này có nghĩa là B được phép gán quyền D trên R cho những người dùng khác.
B lại gán quyền D trên R cho một người dùng khác là C và
Sự lan truyền quyền với GRANT Người dùng A là chủ của quan hệ R. Người dùng A có thể gán một quyền D trên R cho người dùng B với GRANT OPTION hoặc không.
Chủ của quan hệ R(người dùng A) có thể không biết về sự lan
cũng với GRANT OPTION
truyền của quyền D trên R cho những người dùng khác
Câu lệnh GRANT
Sự lan truyền quyền với GRANT Nếu người dùng A thu hồi lại quyền D đã gán cho người dùng B thì tất cả những quyền D lan truyền bắt đầu từ B phải bị hệ thống tự động thu hồi lại
Câu lệnh GRANT
Giới hạn sự lan truyền quyền Giới hạn sự lan truyền
quyền theo chiều ngang: A1 gán quyền D cho A2 Và muốn A2 chỉ có thể gán (trựctiếp) cho tối đa i= 2 người dùng khác
Câu lệnh GRANT
Câu lệnh REVOKE
REVOKE: lấy lại (hủy bỏ) những quyền trên các đối tượng
REVOKE dữ liệu của mình từ những người dùng khác REVOKE: lấy lại (hủy bỏ) những quyền trên các đối tượng dữ liệu của mình từ những người dùng khác • Câu lệnh này dùng để thu hồi quyền đã cấp • User chỉ có thể thu hồi quyền đã cấp
• User không thể chỉ thu hồi grant option
• Một người chỉ có thể bị thu hồi quyền truy xuất p khi tất cả những người cấp quyền p cho họ đều thu hồi quyền p lại A: GRANT select ON NHANVIEN TO C WITH A: GRANT select ON NHANVIEN TO B WITH GRANT OPTION; C: GRANT insert ON NHANVIEN TO D;
B: GRANT select ON NHANVIEN TO D;
C: REVOKE select ON NHANVIEN FROM D
Sau câu lệnh này thì D vẫn có quyền SELECT trên bảng NHANVIEN vì B vẫn chưa thu hồi quyền SELECT của D GRANT OPTION; A: GRANT select ON NHANVIEN TO C WITH A: GRANT select ON NHANVIEN TO B WITH GRANT OPTION; C: GRANT insert ON NHANVIEN TO D;
B: GRANT select ON NHANVIEN TO D;
C: REVOKE select ON NHANVIEN FROM D
Sau câu lệnh này thì D vẫn có quyền SELECT trên bảng NHANVIEN vì B vẫn chưa thu hồi quyền SELECT của D GRANT OPTION; Thu hồi đệ qui (recursive revocation): khi người dùng
A thu hồi quyền truy xuất trên bảng của một người B thì
tất cả các quyền mà B đã gán cho người khác đều bị thu
hồi Thu hồi quyền đệ qui sẽ phá vỡ quyền truy xuất mà đối Thực tế khi 1 user A thay đổi công việc hay vị trí thì chỉ muốn
lấy lại quyền truy xuất của A mà không muốn lấy lại các
quyền truy xuất mà A đã cấp tượng bị thu hồi quyền đã cấp Thu hồi quyền đệ qui trong System R dựa vào nhãn thời Một biến thể của cách tiếp cận này là không dực vào nhãn
thời gian, mục đích là để tránh thu hồi quyền dây truyền.
Khi đó, nếu C bị B thu hồi quyền và C lại có quyền tường gian mỗi lần cấp quyền truy xuất cho người dùng. đương do người khác cấp (mặc dù cấp sau đó) thì quyền mà
C cấp cho người khác vẫn được giữ. Thu hồi quyền không dây chuyền (Noncascading revoke):
Khi A thu hồi quyền truy xuất trên B thì tất cả các quyền
truy xuất mà B đã cấp cho chủ thể khác được thay bằng A
đã cấp cho những chủ thể này. A sẽ là người cấp các quyền mà B đã cấp sau khi nhận quyền
đó từ A có chỉ định WITH GRANT OPTION. Với những
quyền B đã được cấp bởi C#A, đến lượt B cấp cho người
khác thì B vẫn là người cấp các quyền này. Thu hồi quyền không dây chuyền (Noncascading revoke):
Chú ý:
Bởi vì B được cấp quyền truy xuất trên đối tượng từ nhiều
chủ thể (khác A) nếu không phải tất cả các quyền mà B cấp
đều thay bằng A cấp. Và A được xem là người cấp thay cho
B khi B sử dụng quyền A đã cấp cho mình cấp cho những
chủ thể khác. Thu hồi quyền không dây chuyền (Noncascading revoke):
Lưu ý rằng với quyền mà H cấp cho L, sau khi thu hồi quyền,
không được thay I như là người cấp vì quyền này được cấp
trước khi I cấp quyền cho H Thu hồi quyền không dây chuyền (Noncascading revoke):
Lưu ý rằng với quyền mà H cấp cho L, sau khi thu hồi quyền, không được thay I như là người cấp vì quyền này
được cấp trước khi I cấp quyền cho H View và sự phân quyền dựa trên nội dung
Trong các RDBMS, view là một cơ chế thuờng được dùng Dùng các vị từ (predicate) để giới hạn nội dung dữ liệu để hỗ trợ việc điều khiển truy cập trên nối dung Chỉ những bộ của quan hệ thỏa mãn vị từ được xem là các cần cấp quyền. đối tượng để cấp quyền liệu muốn cấp cho chủ thể S
Cấp cho S các quyền trên View RDBMS được thực hiện như sau:
Định nghĩa 1 view dùng các vị từ để chọn ra các dòng dữ những nhân viên có lương ít hơn 20000: CREATE VIEW V_NHANVIEN AS
SELECT * FROM NHANVIEN
WHERE LUONG <20000
GRANT Select ON V_NHANVIEN TO B; Ngữ nghĩa của view hay các quan hệ cơ sở dùng để tạo view
Quyền mà view define có trên các bảng cơ sở Quyền Alter và index không thể áp dụng cho view, nên View và sự phân quyền dựa trên nội dung
Người tạo view: view define
Quyền mà view define có trên view phụ thuộc vào: A: CREATE VIEW V1 (MANV, TONGTIEN)
AS SELECT MANV, LUONG+THUONG
FROM NHANVIEN WHERE CONGVIEC =‘Lap Trinh’
Thao tác update không được định nghĩa trên trường TONGTIEN
của View nên A sẽ không thể có quyền Update trên field này view definer không bao giờ có quyền này trên view Điều khiển truy cập tùy quyền bằng VIEW (quan hệ ảo)
Ví dụ 2: người dùng A là chủ của quan hệ R. A muốn gán
cho người dùng B quyền truy xuất trên R nhưng chỉ muốn
cho B xem một số thuộc tính nhất định. A có thể tạo
view V của R chỉ chứa những thuộc tính đó và sau đó gán
cho B quyền SELECT trên V Ví dụ :
Nhà quản trị CSDL (Database administrator -DBA) tạo 4 người dùng: A1, A2, A3, A4 quyền thao tác trên đó. Ví dụ:
A1 có thể tạo ra các quan hệ trong schema EXAMPLE.
A1 tạo ra 2 quan hệ EMPLOYEE và DEPARTMENT
A1 là chủ của 2 quan hệ EMPLOYEE và DEPARTMENT nên A1 có tất cả các quyền trên 2 quan hệ này Ví dụ:
A1 muốn gán cho A2 quyền INSERT và DELETE trên cả
hai quan hệ trên, nhưng không cho phép A2 có thể truyền
các quyền này cho những người dùng khác
GRANTINSERT, DELETE ON
EMPLOYEE, DEPARTMENT TO A2; Ví dụ:
A3 có thể gán quyền SELECT trên quan hệ EMPLOYEE cho A4: A4 không thể truyền quyền SELECT cho người dùng khác vì không có GRANT OPTION quan hệ EMPLOYEE của A3 Hệ quản trị CSDL (Database Management System – REVOKE SELECT ON EMPLOYEE FROM A3; DBMS) cũng phải tự động thu hồi lại quyền SELECT trên
quan hệ EMPLOYEE của A4. Bởi vì A3 gán cho A4
quyền này mà bây giờ A3 không còn quyền này nữa. Ví dụ 3:
Giả sử A1 muốn gán lại cho A3 quyền truy vấn có giới A3 chỉ có thể xem các thuộc tính NAME, BDATE và
ADDRESS của những hàng có giá trị DNO = 5. A1 tạo view A3EMPLOYEE như sau: hạn trên quan hệ EMPLOYEE và cho phép A3 lan truyền
quyền này. Ví dụ 3:
Sau khi tạo view, A1 có thể gán quyền SELECT trên view Sau cùng, A1 muốn cho phép A4 chỉ cập nhật thuộc tính A3 EMPLOYEE cho A3:
GRANT SELECT ON A3 EMPLOYEE TO A3
WITH GRANT OPTION; SALARY của quan hệ EMPLOYEE;
GRANT UPDATEON EMPLOYEE(SALARY) TO A4; Parsing
Catalog lookup
Authorization checking
View Composition Truy vấn trên view sẽ được chuyển thành truy vấn trên bảng cơ sở thông qua bước này Kết quả sẽ dựa trên vị trí của câu truy vấn và vị từ định nghĩa trên view B: Select * from V_NHANVIEN where CONGVIEC=‘Lap trinh’ Câu truy vấn sau bước view compositon: Select * from NHANVIEN where LUONG<2000 AND
CONGVIEC=‘Lap trinh’ Query optimization Nhận xét:
Vì việc kiểm tra quyền được thực hiện trước bước View compositon nên quyền được kiểm tra sẽ dựa trên View chứ không
dựa trên các bảng cơ sở dùng định nghĩa view View hữu ích khi cấp quyền trên các cột: chỉ cần tạo view gồm các cột mà ta muốn cấp quyền View còn hữu ích trong việc cấp quyền trên dữ liệu thống kê (dữ liệu sinh ra từ các hàm SUM, AVG,..) Chủ thể truy cập có thể cấp quyền truy cập hay thu hồi trên view tương tự như trên bảng dữ liệu Người dùng muốn tạo View thì phải có quyền Select trên bảng dữ liệu Nếu người tạo View bị thu hồi quyền (hay cấp quyền trên bảng) thì cũng bị thu hồi quyền (hay cấp quyền) trên view và thu hồi
những người dùng khác được người này cấp quyền Để xác định quyền mà view definer có trên view, hệ thống Tìm giao tập quyền mà view definer có trên quan hệ cơ sở tới tập quyền
tương ứng với các thao tác có thể thực hiện trên view Ví dụ: Xét quan hệ NHANVIEN và giả sử A là người tạo phải:
NHANVIEN; CREATE VIEW V2(MANV, LUONG, NAM) AS SELECT MANV, LUONG*12 FROM NHANVIEN; D có thể thực hiện tất cả các quyền trên V1 như là các quyền mà
D có trên quan hệ NHANVIEN đó là Select, Insert, Update Tuy nhiên, D chỉ có thể thực hiện trên V2 quyền Select và Update trên cột MANV nên quan hệ NHANVIEN
A: GRANT Select, Insert, Update ON NHANVIEN to D;
D: CREATE VIEW V1 AS SELECT MANV, LUONG FROM Hoàn toàn có thể cấp quyền trên View
Quyền mà user có thể cấp là những quyền mà user có with Ví dụ: user D không thể cấp bất cứ quyền gì trên view V1
và view V2 mà D đã định nghĩa vì D không được chỉ định
With Grant Option khi D cấp quyền grant option trên các quan hệ cơ sở Xét các câu lênh sau:
A: GRANT Select ON NHANVIEN TO D WITH GRANT OPTION; A: GRANT Update, Insert ON NHANVIEN TO D;
D: CREATE VIEW V4 AS Select Manv, luong FROM Quyền của D trên V4 sẽ là:
Select with GRANT OPTION; Update, Insert without GRANT OPTION; NHANVIEN; System R và hầu hết các HQT dùng chính sách đóng Với chính sách đóng, thiếu quyền truy xuất đồng nghĩa với việc không có quyền truy xuất Khi chủ thể truy xuất đến 1 đối tượng dữ liệu, hệ thống nhận quyền này từ chủ thể khác. Ví dụ: z không được quyền truy xuất trên đối tượng o, nhưng trường hợp hệ thống sử dụng chính sách phân chia quyền quản trị
thì chủ thể có quyền truy xuất trên o vô tình cấp quyền cho x. Người ta đã đưa ra quyền phủ định để giải quyết vấn đề ràng buộc này kiểm tra trong danh sách quyền mà chủ thể được truy xuất
, nếu không có thì truy xuất bị từ chối
Hạn chế: việc thiếu quyền truy xuất không ngăn cấm chủ thể sẽ Quyền khẳng định: danh sách quyền truy xuất được sử Quyền phủ định: danh sách quyền truy xuất không được sử dụng Tuy nhiên sử dụng quyền khẳng định và quyền phủ định dụng Thường người ta giải quyết xung đột bằng cách ưu tiên thì gây nên xung đột
Ví dụ: A có quyền WRITE trên bảng NHANVIEN. A không
được READ trên PHONGBAN, A không được WRITE trên
thuộc tính LUONG của NHANVIEN quyền phủ định Quyền khẳng định được thực hiện như là chặn quyền
Khi chủ thể bị gán quyền phủ định trên đối tượng thì Nếu sau này chủ thể được rút quyền phủ định thì họ có thể quyền khắng định trên đối tượng mà họ có trước đó bị
chặn lại Ưu điểm: Nếu vô tình gán quyền phủ định cho người dùng thì có thể thu hồi lại Có thể chặn quyền truy cập của chủ thể trong một thời gian bằng cách gán quyền phủ định và sau đó thu hồi lại. sử dụng lại quyền khẳng định của mình trước đó; Dùng câu lệnh REVOKE: Ta có thể thu hồi lại quyền khẳng định (quyền đã cấp dùng lệnh GRANT) Ta có thể thu hồi lại quyền phủ định (quyền đã cấm dùng câu lênh DENY) Câu lệnh REVOKE giống lênh DENY ở chỗ không cho Câu lênh REVOKE khác lệnh DENY ở chỗ REVOKE sẽ
thu lại quyền đã cấp, còn DENY sẽ cấm một chủ thể
(hay 1 vai trò) thực hiện 1 quyền gì đó trong tương lại. thực hiện điều gì đó Thực tế người dùng chỉ được phép truy cập dữ liệu trong Cần phải có 1 cơ chế hỗ trợ việc truy xuất trong khoảng thời gian cho trước.
Ví dụ: cơ chế chỉ cho phép những người làm việc bán thời gian
chỉ được phép truy cập dữ liệu vào khoảng từ 9am đến 1pm
ngày 1/1/2015 Trong hầu hết các HQT CSDK chính sách này thường triển khai ở chương trình ứng dụng
Hạn chế: khi xác nhận và thay đổi chính sách điều khiển truy cập, không đảm bảo rằng chính sách này thực thi Mô hình điều khiển truy cập dựa vào thời gian được đề xuất để giải quyết vấn đề này. một khoảng thời gian nhất định Thời gian hiệu lực: Mỗi quyền truy xuất đều có khoảng thời gian hiệu lực
Khi hết thời gian hiệu lực quyền truy xuất tự động bị thu hồi mà không cần người quản trị thu hồi Chu kỳ sử dụng quyền truy xuất: Quyền truy xuất theo chu kỳ có thể là quyền khẳng định hay
quyền phủ định. Nếu trong cùng một khoảng thời gian mà
người dùng vừa có quyền khẳng định vừa có quyền phủ định
trên cùng 1 đối tượng và cùng phương thức truy cập thì ưu tiên
cho quyền phủ định Cơ chế suy diễn dựa vào quy tắc suy diễn Quy tắc suy diễn biểu thị ràng buộc của các quyền truy xuất theo thời gian Qui tắc cho phép suy ra quyền truy xuất mới dựa vào sự tồn tại hay không tồn tại của quyền truy xuất khác trong khoảng thời
gian xác định Bằng cách sử dụng quy tắc suy diễn đã đáp ứng được yêu cầu bảo vệ dữ liệu một cách ngắn gọn và rõ ràng Ví dụ: Nếu 2 người cùng làm chung 1 dự án thì phải cùng quyền truy xuất trên các đối tượng Quyền truy xuất được định nghĩa là 1 bộ gồm 5 thuộc Trong đó: S(chủ thể), g (người gán), U(danh sách người dùng)
mM (phương thức truy cập)
oO (đối tượng)
pn {+, -}(quyền khẳng định, quyền phủ định) Ví dụ: (B,o1, read, +, C): C gán quyền cho B có thể reac đối tượng o1
(B, o1, write, -, C): C không cho phép B được gán quyền write
trên đối tượng o1 tính auth = (s,o,m,pn,g) Quyền truy xuất theo chu kỳ bộ ba ([begin, end], P, auth)
Trong đó: Begin là ngày bắt đầu
End là ngày kết thúc vá lớn hơn ngày bắt đầu P là biểu thức chu kỳ
Auth là quyền truy xuất Quyền truy xuất theo chu kỳ thể hiện quyền truy xuất có
hiệu lực torng chu kỳ P với ngày sử dụng quyền lớn hơn
hay bằng tb (ngày bắt đầu) và nhỏ hơn hay bằng te (ngày
kết thức)
Ví dụ 2: A1 ={1/1/15, ], Mondays, (A, o1, read, +, B)) quyền truy xuất này được B gán, thể hiện A có quyền read trên đối
tượng o1 vào các ngày thứ hai bắt đầu từ ngày 1/1/15 Khi sử dụng quyền phủ định thì có thể dẫn đến hiện Ví dụ: Giả sử có thêm quyền truy xuất A2=([1/1/16,], Working days, [A, o1, read, -, B)) được gán cùng quyền truy xuất A1
=([1/1/15, ]], Mondays, (A, o1, read, +, B)) Lúc này bắt đầu từ ngày 1/1/156 thì A vừa có quyền khẳng định
vừa có quyền phủ định trên cùng đối tượng o1 và cùng phương
thức read Hiện tượng xung đột được giải quyết bằng cách ưu tiên quyền phủ định Do đó trong khoảng thời gian [1/1/15, 31/12/15] thì A vẫn có quyền read trên đối tượng o1 vào ngày thứ 2, tuy nhiên từ ngày
1/1/16 thì A không được gán quyền read trên đối tượng na2uy
vào các ngày làm việc kể cả thứ 2 tượng xung đột Qui tắc suy diễn được định nghĩa là bộ ba ([begin, end], P, A Ngữ nghĩa của từng toán tử theo qui tắc suy diễn
([begin,end], P,A, WHWNEVER, A): quyền truy xuất A có hiệu lực vào thời gian t chu kỳ P và t[tb, te] khi A có hiệu lực Ví dụ: A1=([1/1/15,1/1/16], Workings days, (M,o1, read, B))
R1 =([1/1/15,],Summer time, (S,o1,read, +, B)) Khuyết điểm của DAC: cho phép dòng thông tin từ đối
tượng này truyền sang đối tượng khác bằng cách đọc
thông tin lên từ một đối tượng rồi ghi thông tin đó xuống
đối tượng khác Ví dụ: Bob không được phép xem file A, nên anh ta nhờ
Alice (đồng lõa với Bob) copy nội dùng của file A sang
file B (Bob có thể xem được file B) Giả sử các người dùng đều đáng tin cậy và không làm việc
như trên thì cũng có thể một Trojan Horses sẽ làm việc
sao chép thông tin từ đối tượng này sang đối tượng khác. Mô hình ít hạn chế nhất
Mọi đối tượng đều có một chủ sở hữu
Chủ sở hữu có toàn quyền điều khiển đối với đối tượng của họ Chủ sở hữu có thể cấp quyền đối với đối tượng của mình Được sử dụng trên các hệ điều hành như Microsoft
Windows và hầu hết các hệ điều hành UNIX Dễ dàng thực hiện, hệ thống linh hoạt
DAC linh động trong chính sách nên được hầu hết các cho một chủ thể khác HQT CSDL ứng dụng Phụ thuộc vào quyết định của người dùng để thiết lập Việc cấp quyền có thể không chính xác Khó quản lý việc gán / thu hồi quyền Quyền của chủ thể sẽ được “thừa kế” bởi các chương cấp độ bảo mật phù hợp Không thể thiếu được dòng thông tin (information
flow control) để có thể chống lại tấn công dạng Trojan
Horse Kiểm soát an toàn không tốt trình mà chủ thể thực thi
Dễ bị lộ thông tinCâu lệnh REVOKE
REVOKE PrivilegeList | ALL[PRIVILEGES]
ON Relation | View
FROM UserList | PUBLIC
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Câu lệnh REVOKE
Điều khiển truy cập bằng VIEW
Điều khiển truy cập bằng VIEW
View và sự phân quyền dựa trên nội dung
Việc điều khiển truy cập dựa trên nội dung trong các
Điều khiển truy cập bằng VIEW
View và sự phân quyền dựa trên nội dung
Ví dụ 1: giả sử ta muốn cấp quyền cho user B truy cập chỉ
Điều khiển truy cập bằng VIEW
Điều khiển truy cập bằng VIEW
Tương tự, nếu A muốn giới hạn B chỉ được xem một số
hàng trong quan hệ R thì A có thể tạo view V’ chỉ chứa
những hàng đó trong R và sau đó gán quyền truy xuất trên
V’ cho B
Điều khiển truy cập bằng VIEW
DBA gán cho A1 quyền tạo các quan hệ
GRANT CREATE TAB TO A1;
DBA tạo ra schema EXAMPLE và cho phép A1 các
CREATE SCHEMA EXAMPLE AUTHORIZATIONA1;
Điều khiển truy cập bằng VIEW
Điều khiển truy cập bằng VIEW
Và A1 muốn cho phép A3 truy vấn thông tin từ cả 2 quan
hệ, đồng thời có thể truyền quyền SELECT cho những
người dùng khác
GRANT SELECTON EMPLOYEE, DEPARTMENT
TO A3 WITH GRANT OPTION;
Điều khiển truy cập bằng VIEW
GRANT SELECT ON EMPLOYEE TO A4;
Điều khiển truy cập bằng VIEW
Ví dụ:
Sau đó, A1 quyết định thu hồi lại quyền SELECT trên
Điều khiển truy cập bằng VIEW
CREATE VIEW A3EMPLOYEEAS
SELECT NAME, BDATE, ADDRESS
FROM EMPLOYEE
WHERE DNO = 5;
Điều khiển truy cập bằng VIEW
Các bước xử lý truy vấn
Các bước xử lý truy vấn
Phân quyền trên View
Phân quyền trên View
Phân quyền trên View
DAC – Quyền khẳng định và Phủ định
DAC – Quyền khẳng định và Phủ định
DAC – Quyền khẳng định và Phủ định
DAC – Quyền khẳng định và Phủ định
Thu hồi quyền đã cấp hoặc cấp quyền đã cấm
DAC – Ràng buộc ngữ cảnh
DAC – Ràng buộc ngữ cảnh
DAC – Ràng buộc ngữ cảnh
DAC – Ràng buộc ngữ cảnh
DAC – Ràng buộc ngữ cảnh
DAC – Ràng buộc ngữ cảnh
DAC – Ràng buộc ngữ cảnh
Begin là ngày bắt đầu
End là ngày kết thúc
P là biểu thức chu kỳ
A là quyền truy xuất
A là biểu thức Bool của các quyền truy xuất
OP là một trong các toán tử WHENEVER, ASLONGAS, UPON
DAC và điều khiển dòng thông tin
DAC và điều khiển dòng thông tin
Ví dụ Trojan Horses:
DAC và điều khiển dòng thông tin
Ví dụ Trojan Horses:
DAC và điều khiển dòng thông tin
Ví dụ Trojan Horses:
Ưu điểm của điều khiển truy cập DAC
Nhược điểm của điều khiển truy cập DAC