Bảo mật truy xuất dữ liệu trên SQL Server

Một phần của tài liệu Thiết kế hệ thống quản lý thư viện (Trang 35 - 42)

D. CƠ SỞ DỮ LIỆU SQL SERVER 2000

3.Bảo mật truy xuất dữ liệu trên SQL Server

Khi xây dựng các ứng dụng Web-database, cần chú ý đến việc bảo mật, có 3 mức độ bảo mật tại 3 nơi gồm :

- Web Server (do IIS đảm nhiệm)

- Hệ điều hành (ở đây là Windows NT Server đảm nhiệm) - Truy xuất dữ liệu (do SQL Server đảm nhiệm)

Mức thứ nhất : Bảo mật trên Web server được kể đến là dịch vụ SSL (Secure Socket Layer) cung cấp cơ chế mã hoá dữ liệu truyền giữa server và client.

Múc thứ hai : Windows NT Server kiểm tra account và ngăn cấm các login không hợp lệ vào các domain không được phép.

Mức thứ ba : Là mức truy xuất dữ liệu trên các object của database. SQL Server có 3 chế độ bảo mật gồm :

a. Standard :

Là default mode, ở chế độ này SQL Server đảm trách toàn bộ việc quản lý các account của nó, SQL Server xác nhận một user và kiểm tra password/login trên tất cả connection đến SQL Server.

b. Windows NT Integrated :

Chế độ này sử dụng cơ chế kiểm tra của Windows NT server cho tất cả connection. Khi SQL Server chạy ở chế độ này, Windows NT sẽ quản lý tất cả user kết nối vào thông qua ACL (Access Control List) của nó. Tiện ích của chế độ bảo mật này là cho phép user sử dụng một password duy nhất để truy xuất tới tài nguyên trong domain và thời gian cũng như việc mã hoá password qua mạng. Như vậy, user không cần login lần thứ 2 khi truy xuất SQL Server. Một user login vào Windows NT server hoặc được gán connection hoặc bị từ chối kết nối đến SQL Server dựa trên

thuộc tính của account trên NT server. Việc gán các quyền truy cập vào SQL Server cho một login vào NT Server tạo ra một login uỷ quyền, connection thông qua login được uỷ quyền gọi là kết nối được uỷ thác (trusted connection). Khi một user thiết lập được một connection uỷ thác đến SQL Server, user có thể :

- Được gắn với một login của SQL Server hiện hành trên server nếu tên login được so trùng với account của user.

- Kết nối với login mặc định (thường là guest)

- Kết nối với login SA nếu user là Adminitrator trên NT server.

Hầu hết các thao tác gán quyền cho mỗi user như quyền truy xuất vào các bảng, view, hay các object khác của database đều được quản lý bằng SQL server giống như trong chế độ Standard.

c. Mixed :

Kết hợp cả hai chế độ Standard và Integrated. Khi một user kết nối đến SQL Server trong chế độ mixed, trước tiên NT sẽ kiểm tra xem login name đã có thiết lập một kết nối uỷ thác nào hay không. Nếu không tìm thấy kết nối uỷ thác nào thì sau đó SQL Server sẽ kiểm tra login name và password. Nếu cũng không nhận biết login được yêu cầu trên server, truy xuất bị từ chối.

4. Tạo và quản lý các user account :

SQL Server có 2 mức (level) của một user :

Mức thứ nhất của user là login. Một login được phép thiết lập một connection với SQL Server. Tất cả login được lưu trữ trong bảng SYSLOGINS (nằm trong database MASTER).

Mức thứ hai của user là user. Mức này SQL dùng để quản lý các quyền truy xuất tới các object của SQL Server như : table, view, stored procedure trong một database.

Một user có thể ở trong một hoặc nhiều database, nhưng một user phải có một login của database mà nó được quyền truy xuất. Tất cả user được lưu trữ trong bảng SYSUSERS của mỗi database mà các user có quyền truy xuất.

SQL tổ chức 2 mức user mục đích cho phép một user có nhiều mức độ truy xuất khác nhau trên các database mà user kết nối vào, và vẫn duy trì một password duy nhất. Để lmf được điều này, một user có một login đi kèm với một password. Khi

một login yêu cầu kết nối, SQL Server sẽ kiểm tra login này kèm với password. Khi không có một login hợp lệ, user không thể tru xuất vào bất cứ database nào trên SQL Server.

Khi tạo một login cũng như user của login đó ta có thể sử dụng tiện ích SQL Enterprise Manage hoặc sử dụng hàm hệ thống sp_addlogin và sp_adduser, khi sử dụng hàm này ta có thể tạo một login từ một connection có qyuền tương đương như SA. Điều này rất thuận lợi khi ta viết ứng dụng Web, từ ứng dụng Web ta có thể tạo, xoá, cũng như gán quyền cho các user.

Cú phám của sp_addlogin là :

