(NB) Giáo trình Quản trị cơ sở dữ liệu cung cấp các nội dung chính được trình bày như sau: Giới thiệu lịch sử phát triển; các thành phần của SQL server; giới thiệu một số công cụ SQL server; phát biểu cơ bản T-SQL.
TRƯỜNG CAO ĐẲNG NGHỀ CÔNG NGHIỆP HÀ NỘI Chủ biên: Nguyễn Thị Nhung Đồng tác giả: Vũ Thị Kim Phượng GIÁO TRÌNH QUẢN TRỊ CƠ SỞ DỮ LIỆU (Lưu hành nội bộ) Hà Nội năm 2013 Tuyên bố quyền Giáo trình sử dụng làm tài liệu giảng dạy nội trường cao đẳng nghề Công nghiệp Hà Nội Trường Cao đẳng nghề Công nghiệp Hà Nội không sử dụng không cho phép cá nhân hay tổ chức sử dụng giáo trình với mục đích kinh doanh Mọi trích dẫn, sử dụng giáo trình với mục đích khác hay nơi khác phải đồng ý văn trường Cao đẳng nghề Công nghiệp Hà Nội CHƯƠNG I: GIỚI THIỆU LỊCH SỬ PHÁT TRIỂN I Giới thiệu chung lịch sử phát triển SQL Server 2000.Sự quan trọng cần thiết chúng lập trình ứng dụng Định nghĩa hệ quản trị sở liệu (HQTCSDL) HQTCSDL(Database management system) tập hợp phần mềm cho phép định nghĩa cấu trúc để lưu trữ thông tin máy, nhập liệu, thao tác liệu đảm bảo an toàn bí mật liệu Định nghĩa cấu trúc: Định nghĩa cấu trúc CSDL bao gồm việc xác định kiểu liệu, cấu trúc ràng buộc cho liệu lưu trữ CSDL Nhập liệu: Là việc lưu trữ liệu vào thiết bị lưu trữ trung gian điều khiển HQTCSDL Thao tác liệu: thao tác CSDL bao gồm chức truy xuất sở liệu để tìm kiếm thông tin cần thiết, cập nhật sở liệu tổng hợp báo cáo từ liệu Lịch sử phát triển Tháng năm 1970 Mô hình quan hệ cho liệu dùng ngân hàng liệu chia sẻ có khối lượng lớn tiến sĩ Edgar F.Codd, mơ hình chấp nhận rộng rãi mơ hình tiêu chuẩn dùng cho hệ thống quản lý sở liệu quan hệ Giữa năm 1970, nhóm nhà phát triển trung tâm nghiên cứu IBM San Jose phát triển hệ thống sở liệu “Hệ thống R” dựa mơ hình Codd viết tắt “SEQUEL” (Structured English Query Language – Ngôn ngữ truy vấn tiếng anh có cấu trúc) Sau này, tên viết tắt SEQUEL rút gọn thành SQL để tránh việc tranh chấp nhãn hiệu (từ SEQUEL công ty máy bay UK HawkerSiddeley đăng ký) Tuy SQL bị ảnh hưởng cơng trình tiến sĩ Codd khơng tiến sĩ Codd thiết kế mà lại Donald D.Chamberlin Raymond F Boyce IBM thiết kế Đến năm 1974 phiên CSDL phi thương mại, không hỗ trợ SQL đời Năm 1978, IBM tổ chức thử nghiệm chứng minh có ích tính thực tiễn hệ thống (điều chứng minh thành cơng IBM) Dựa vào kết IBM bắt đầu phát triển sản phẩm thương mại bổ sung thêm SQL dựa nguyên mẫu Hệ thống R bao gồm: + System/38: công bố năm 1978 thương mại hóa tháng 8/1979 + SQL/DS: giới thiệu vào năm 1981 + DB2: năm 1983 Đến năm 1979 Relational Software, Inc (bây Oracle Corporation) giới thiệu Oracle V2 (Phiên 2), phiên thương mại hỗ trợ SQL cho máy tính VAX (Chú ý:Trong Oracle tất chương trình người sử dụng phải sử dụng SQL để truy nhập vào liệu CSDL Oracle Các chương trình ứng dụng công cụ Oracle cho phép người sử dụng truy nhập tới CSDL mà không cần sử dụng trực tiếp SQL Nhưng ứng dụng chạy phải sử dụng SQL.) Năm 1986, SQL thừa nhận tiêu chuẩn ANSI (American National Standards Institute) năm 1987 SQL cơng nhận chuẩn ISO Có nhiều phiên khác SQL dùng cho hệ thống sở liệu SQL Server Microsoft dùng phiên Transact-SQL hay T-SQL Microsoft bắt đầu xây dựng SQL Server (một sản phẩm sở liệu sử dụng ngôn ngữ SQL) với Sybase để dùng cho OS/2 Khi Microsoft rời bỏ OS/2 để quan tâm đến hệ điều hành mạng hang, Windows NT Server, họ định tiếp tục phát triển Engine SQL Server dùng cho Windows NT Server Sản phẩm đạt Microsoft SQL 4.2, sau nâng cấp thành 4.21 Sau Microsoft Sybase tách riêng Microsoft phát triển SQL server 6.0, tiếp 6.5 Sau Microsoft cải tiến viết lại engine cho SQL Server 7.0 Cho nên nói từ version 6.5 lên 7.0 bước nhảy vọt Có số đặc tính SQL Server 7.0 khơng tương thích với version 6.5 Trong từ version 7.0 lên SQL Server 2000 cải tiến chủ yếu mở rộng tính Web làm cho SQL Server 2000 đáng tin cậy Và SQL Server 2000 phiên đánh dấu tầm quan trọng SQL Server Tiếp phiên SQL Server 2005 SQL Server 2008 Giới thiệu SQL Server 2000 Microsoft SQL Server 2000 hệ quản trị CSDL quan hệ (RDBMS), cung cấp cách tổ chức liệu cách lưu chúng vào bảng 3.1 Các phiên SQL Server 2000 SQL Server 2000 có phiên khác nhau, tùy thuộc vào yêu cầu thực thi cấu hình chế độ chạy thực SQL Server chia thành phiên sau: SQL Server 2000 Enterprise Edition: chứa đầy đủ đặc trưng SQL Server chạy tốt hệ thống lên đến 32 CPUs 64 GB RAM Thêm vào có dịch vụ giúp cho việc phân tích liệu hiệu (Analysis Services) SQL Server 2000 Standard Edition: Rất thích hợp cho cơng ty vừa nhỏ giá thành rẻ nhiều so với Enterprise Edition, lại bị giới hạn số chức cao cấp khác, edition chạy tốt hệ thống lên đến CPU GB RAM SQL Server 2000 Personal Edition:vđược tối ưu hóa để chạy PC nên cài đặt hầu hết phiên windows, kể Windows 98 SQL Server Developer Edition: Có đầy đủ tính Enterprise Edition chế tạo đặc biệt giới hạn số lượng người kết nối vào Server lúc Ðây edition mà bạn muốn học SQL Server cần có Edition cài Windows 2000 Professional hay Win NT Workstation SQL Server 2000 Desktop Engine: Ðây engine chạy desktop user interface (giao diện) Thích hợp cho việc triển khai ứng dụng máy client Kích thước sở liệu bị giới hạn khoảng GB SQL Server 2000 Windows CE Edition: Dùng cho ứng dụng chạy Windows CE Trong tất phiên trên, SQL Server 2000 Enterprise Edition ứng dụng rộng rãi hỗ trợ đầy đủ mạnh mẽ khả đáp ứng độ tin cậy 3.2 Tìm hiểu đặc trưng SQL Server 2000 SQL Server 2000 bao gồm số đặc trưng tạo nên Hệ quản trị CSDL đáp ứng yêu cầu cao thực thi CSDL Dễ cài đặt (Easy Installation): SQL Server cung cấp công cụ quản trị phát triển người sử dụng dễ dàng cài đặt, sử dụng quản lý hệ thống Tích hợp với Internet (Integration with Internet): SQL Server 2000 database engine hỗ trợ XML Nó tối ưu để chạy môi trường sở liệu lớn (Very Large Database Environment) lên đến Tera-Byte phục vụ lúc cho hàng ngàn user Mô hình lập trình (programming model) SQL Server 2000 tích hợp với kiến trúc Windows DNA trợ giúp cho phát triển ứng dụng Web Nó hỗ trợ số đặc tính khác English Query để người phát triển hệ thống truy vấn liệu thân thiện Và Microsoft Search Services cung cấp khả tìm kiếm mạnh, đặc biệt thích hợp cho phát triển ứng dụng Web Hỗ trợ kiến trúc Client/Server(Supports Client/Server model): Ứng dụng chạy Client, truy cập liệu lưu trữ Server Server có nhiệm vụ xử lý yêu cầu trả lại kết cho Client Tương thích với nhiều hệ điều hành (Operating System Compatibility): Có thể cài đặt hầu hết hệ điều hành Microsoft (danh sách chi tiết kèm theo) Chú ý cài đặt Windows NT Server 4, bạn phải chạy thêm Service Pack 5(SP5) Mềm dẻo khả dễ dùng: Đây phiên sở liệu làm việc nhiều hệ thống khác từ máy tính xách tay cài đặt hệ điều hành Windows 98 đến máy tính server cài đặt phiên Windows 2000 Data Center Thích hợp với nhiều giao thức: SQL Server 2000 hỗ trợ hầu hết giao thức thông dụng AppleTalk, TCP/IP Hỗ trợ việc nhân liệu (Data Replication Support): tức có hai hay nhiều CSDL đồng để thay đổi cập nhật vào khác Tìm kiếm (Full-Text): tìm kiếm Full-Text cho phép tìm kiếm theo kí tự Nó tìm kiếm theo từ hồn chỉnh hay cụm từ Indexing wizard tạo index bảng định Wizard tìm thấy Enterprise Manager Nó chứa tất liệu cần thiết để tìm kiếm từ/cụm từ Sách hướng dẫn trực tuyến (Books Online): books online thành phần thêm vào, tốn khơng gian server Trợ giúp dạng sách giúp cho việc tìm kiếm theo chủ đề dễ dàng Kho liệu (Data Warehousing): SQL server cung cấp vài công cụ để xây dựng kho liệu Sử dụng DTS designer, bạn định nghĩa bước thực hiện, luồng công việc chuyển đổi liệu để xây dựng kho liệu từ nhiều nguồn liệu khác SqL server cung cấp nhiều công cụ để phân tích liệu dựa câu hỏi tiếng anh Dữ liệu đươc lấy phân tích dùng q trình phân tích liệu trực tuyến Cài đặt SQL Server 2000 Trước cài đặt, bạn phải đảm bảo yêu cầu phần mềm phần cứng đáp ứng Yêu cầu cấu hình phần cứng để cài đặt SQL Server 2000 Thành phần phần cứng Yêu cầu Bộ vi xử lý Intel compatible 32bit CPU(166MHZ cao hơn) Dung lượng đĩa Cài đặt tối thiểu 95MB, cài đặt đầy đủ 270MB Card mạng Cần thiết máy trạm cần kết nối tới máy chủ RAM 128 MB CD-ROM Cần thiết để cài đặt từ CD Yêu cầu phần mềm cài đặt SQL Server 2000 + Windows 98, Windows NT Server 4.0 với Server Pack phiên sau, Windows NT + Workstation 4.0 với Server Pack phiên sau windows 2000 + Internet Explorer 5.0 phiên sau Lợi ích việc sử dụng HQTCSDL - Hạn chế dư thừa liệu - Ngăn cản truy cập liệu bất hợp pháp (bảo mật phân quyền sử dụng) - Cung cấp khả lưu trữ lâu dài cho đối tượng cấu trúc liệu - Cho phép suy dẫn liệu (từ liệu suy liệu khác) sử dụng Rules - Cung cấp giao diện đa người dùng - Cho phép biểu diễn mối quan hệ phức tạp liệu - Đảm bảo ràng buộc toàn vẹn liệu (Enforcing Integrity Constraints) - Cung cấp thủ tục lưu phục hồi (backup recovery) Kết luận: SQL Server 2000 hệ thống quản lý CSDL quan hệ với nhiều tính cho phép bạn cấu hình hệ thống thỏa mãn nhu cầu giao dịch bạn dù cơng ty có quy mơ nhỏ hay lớn giao dịch thương mại điện tử II Các kiểu liệu SQL Server Kiểu liệu dùng để xác định kiểu thông tin (số, ký tự…) cần không gian để chứa thông tin cột Bạn phải chọn kiểu liệu cách cẩn thận, chúng khơng dễ dàng thay đổi bảng tạo xong nhập liệu Một số kiểu liệu có chiều dài thay đổi, số khác có chiều dài cố định Cho phép Null: Tính chất cho phép Null (Nullability) cột có nghĩa khơng bắt buộc phải nhập liệu cho cột Nếu bạn muốn cho phép cột rỗng, cần đặc tả NULL Nếu bạn muốn hàng phải nhập liệu cho đó, xác định NOT NULL Nếu bạn không xác định NULL hay NOT NULL, giá trị mặc định cho sở liệu dùng (Khi cài SQL Server, mặc định hệ thống NOT NULL – Nhưng mặc định sửa đổi được) 2.1 Số nguyên (Integers) Có số kiểu liệu số nguyên: int, smallint, tinyint, bigint dùng để lưu trữ giá trị vơ hướng, xác Sự khác kiểu liệu số nguyên kích thước khơng gian lưu trữ mà chúng u cầu phạm vi giá trị chúng lưu trữ Bigint: Là kiểu liệu Integer byte có miền giá trị tử - 263 đến 263 – Int: Là kiểu liệu Integer byte có miền từ - 231 đến 231 – Smallint: Là kiểu liệu Integer byte có miền từ - 215 đến 215 – Tinyint: Là kiểu liệu Integer byte có miền giá trị từ đến 255 Bit: Dữ liệu nguyên có giá trị hoặc NULL Ví dụ: số khai báo mẫu: EmployeeAge tinyint NULL EmployeeID smallint NOT NULL CustomerID int NOT NULL Chú ý: Lưu trữ, truy tìm phép tốn thực kiểu liệu số ngun ln tốt kiểu liệu khác Hãy dùng kiểu liệu số nguyên 2.2 Kiểu chuỗi ký tự khơng hỗ trợ Unicode (Character Strings) Chuỗi chứa liệu ký tự bao gồm: chữ cái, số ký hiệu Bạn lưu trữ ký tự với chiều dài cố định chiều dài thay đổi dùng từ khóa char(n) hay varchar(n) Char(n): Kiểu liệu ký tự có chiều dài n ký tự khơng theo mã Unicode, có khả lưu trữ tối đa 8000 ký tự Khi tạo trường có chiều dài cố định, đặc tả trường chứa n byte thông tin + Nếu liệu nhập vào n byte, đệm vào khoảng trắng cho ln chiếm n byte + Nếu cố nhập nhiều n byte liệu bị cắt bỏ Ví dụ: Bảng 2.1 số ví dụ việc nhập liệu vào trường khai báo Fname char(8) (ký hiệu * biểu thị khoảng trắng ví dụ Dữ liệu nhập Trường Fname chứa Lawrence Lawrence Mark Anthony Mark Ant Peter Peter*** Bảng 2.1 Các trường ký tự có chiều dài cố định Varchar: Kiểu liệu ký tự có độ dài thay đổi khơng theo mã Unicode, có khả lưu trữ tối đa 8000 characters Khi sử dụng trường có chiều dài thay đổi, phải đặc tả chiều dại cực đại mà trường chứa Trường có chiều dài thay đổi không đệm khoảng trắng Điều làm cho sở liệu bạn hiệu nhớ, gặp khó khăn việc thực thi Khi trường khai báo có chiều dài biến đổi, SQL Server phải xác định nơi trường phải dừng lại bắt đầu trường Sẽ có số byte “phụ phí” để hỗ trợ cho kiểu liệu chuỗi có chiều dài thay đổi Varchar hữu ích trường hợp liệu có chiều dài khác nhiều, cho phép giá trị NULL trường bạn Khi gõ liệu kiểu ký tự vào SQL Server, nên bao liệu cặp dấu nháy đơn (hoặc dấu nháy kép) Dấu nháy đơn ưa dùng không sợ nhầm lẫn chuỗi định danh SQL Server Để gõ giá trị NULL vào trường SQL Server dùng từ khóa NULL khơng có dấu nháy 2.3 Kiểu chuỗi ký tự có hỗ trợ Unicode (Unicode Character Strings) Nchar: Kiểu liệu ký tự có độ dài xác định n ký tự theo mã Unicode, có khả lưu trữ tối đa 4000 ký tự Nvarchar: Kiểu liệu ký tự có độ dài thay đổi với n ký tự theo mã Unicode, có khả lưu trữ tối đa 4000 ký tự 2.4 Dữ liệu nhị phân (Binary Data) Kiểu liệu nhị phân dùng để lưu trữ liệu nhị phân Dữ liệu nhị phân lưu trữ chuỗi số 1, biểu thị nhập xuất cặp số thập lục phân Các cặp số thập lục phân bao gồm ký số từ đến ký tự từ A đến F Ví dụ: Tạo trường SomeData kiểu binary(20) có 20 byte liệu Cũng với kiểu chuỗi xác định tối đa 8000 byte cho hai kiểu liệu binary(n) varbinary(n) Để nhập liệu vào kiểu liệu nhị phân, phải đặt trước liệu chuỗi 0x Ví dụ để nhập giá trị 10 vào trường binary phải gõ: 0×10 Ví dụ: MyIcons varbinary (255), MyCursors binary (200) 2.5.Kiểu liệu số gần (Approximate Numerics) Các kiểu liệu số gần float(n) real Các số lưu kiểu liệu bao gồm hai phần: phần định trị phần số mũ Giải thuật dùng để tạo hai phần thực khơng thể xác (Nói cách khác bạn khơng thể nhận lại xác mà bạn nhập vào float (n): Dữ liệu số động có phạm vi từ -1.79E + 308 đến 1.79E + 308 Kích thước lưu từ đến byte Độ xác cho phép số dấu phảy động lên đến 38 chữ số Nếu không định trước giá trị cho theo mặc định số float có độ xác 15 chữ số Khi lưu xong phần liệu chép tiếp phần transaction log Khi có yêu cầu khôi phục (restore) CSDL , CSDL khôi phục trước, chép lại toàn CSDL lưu CSDL Sau SQL Server khơi phục tiếp phần transaction log Trước tiên roll forward đọc đến liệu thứ ba thấy liệu thay đổi roll back ( trả liệu ban đầu chưa thực giao dịch) để quán liệu Các phương pháp khôi phục liệu Loại lưu liệu thực ảnh hưởng đến cách khôi phục + Khôi phục từ lưu đầy đủ:khôi phục từ lưu đầy đủ q trình đơn giản: bạn việc khơi phục tập tin lưu Enterprise T-SQL + Khôi phục từ lưu thay đổi: Để khôi phục từ lưu thay đổi, trước hết bạn phải khôi phục từ lưu đầy đủ, sau khơi phục tất lưu thay đổi tạo từ lần lưu đầy đủ gần Nên nhớ lưu thay đổi dùng để lưu liệu thay đổi từ lần lưu đầy đủ gần lưu thay đổi gần Phải dùng tùy chọn NORECOVERY bạn thực khôi phục từ lưu đầy đủ gần Nếu bạn khôi phục từ tập tin log giao dịch tiếp tục từ lưu thay đổi, bạn phải lưu tập tin log thời áp dụng tất tập tin log thay đổi + Khôi phục từ lưu tập tin log giao dịch Để thực phụ hồi CSDL đưa trạng thái trước bị hư hỏng, trước hết bạn phải khôi phục tập tin liệu từ lưu đầy đủ sau khơi phục từ lưu thay đổi từ lần lưu đầy đủ Bạn lưu thay đổi cách khôi phục tất lưu tập tin log giao dịch xảy từ trước hư hỏng hệ thống Để đảm bảo bạn không bị giao dịch bạn khôi phục tập tin log, bạn phải lưu log thời Nếu bạn quên lưu log thời, bạn thay đổi ghi log hoạt động khôi phục ghi đè tập tin log giao dịch Để sử dụng tập tin log giao dịch khôi phục CSDL trạng thái trước xảy hư hỏng, thực bước sau: Sao lưu tập tin log giao dịch hoạt dộng, sử dụng tùy chọn NO_TRUNCATE Khôi phục lưu đầy đủ Khôi phục từ lưu thay đổi để đưa CSDL trạng thái mà lưu thực Khôi phục tất tập tin log giao dịch từ lưu thay đổi để thực lại giao dịch xảy từ lần lưu gần Khôi phục lưu log giao dịch thực bước để đưa CSDL trạng thái trước xảy hư hỏng Thực khơi phục liệu Bạn khôi phục liệu cách sử dụng Enterprise Manager R-SQL, phương pháp cho kết Dùng Enterprise Manager Để khôi phục liệu Enterprise Manager bạn thực bước sau: Khôi phục Full database backup EM Thực bước sau: Kích vào server group, kích vào server chứa Database muốn backup Kích Databases, kích phải chuột vào database, trỏ chuột vào All Tasks, sau kích Restore Database Hình 9.8 Cửa sổ Restore database Trong Restore as database box, soạn thảo chọn tên database muốn thay đổi tên Database mặc định không Kích Database Trong danh sách First backup to restore, kích vào lưu muốn phục hồi(vì có nhiều Backup) Trong danh sách Restore, kích vào database muốn phục hồi Mơ tả q trình thực hiện: Khơi phục lại database backup trả trạng thái CSDL lệnh backup thực thi SQL Server tạo lại CSDL theo bước sau: o Chép tất liệu vào CSDL khôi phục o Bất kỳ giao dịch khơng hồn thành database backup roll back để bảo đảm tính quán liệu Quá trình bảo đảm CSDL sau khơi phục CSDL thực lưu, trừ giao dịch khơng hồn thành roll back Điều đảm bảo tính tồn vẹn liệu Ngồi ra, để tránh việc cố tình viết đè lên CSDL tồn tại, q trình khơi phục thực kiểm tra an tồn cách tự động Q trình khôi phục không thực nếu: - Tên CSDL khôi phục tồn server tên CSDL cần khôi phục không tương ứng với tên CSDL ghi backup set - Tên CSDL khôi phục tồn server liệu bên không giống với liệu database backup Ví dụ: CSDL khơi phục có tên với CSDL có SQL Server liệu khác ví dụ có bảng liệu khác - Một nhiều file yêu cầu tạo tự động thao tác khôi phục (khơng để ý đến CSDL tồn hay chưa) file có tên với CSDL tồn Tuy nhiên việc kiểm tra an toàn khơng có tác dụng có mục đích viết đè Khôi phục transaction log backup EM Thực tương tự cách Khôi phục Full database backup Tuy nhiên, ta xác định thời điểm muốn khơi phục liệu q khứ Khôi phục file filegroup backup: File file group khơi phục từ database backup file file group Ta không cần thiết backup transaction log khơng có thay đổi từ lưu file file group Ví dụ: Nếu filegroup_b cần khơi phục bảng filegroup bị hư, ta sẽ: - Khôi phục filegroup_b backup tạo vào ngày thứ năm - Áp dụng transaction log backup filegroup_b Dùng T-SQL Để khôi phục CSDL dùng T-SQL, bạn dùng lệnh RESTORE, tương tự lệnh BACKUP Nó khó dùng lúc đầu bạn đưa thủ tục quản trị vào script để dùng lại nhiều lần sau Ví dụ để khơi phục CSDL Northwind từ thietbi_saoluu_1 bạn thực trên, bạn thực sau: RESTORE DATABASE Northwind FROM thietbi_saoluu_1 Nếu bạn khơi phục CSDL tồn tại, bạn dùng tùy tồn WITH REPLACE sau: RESTORE DATABASE Northwind FROM thietbi_saoluu_1 WITH REPLACE Ví dụ để khơi phục CSDL MyDB từ tập tin lưu MyDB_010809 bạn thực sau: RESTORE DATABASE MyDB FROM DISK = ‘C:\Backup\MyDB_020809’ Kết chương Trong chương bạn hiểu thuật ngữ lưu khôi phục Bạn học phương pháp thực lưu phục hồi CSDL SQL Server Bạn biết khác lưu đầy đủ lưu thay đổi liệu Cách lưu CSDL tập tin log giao dịch Trong q trình bạn học cách lập biểu thời gian cho lưu tự động Ngồi bạn biết cách khơi phục CSDL từ tập tin lưu thiết bị lưu hai phương pháp Enterprise Manager T-SQL Bạn biết cách khôi phục lại CSDL với tên ghi đè lên CSDL tồn CHƯƠNG 10 BẢO MẬT DỮ LIỆU Nội dung Thời gian 15h (LT: 5; TH: 10h) Cơ sở liệu tổ chức chứa liệu quan trọng cần giữ bí mật Vì thực bảo mật sở liệu cần thiết Hệ quản trị sở liệu Trong phần bàn nguyên tắc bảo mật SQL Server 2000 cách thực 10.1 Khái niệm bảo mật liệu Bảo mật liệu (database security): việc bảo vệ liệu chống lại rủi ro, mát, phả hủy hay sử dụng không hợp lệ Bảo mật vấn đề mà người sử dụng sở liệu quan tâm, vấn đề bảo mật sở liệu ưu tiên hàng đầu người phát triển ứng dụng Ở tìm hiểu bảo mật SQL Server SQL Server Sercurity sử dụng mơ hình mức sau: Hình 10.1 Bảo mật mức SQL SERVER - Mức mức xác thực người dùng NT SQL Server - Mức thứ kiểm tra người dùng có quyền sử dụng hay nhiều Database - Mức xác định quyền người dùng thực câu lệnh SQL đối tượng Database bảo vệ 10.2 Lựa chọn bảo mật Các thao tác hệ thống người thực Vì xem xét nguy đe doạ an toàn hệ thống, an tồn liệu từ phía người thao tác người việc làm cần thiết Mục đích việc xây dựng biện pháp bảo mật nhằm: - Bảo vệ tính tồn vẹn (integrity) liệu, bảo đảm quán liệu hệ thống Các biện pháp đưa ngăn chặn việc thay đổi bất hợp pháp phá hoại liệu - Bảo vệ tính bí mật, giữ cho thơng tin khơng bị lộ ngồi - Bảo vệ tính khả dụng, tức hệ thống sẵn sàng thực yêu cầu truy cập thông tin người dùng hợp pháp - Bảo vệ tính riêng tư, tức đảm bảo cho người sử dụng khai thác tài nguyên hệ thống theo chức năng, nhiệm vụ phân cấp, ngăn chặn truy nhập thông tin bất hợp pháp Trong phần này, xem xét số biện pháp bảo mật cho hệ thống tin học Cũng cần phải nhấn mạnh rằng, khơng có biện pháp hoàn hảo, biện pháp có mặt hạn chế Biện pháp hiệu quả, cần áp dụng phải vào hệ thống để đưa cách thực cụ thể Thiết lập quy tắc quản lý Mỗi tổ chức cần có quy tắc quản lý riêng bảo mật hệ thống thơng tin hệ thống Có thể chia quy tắc quản lý thành số phần: - Quy tắc quản lý hệ thống máy chủ - Quy tắc quản lý hệ thống máy trạm - Quy tắc quản lý việc trao đổi thông tin phận hệ thống, hệ thống máy tính người sử dụng, thành phần hệ thống tác nhân bên An toàn thiết bị - Lựa chọn thiết bị lưu trữ có độ tin cậy cao để đảm bảo an toàn cho liệu - Phân loại liệu theo mức độ quan trọng khác để có chiến lược mua sắm thiết bị xây dựng kế hoạch lưu liệu hợp lý - Sử dụng hệ thống cung cấp, phân phối bảo vệ nguồn điện cách hợp lý - Tuân thủ chế độ bảo trì định kỳ thiết bị Thiết lập biện pháp bảo mật Cơ chế bảo mật hệ thống qua quy chế bảo mật hệ thống, phân cấp quyền hạn, chức người sử dụng hệ thống liệu quy trình kiểm sốt cơng tác quản trị hệ thống Các biện pháp bảo mật bao gồm: Bảo mật vật lý hệ thống Hình thức bảo mật vật lý đa dạng, từ khoá cứng, hệ thống báo động hạn chế sử dụng thiết bị Ví dụ loại bỏ đĩa mềm khỏi máy trạm thông thường biện pháp nhiều quan áp dụng * Các biện pháp hành nhận dạng nhân vào văn phòng, đăng nhập hệ thống cấm cài đặt phần mềm, hay sử dụng phần mềm không phù hợp với hệ thống + Mật biện pháp phổ biến hiệu Tuy nhiên mật khơng phải biện pháp an tồn tuyệt đối Mật cắp sau thời gian sử dụng + Bảo mật liệu mật mã tức biến đổi liệu từ dạng nhiều người dễ dàng đọc được, hiểu sang dạng khó nhận biết + Xây dựng tường lửa, tức tạo hệ thống bao gồm phần cứng phần mềm đặt hệ thống mơi trường bên ngồi Internet chẳng hạn Thơng thường, tường lửacó chức ngăn chặn thâm nhập trái phép (không nằm danh mục phép truy nhập) lọc bỏ, cho phép gửi hay khơng gửi gói tin Khi phát triển ứng dụng lúc người phát triển ứng dụng quan tâm đến vấn đề bảo mật hệ thống, để làm hệ thống bảo mật yêu cầu tối thiểu quản lý user quyền hạn chức đối tượng ứng dụng 10.2.1 Quản lý đăng nhập (Login) SQL Server xác thực người dùng hai mức: - Login authentication: Xác thực đăng nhập - Permissions validation on user database: Kiểm tra quyền đối tượng người dùng Xác thực đăng nhập Ngườì dùng phải có Login account để kết nối với SQL SERVER SQL Server xác nhận người dùng chế: - SQL Server Authentication: Khi sử dụng SQL Server Authentication, người sử dụng phải nhập Account Password cấp - Windows NT Authentication: Khi sử dụng Windows NT Authentication, SQL Server xác minh lại với WinNT để kiểm tra xem có trùng khớp khơng, cho phép đăng nhập - Mixed Mode Authentication: Người sử dụng đăng nhập sử dụng SQL Server Authentication Windows NT Authentication Kiểm tra quyền (Permission) Với sở liệu, người dùng cấp số quyền đó, họ thực thao tác giới hạn quyền họ SQL Server thưc bước sau kiểm tra quyền: - Khi người dùng thực thao tác, ví dụ thực thi câu lệnh TSQL lựa chọn công việc công cụ EM, câu lệnh TSQL gửi tới SQL SERVER - Khi SQL Server nhận câu lệnh T-SQL, kiểm tra quyền người dùng đối tượng liên quan câu lệnh T-SQL o Nếu người dùng không phép, SQL Server báo lỗi o Ngược lại, thực trả kết Tạo Login Chúng ta có nhiều cách để tạo Login, sử dụng EM câu lệnh T-SQL SERVER Tạo Login EM: Sử dụng Create Login Wizard thực bước theo dẫn Tạo Login T-SQL: Để tạo login ta có lệnh sau: EXEC sp_addlogin 'phnhung', '123456' Để xố login ta có lệnh sau: EXEC sp_droplogin 'Arwen' Hình 10.2 Tạo Login 10.2.3 Quản lý người dùng SQL Server cho phép hai kiểu User Accounts: - System User - Database User SQL Server Users Một user identifier (ID) xác định User Database Tất quyền sở hữu đối tượng Database xác định user accounts User accounts xác định cho Database Ví dụ: User account: abc Database Book khác user account: abc Database Customer Quan hệ Database User Login name: User Database xác định user ID, login ID Bản thân login ID không cấp quyền cho người dùng truy cập vào đối tượng Database Ví dụ: sa login account ánh xạ tới người dùng tới user account đặc biệt có tên dbo(database owner) Database Quản lý Usename Login name Ví dụ q trình cấp cho người dùng Windows 2000 truy cập Database kết hợp với việc đăng nhập user Database USE master GO sp_grantlogin 'OnlineDOMAIN\Arwen' GO sp_defaultdb @loginame = 'OnlineDOMAIN\Arwen', defdb = 'books' GO USE books Goto sp_grantdbaccess 'OnlineDOMAIN\Arwen', 'Arwen' GO sp_revokedbaccess 'OnlineDOMAIN\Arwen', 'Arwen' GO Trong đó: - sp_grantlogin: cho phép người dùng nhóm account Windows NT/2000 truy cập vào Database Windows authentication - sp_defaultdb: thay đổi Database mặc định cho việc đăng nhập - sp_grantdbaccess: thêm account cấp quyền truy nhập cho - sp_revokedbaccess: xoá account từ Database 10.3 Quyền người dùng Việc sử dụng liệu không phép liên quan đến việc xâm nhập người bất hợp pháp Hệ thống cần trang bị tiện nghi để điều khiển truy cập sở liệu, thiết lập quyền người dùng Người dùng có số quyền như: Quyền đọc , ghi, thay đổi đối tượng sở liệu Các đối tượng sở liệu: Quyền Object permissions: điều khiển truy cập thao tác với liệu bảng (tables) khung nhìn (views) chạy stored procedures Statement permissions điều khiển users xố tạo đối tượng Database Object Type Possible Actions Table SELECT, UPDATE, DELETE, INSERT, REFERENCE Column SELECT, UPDATE View SELECT, UPDATE, INSERT, DELETE Stored procedure EXECUTE Cho phép huỷ bỏ quyền đối tượng User người mà tạo đối tượng Database gọi object owner.Vì user phải có quyền để tạo đối tượng Database SQL Server sử dụng lệnh GRANT, REVOKE, DENY để quản lý quyền: GRANT: Cho phép người dùng thực thao tác SELECT, UPDATE, INSERT, DELETE EXCUTED đối tượng Ví dụ: GRANT INSERT, UPDATE, DELETE ON authors TO Mary, John, Tom Ví dụ thực việc cấp quyền INSERT, UPDATE, DELETE bảng Authors cho người dùng Mary, John, Tom REVOKE: Được sử dụng để xoá quyền người sử dụng DENY: Được sử dụng để ngăn cản người sử dụng thực thao tác đối tượng Hầu hết ứng dụng sở liệu đòi hỏi quyền khác đối tượng sở liệu, thao tác ứng dụng phải phân quyền đối tượng Đối với ứng dụng lên đến vài trăm user nhiều, việc phân quyền phức tạp Để đơn giản cho việc quản lý quyền hạn bạn tạo role ( hiểu nhóm vai trò trung gian giữ lấy quyền hạn) cho ứng dụng, role gán cho tập hợp quyền hạn, sau bạn gán role cho user Việc gán quyền thông qua role có nhiều điểm lợi: + Role gán nhiều quyền, user gán đến role Khi user thay đổi cơng việc bạn gán hay hủy bỏ quyền cho user với role + Bạn thay đổi quyền liên quan đến ứng dụng cách thay đổi quyền đến role mà không quan tâm đến user ứng dụng Quản lý Role Roles quan trọng cách để cung cấp quyền cho người dùng Quyền cấp cho người dùng cách cấp quyền trực tiếp, cách làm cho người quản trị hệ thống làm việc thời gian nhàm chán phải cấp chi tiết quyền cho người dùng Hoặc quyền cấp thơng qua Role - tương tự khái niệm group NT Chúng ta gán quyền cho Role sau người dùng xếp vào Role Như vậy, cơng việc người quản trị hệ thống trở nên dễ dàng nhiều lần SQL Server có Database Roles Server Roles Database Roles sử dụng để cung cấp mức khác để truy cập vào sở liệu Server Roles sử dụng phép hạn chế người sử dụng thực thao tác (operations) sở liệu Database Roles Có kiểu Database Role đặc biệt, public role - Nó có tất Database - Nó khơng thể xố - Tất người dùng thuộc Public role, bao gồm sa account Sau số Database role quyền tương ứng: - db_owner: Đây Role cao người dùng có Role cho phép người dùng quyền CSDL Người dùng sa nằm Role - db_securityadmin: Cho phép người dùng quản lý Roles nhóm người dùng role - db_accessadmin: Cung cấp cho người dùng quyền thêm xoá người dùng khác CSDL - db_ddladmin: Cho phép người dùng thực thi nhiệm vụ đối tượng CSDL: người dùng tạo, sửa, xố đối tượng - db_backupoperator: Cho phép người dùng thực việc backup liệu - db_datareader: Cho phép người dùng xem liệu bảng CSDL - db_denydatawriter: Ngăn cản người dùng sửa liệu bảng Server Roles Server roles SQL Server 2000 cho phép: - Sysadmin: Có đầy đủ quyền SQL Server - Securityadmin: Cho phép tạo quản lý việc đăng nhập cho Server - Serveradmin: Cho phép thiết lập cấu hình instance SQL Server - Setupadmin: Có khả để quản lý thủ tục khởi động server liên kết - Processadmin: Có khả để quản lý tiến trình chạy SQL Server - Diskadmin: Có thể quản lý file đĩa - Dbcreator: Cho phép tạo, sửa, xoá CSDL Thêm thành viên cho Role Để thêm Role mới, thực EM sử dụng thủ tục sp_addrole, để thêm thành viên cho Role, chungs ta sử dụng thủ tục sp_addrolemember Ví dụ sau cách tạo Role thêm thành viên cho role sp_addrole 'Teacher' GO sp_addrole 'Student' GO sp_addrole 'StudentTeacher' GO sp_addrolemember 'Teacher', 'NETDOMAIN\Peter' GO sp_addrolemember 'Teacher', 'NETDOMAIN\Cathy' GO sp_addrolemember 'StudentProfessor', 'NETDOMAIN\Diane' GO sp_addrolemember 'Student', 'NETDOMAIN\Mel' GO sp_addrolemember 'Student', 'NETDOMAIN\Jim' GO sp_addrolemember 'Student', 'NETDOMAIN\Lara' GO GRANT SELECT ON StudentGradeView TO Student GO GRANT SELECT, UPDATE ON ProfessorGradeView TO Professor GO Kết chương: Trong chương bạn học quan lý người dùng bảo mật, bạn biết cách đăng nhập CSDL tài khoải người dùng CSDL để truy cập CSDL Từ bạn học cách tạo quản lý đăng nhập người dùng CSDL Bạn học cách dùng nhóm quyền CSDL để quan lý dễ dàng việc thiết lập quyền cho nhóm người dùng sửa đổi nhóm quyền CSDL Bạn học nhóm quyền đặc biệt gọi nhóm quyền server cố định, dùng để gán quyền quản trị cho người dùng NQTCSDL ... quyền Giáo trình sử dụng làm tài liệu giảng dạy nội trường cao đẳng nghề Công nghiệp Hà Nội Trường Cao đẳng nghề Công nghiệp Hà Nội không sử dụng không cho phép cá nhân hay tổ chức sử dụng giáo trình. .. 2.2.5 Cơ sở liệu Pubs Cơ sở liệu có ý nghĩa cơng cụ học tập Nó chứa sở liệu mẫu nhà xuất bản, bao gồm tác giả, sách việc bán sách Hầu hết tính sở liệu nêu bật qua việc cài đặt chúng vào sở liệu. .. tạo dựng sở liệu nên khơng có sở liệu nhỏ sở liệu model 2.2.3 Cơ sở liệu tempdb Cơ sở liệu tempdb nơi xếp, kết nối hoạt động khác đòi hỏi vị trí tạm thời thực Cơ sở liệu có kích thước sau cài đặt