sp_addlogin login_id[,password [,defaultdb [,defaultlanguage]]] trong đó :

- login_id là tên của login sẽ được tạo.

- password là mật khẩu được gán cho login sẽ tạo, thông số này là tuỳ chọn. - defaultdb là tên của database mà login sẽ được làm việc sau khi kết nối vào,

nếu để NULL thì SQL Server sẽ mặc định là MASTER database.

- defaultlanguage nếu để là NULL thì SQL Server sẽ lấy mặc định là default language của server (adsbygoogle = window.adsbygoogle || []).push({});

Cú pháp của sp_adduser là :

sp_adduser login_id[,username [,grpname]] Trong đó :

- login_id là tên của login sẽ được thêm vào database, nếu login chưa có thì tác vụ này không thành công.

- Username được cung cấp để cho phép login gắn với một database, điều này cho phép một login có thể kết nối vào nhiều database khác nhau, và với một database thì nó có một user.

- Grpname cho phép định nghĩa tên một nhóm mà user thuộc vào nhóm đó. Để loại bỏ một login hoặc user ta có thể sử dụng các hàm sp_droplogin hay

sp_dropuser với cú phápsp_droplogin login_id và sp_dropuser username.

Sử dụng GROUP để quản lý các user :

Một nhóm bao gồm các user có quyền giống nhau, thay vì ta phải gán quyền riêng cho từng user mỗi khi user đó được tạo, ta chỉ cần tạo nhóm và phân quyền cho nhóm đó, nếu có them một user mới, thì khi tạo sẽ gắn nó với nhóm đã phân quyền.

5. Gán quyền cho user và group :

Trong SQL Server có các đối tượng như : table, view (bảng ảo), stored procedure, mỗi một user hay group sẽ có quyền hạn khác nhau đối với từng object. SQL Server có các quyền hạn sau cho mỗi user :

- SELECT cho phép user có thể đọc dữ liệu từ table hoặc view. Quyền SELECT có thể được gán riêng cho từng cột trong table hoặc view.

- INSERT cho phép user thêm một dòng mới vào table hoặc view.

- UPDATE cho phép user thay đổi dữ liệu trong bảng hoặc view. Quyền UPDATE có thể được gán riêng cho từng cột.

- DELETE cho phép user xoá dữ liệu của table hoặc view. - EXECUTE cho phép user thi hành một stored procedure.

- DRI/REFERENCES (Declarative Referential Integrity - DRI) là một phương thức duy trì ràng buộc toàn ven database, khi được gán quyền này user có thể thêm vào bảng một khoá ngoại (foreign key). Một cách khác duy trì toàn vẹn dữ liệu là trigger.

- DLL/Data Definition Language cho phép user có thể tạo mới, thêm vào, hoặc xoá các object trong database. Ví dụ : CREATE TABLE, ALTER TABLE, DROP TABLE.

- ALL cho phép user có toàn quyền trên object. Chỉ có user SA mới có quyền ALL khi sử dụng các phát biểu DLL.

MÔ HÌNH THỰC THỂ CHỨC NĂNG

Đây là mô hình mô tả dữ liệu được lưu trữ trong cơ sở dữ liệu, biểu diễn mối quan hệ chặt chẽ và logic giữa các dữ liệu đó.

Từ quá trình phân tích ở trên, mô hình thực thể liên kết có thể được biểu diễn như sau:

( Một thư viện có nhiều sách, nhiều sách có cùng phân loại, môn loại, ngôn ngữ, nhà xuất bản. Một cuốn sách chỉ được viết một lần bởi một tác giả, một tác giả có thể viết nhiều sách. Một cuốn sách có duy nhất một vị trí để trong kho, một kho có nhiều vị trí. Một cuốn sách có thể được mượn trả nhiều lần. Một năm có nhiều độc giả đến làm thẻ đọc sách, mỗi độc giả, độc giả có thể có nhiều lần mượn trả sách. Một độc giả có thể có nhiều lần vi phạm kỷ luật, mỗi hồ sơ kỷ luật chỉ có một lý do kỷ luật và một hình thức kỷ luật.).

Trêng §¹i häc Kinh tÕ Quèc d©n Khoa c«ng nghÖ th«ng tin

  

B¸o c¸o thùc tËp

§Ò tµi:

thiÕt kÕ website qu¶n lý th viÖn tr- êng ®hktqd

§¬n vÞ thùc tËp:

C«ng ty cæ phÇn th¬ng m¹i vµ ph¸t triÓn c«ng nghÖ øng dông viÖt nam - adc

Gi¸o viªn híng dÉn: ths. lu minh tuÊn

Sinh viªn thùc hiÖn: nguyÔn tµi ba (adsbygoogle = window.adsbygoogle || []).push({});

Líp: cntt 46

Một phần của tài liệu Thiết kế hệ thống quản lý thư viện (Trang 35 - 42)