Giáo trình mô đun Hệ quản trị cở dữ liệu - Nghề: Lập trình viên máy tính

Bài 1: TỔNG QUAN VỀ HỆ QUẢN TRỊ CSDL SQL SERVER

Mã bài: MĐLTV13.01

Giới thiệu.

Ngôn ngữ hỏi có cấu trúc (SQL), có tiền thân là SEQUEL, là một ngôn ngữ

được IBM phát triển và sử dụng trong hệ cơ sở dữ liệu thử nghiệm có tên là System/R

vào năm 1974, chính thức được ANSI/ISO công nhận là một chuẩn ngôn ngữ sử dụng

trong cơ sở dữ liệu quan hệ vào năm 1986. Cho đến hiện nay, SQL đã được sử dụng

phổ biển trong các hệ quản trị cơ sở dữ liệu thương mại và có vai trò quan trọng trong

những hệ thống này.

Vậy thực sự SQL là gì? Tại sao nó lại quan trọng trong các hệ quản trị cơ sở dữ

liệu? SQL có thể làm được những gì và như thế nào? Nó được sử dụng ra sao trong

các hệ quản trị cơ sở dữ liệu quan hệ? Nội dung của chương này sẽ cung cấp cho

chúng ta cái nhìn tổng quan về SQL và một số vấn đề liên quan.

Mục tiêu:

- Trình bày được kiến trúc, các thành phần cơ bản của hệ quản trị CSDL SQL Server.

- Trình bày được các đối tượng cơ bản của Cơ sở dữ liệu trong SQL Server

- Cài đặt và cấu hình được SQL Server

- Thực hiện được các thao tác cơ bản khi làm việc với CSDL

- Thực hiện được các thao tác cơ bản với đối tượng bảng

Nội dung chính:

1. Giới thiệu

1.1.Lịch sử ra đời và phát triển

SQL, viết tắt của Structured Query Language (ngôn ngữ hỏi có cấu trúc), là

công cụ sử dụng để tổ chức, quản lý và truy xuất dữ liệu đuợc lưu trữ trong các cơ sở

dữ liệu. SQL là một hệ thống ngôn ngữ bao gồm tập các câu lệnh sử dụng để tương tác

với cơ sở dữ liệu quan hệ.

Tên gọi ngôn ngữ hỏi có cấu trúc phần nào làm chúng ta liên tưởng đến một

công cụ (ngôn ngữ) dùng để truy xuất dữ liệu trong các cơ sở dữ liệu. Thực sự mà nói,

khả năng của SQL vượt xa so với một công cụ truy xuất dữ liệu, mặc dù đây là mục

đích ban đầu khi SQL được xây dựng nên và truy xuất dữ liệu vẫn còn là một trong

những chức năng quan trọng của nó. SQL được sử dụng để điều khiển tất cả các chức

năng mà một hệ quản trị cơ sở dữ liệu cung cấp cho người dùng bao gồm:

• Định nghĩa dữ liệu: SQL cung cấp khả năng định nghĩa các cơ sở dữ liệu, các cấu

trúc lưu trữ và tổ chức dữ liệu cũng như mối quan hệ giữa các thành phần dữ liệu.

• Truy xuất và thao tác dữ liệu: Với SQL, người dùng có thể dễ dàng thực hiện các

thao tác truy xuất, bổ sung, cập nhật và loại bỏ dữ liệu trong các cơ sở dữ liệu.

• Điều khiển truy cập: SQL có thể được sử dụng để cấp phát và kiểm soát các thao

tác của người sử dụng trên dữ liệu, đảm bảo sự an toàn cho cơ sở dữ liệu8

• Đảm bảo toàn vẹn dữ liệu: SQL định nghĩa các ràng buộc toàn vẹn trong cơ sở dữ

liệu nhờ đó đảm bảo tính hợp lệ và chính xác của dữ liệu trước các thao tác cập nhật

cũng như các lỗi của hệ thống.

Như vậy, có thể nói rằng SQL là một ngôn ngữ hoàn thiện được sử dụng trong

các hệ thống cơ sở dữ liệu và là một thành phần không thể thiếu trong các hệ quản trị

cơ sở dữ liệu. Mặc dù SQL không phải là một ngôn ngữ lập trình như C, C++, Java,.

song các câu lệnh mà SQL cung cấp có thể được nhúng vào trong các ngôn ngữ lập

trình nhằm xây dựng các ứng dụng tương tác với cơ sở dữ liệu.

Khác với các ngôn ngữ lập trình quen thuộc như C, C++, Java,. SQL là ngôn

ngữ có tính khai báo. Với SQL, người dùng chỉ cần mô tả các yêu cầu cần phải thực

hiện trên cơ sở dữ liệu mà không cần phải chỉ ra cách thức thực hiện các yêu cầu như

thế nào. Chính vì vậy, SQL là ngôn ngữ dễ tiếp cận và dễ sử dụng.

pdf104 trang | Chia sẻ: Thục Anh | Ngày: 12/05/2022 | Lượt xem: 27 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Giáo trình mô đun Hệ quản trị cở dữ liệu - Nghề: Lập trình viên máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
function_name; Ví dụ mình muốn xóa function đã tạo ở trên thì chạy lệnh sau: 1 DROP FUNCTION sales.udfNetSale; Tương tự, bạn chỉ có thể xóa function do bạn tự tạo. 4. Sử dụng thủ tục trong lập trình kết nối CSDL 4.1 Khái niệm về thủ tục nội tại Giống như ý nghĩa của việc sử dụng thủ tục dùng chung trong những ngôn ngữ lập trình khác, thủ tục nội tại trong Microsoft SQL Server dùng để tạo ra những xử lý thường dùng bên trong ứng dụng và nhằm để chia nhỏ các xử lý theo mô hình thiết kế xử lý top- down, nhằm đơn giản hóa các xử lý phức tạp. Thủ tục nội tại thật sự là một tập hợp chứa các dòng lệnh, các biến, các cấu trúc điều khiển bên trong ngôn ngữ T_SQL, dùng để thực hiện một hành động nào đó, tất cả các nội dung của thủ tục nội tại sẽ được lưu trữ tại CSDL của Microsoft SQL Server. Các đặc trưng của một thủ tục nội tại : - Tên thủ tục nội tại. - Tham số truyền giá trị vào và tham số nhận giá trị trả về. - Gọi thi hành một thủ tục nội tại khác. - Phạm vi hoạt động của một thủ tục nội tại chỉ có tính cục bộ bên trong một CSDL lưu trữ thủ tục đó. - Được gọi thi hành trong môi trường không phải là Microsoft SQL Server. - Được biên dịch ở lần thi hành đầu tiên và cách hoạt động của nó được cất lại, nên các lần gọi thi hành sau nó sẽ hoạt động nhanh hơn nhiều. 4.2 Các hành động cơ bản với thủ tục nội tại 4.2.1 Tạo mới một thủ tục nội tại Cú pháp : CREATE PROC[EDURE] Tên_thủ_tục [Danh sách các tham số] AS [DECLARE Biến_cục_bộ] Các_lệnh GO 4.2.2 Gọi thực hiện một thủ tục nội tại Cú pháp : EXEC[UTE] Tên_thủ_tục 4.2.3 Hủy bỏ một thủ tục nội tại Cú pháp : DROP PROC[EDURE] Tên_thủ_tục 4.2.4 Thay đổi nội dung của một thủ tục nội tại Cú pháp : ALTER PROC[EDURE] Tên_thủ_tục AS [DECLARE biến_cục_bộ] Các _lệnh Bài 5: AN TOÀN VÀ BẢO MẬT DỮ LIỆU Mã bài: MĐLTV13.05 Mục tiêu: - Trình bày được những khái niệm cơ bản về sao lưu và phục hồi. - Trình bày được các khái niệm về log in , user, publisher - Thực hiện được sao lưu và phục hồi cơ sở dữ liệu. - Thực hiện được nhập, xuất dữ liệu. - Thực hiện được tạo và phân quyền log in, user. Phân biệt được login và User. - Cài đặt được Client để truy cập đến Server sử dụng log in được cấp. Nội dung bài: 1. Sao lưu và phục hồi cơ sở dữ liệu Chiến lược phục hồi dữ liệu (Data Restoration Strategy) Khi nào ta cần khôi phục lại dữ liệu? Có rất nhiều lý do mà người Quản trị CSDL (Database Administrator) phải đảm bảo để dữ liệu của hệ thống được chính xác, không bị sai lệch vàn cần phải giảm tối đa số lần phải phục hồi dữ liệu, luôn theo dõi, kiểm tra thường xuyên để phát hiện các trục trặc trước khi nó xảy ra. Phải dự phòng các biến cố có thể xảy ra và bảo đảm rằng có thể nhanh chóng phục hồi dữ liệu trong thời gian sớm nhất có thể được. Các dạng biến cố hay tai họa có thể xảy ra là: § Ðĩa chứa file dữ liệu hoặc file Transaction Log hay file hệ thống bị mất § Server bị hư hỏng § Những thảm họa tự nhiên như bão lụt, động đất, hỏa hoạn § Toàn bộ server bị đánh cắp hoặc phá hủy § Các thiết bị dùng để backup – restore bị đánh cắp hay hư hỏng § Những lỗi do vô ý của người sử dụng như lỡ tay xoá dữ liệu chẳng hạn § Những hành vi mang tính phá hoại của nhân viên như cố ý đưa vào những thông tin sai lạc. § Bị hack (nếu server có kết nối với internet). Bạn phải tự hỏi khi các vấn đề trên xảy ra thì bạn sẽ làm gì và phải luôn có biện pháp đề phòng cụ thể cho từng trường hợp cụ thể. Ngoài ra bạn phải xác định thời gian tối thiểu cần phục hồi dữ liệu và đưa server trở lại hoạt động bình thường. Các loại sao lưu (Backup) Ðể có thể hiểu các kiểu phục hồi dữ liệu khác nhau bạn phải biết qua các loại sao lưu trong SQL Server § Full Database Backups : Copy tất cả các file dữ liệu trong một database . Tất cả những user data và database objects như system tables, indexes, user- defined tables đều được backup. § Differential Database Backups : Copy những thay đổi trong tất cả các file dữ liệu kể từ lần backup gần nhất. § File or File Group Backups : Copy một data file đơn hay một nhóm file. § Differential File or File Group Backups : Tương tự như differential database backup nhưng chỉ copy những thay đổi trong data file đơn hay một file group. § Transaction Log Backups : Ghi nhận một cách thứ tự tất cả các giao dịch (transaction) chứa trong file transaction log kể từ lần transaction log backup gần nhất. Loại sao lưu này cho phép ta phục hồi dữ liệu trở ngược lại vào một thời điểm nào đó trong quá khứ mà vẫn đảm bảo tính đồng nhất (consistent). Trong lúc backup SQL Server cũng copy tất cả các hoạt động của database kể cả hoạt động xảy ra trong quá trình backup cho nên ta có thể backup trong khi SQL đang chạy mà không cần phải dừng lại. Các chế độ khôi phục (Recovery Models) § Chế độ Full Recovery: Ðây là chế độ cho phép phục hồi dữ liệu với ít rủi ro nhất. Nếu một database ở trong chế độ này thì tất cả các hoạt động không chỉ insert, update, delete mà kể cả insert bằng Bulk Insert, hay bcp đều được log vào file transaction log. Khi có sự cố thì ta có thể phục hồi lại dữ liệu ngược trở lại tới một thời điểm trong quá khứ. Khi file dữ liệu bị hư nếu ta có thể sao lưu được file transaction log thì ta có thể phục hồi CSDL đến thời điểm transaction gần nhất đã được xác nhận (commited). § Chế độ Bulk-Logged Recovery: Ở chế độ này các hoạt động mang tính hàng loạt như Bulk Insert, bcp, Create Index, WriteText, UpdateText chỉ được log minimum vào File Transaction Log đủ để cho biết là các hoạt động này có diễn ra mà không log toàn bộ chi tiết như trong chế độ Full Recovery. Các hoạt động khác như Insert, Update, Delete vẫn được log đầy đủ để dùng cho việc phục hồi sau này. § Chế độ Simple Recovery: Ở chế độ này thì File Transaction Log được cắt xén thường xuyên và không cần sao lưu. Với chế độ này bạn chỉ có thể phục hồi tới thời điểm backup gần nhất mà không thể phục hồi tới một thời điểm trong quá khứ. Muốn biết CSDL của bạn đang ở mode nào bạn có thể Right-click lên một database nào đó trong SQL Server Management Studio chọn Properties- >Options->Recovery model Chế độ khôi phục dữ liệu Tuy nhiên có thể tới đây bạn cảm thấy rất khó hiểu về những điều trình bày ở trên. Chúng ta hãy dùng một ví dụ sau để làm rõ vấn đề. Ví dụ: Chúng ta có một database được áp dụng chiến lược sao lưu như hình vẽ sau: Chiến lược sao lưu một Database Trong ví dụ này chúng ta lập lịch ở chế độ Full Database Backup vào ngày Chủ Nhật và Differential Backup vào các ngày thứ Ba và Thứ Năm. Transaction Log Backup được lập lịch hằng ngày. Vào một ngày Thứ Sáu “đen tối” một sự cố xảy ra đó là đĩa chứa file dữ liệu của CSDL bị hỏng và bạn là một quản trị CSDL, bạn được yêu cầu phải phục hồi dữ liệu và đưa CSDL hoạt động trở lại bình thường. Bạn phải làm sao? Trước hết bạn phải sao lưu ngay File Transaction Log (trong ví dụ này File Transaction Log được chứa trong một đĩa khác với đĩa chứa File dữ liệu nên không bị hỏng và vẫn còn hoạt động). Người ta còn gọi file sao lưu trong trường hợp này là ” the tail of the log” (phần đuôi). Nếu Log File được chứa trên cùng một đĩa với File dữ liệu thì bạn có thể sẽ không sao lưu được “phần đuôi” và như vậy bạn phải dùng đến file sao lưu log gần nhất. Khi sao lưu “phần đuôi” này bạn cần phải dùng tuỳ chọn NO_TRUNCATE bởi vì thông thường các Transaction Log Backup sẽ cắt xén những phần không cần dùng đến trong transaction log file, đó là những transaction đã được chấp nhận và đã được viết vào CSDL (còn gọi là inactive portion of the transaction log) để giảm kích thước của log file. Tuy nhiên khi sao lưu phần đuôi không được cắt xén để đảm bảo tính nhất quán (consistent) của database. Kế đến bạn phải khôi phục CSDL (restore database) từ File Full Backup của ngày Chủ Nhật. Nó sẽ làm 2 chuyện : copy dữ liệu, log, index từ đĩa sao lưu vào các file dữ liệu và sau đó sẽ lần lượt thực thi các transaction trong transaction log. Lưu ý ta phải dùng tuỳ chọn WITH NORECOVERY trong trường hợp này (tức là tuỳ chọn thứ 2 “Leave database nonoperational but able to restore additional transaction logs” trong SQL Server Management Studio). Nghĩa là các transaction chưa hoàn tất (incomplete transaction) sẽ không được roll back. Như vậy CDSL lúc này sẽ ở trong tình trạng inconsistent và không thể dùng được. Nếu ta chọn WITH RECOVERY (hay “Leave database operational. No additional transaction logs can be restored ” trong SQL Server Management Studio) thì các incomplete transaction sẽ được roll back và CSDL ở trạng thái consistent nhưng ta không thể nào khôi phục các transaction log backup được nữa. Tiếp theo bạn phải khôi phục Differential Backup của ngày Thứ Năm. Sau đó lần lượt khôi phục các Transaction Log Backup kể từ sau lần Differential Backup cuối cùng nghĩa là restore Transaction Log Backup của ngày Thứ Năm và “Phần Ðuôi”. Như vậy ta có thể phục hồi data trở về trạng thái trước khi biến cố xảy ra. Quá trình này gọi là phục hồi CSDL (Database Recovery). Cũng xin làm rõ cách dùng từ Database Restoration và Database Recovery trong SQL Server. Hai từ này nếu dịch ra tiếng Việt đều có nghĩa là phục hồi cơ sở dữ liệu nhưng khi đọc sách tiếng Anh phải cẩn thận vì nó có nghĩa hơi khác nhau. Như trong ví dụ trên khi ta restore database từ một file backup nghĩa là chỉ đơn giản tái tạo lại database từ những file backup và thực thi lại những transaction đã được commit nhưng database có thể ở trong trạng thái inconsistent và không sử dụng được. Nhưng khi nói đến recover nghĩa là ta không chỉ phục hồi lại data mà còn bảo đảm cho nó ở trạng thái consistent và sử dụng được (usable). Có thể bạn sẽ hỏi consistent là thế nào? Phần này sẽ được trình bày trong bài về Tính toàn ven dữ liệu (Data Integrity). Bạn có thể xem lại ví dụ về Transaction Log ở bài trước : Giả sử số tiền VND 500000 được trừ khỏi tài khoản A nhưng lại không được cộng vào tài khoản B và nếu CSDL không được quá trình khôi phục dữ liệu tự động (automatic recovery process) của SQL rollback thì nó sẽ ở trạng thái không đồng nhất. Nếu CSDL ở trạng thái giống như trước khi trừ tiền hoặc sau khi đã cộng VND 500000 thành công vào tài khoản B thì gọi là đồng nhất. Cho nên việc sao lưu File Transaction Log sẽ giúp cho việc recovery dữ liệu tới bất kỳ thời điểm nào trong quá khứ. Ðối với chế độ Simple Recovery ta chỉ có thể recover tới lần sao lưu gần nhất mà thôi. Như vậy khi restore database ta có thể chọn tuỳ chọn WITH RECOVERY để roll back các transaction chưa được commited và CSDL có thể hoạt động bình thường nhưng ta không thể restore thêm backup file nào nữa, thường tuỳ chọn này được chọn khi restore file backup cuối cùng trong chuỗi backup. Nếu chọn tuỳ chọn WITH NORECOVERY các transaction chưa được commited sẽ không được roll back do đó SQL Server sẽ không cho phép ta sử dụng database nhưng ta có thể tiếp tục restore các file backup kế tiếp, thường option này được chọn khi sau đó ta còn phải restore các file backup khác. Không lẽ chỉ có thể chọn một trong hai option trên mà thôi hay sao? Không hoàn toàn như vậy ta có thể chọn một tuỳ chọn trung lập hơn là tuỳ chọn WITH STANDBY (tức là tuỳ chọn 3 “Leave database read-only and able to restore additional transaction logs” trong SQL Server Management Studio). Với tuỳ chọn này ta sẽ có luôn đặc tính của hai tuỳ chọn trên : các incomplete transaction sẽ được roll back để đảm bảo sự đồng nhất của CSDLvà có thể sử dụng được nhưng chỉ dưới dạng Read-only mà thôi, đồng thời sau đó ta có thể tiếp tục restore các file backup còn lại (SQL Server sẽ log các transaction được roll back trong undo log file và khi ta restore backup file kế tiếp SQL Server sẽ trả lại trạng thái no recovery từ những gì ghi trên undo file). Người ta dùng option này khi muốn restore database trở lại một thời điểm nào đó (a point in time) nhưng không rõ là đó có phải là thời điểm mà họ muốn không, cho nên họ sẽ restore từng backup file ở dạng Standby và kiểm chứng một số data xem đó có phải là thời điểm mà họ muốn restore hay không (chẳng hạn như trước khi bị delete hay trước khi một transaction nào đó được thực thi) trước khi chuyển sang Recovery option. 1.1. Sao lưu CSDL – Backup Database Trong phần này chúng ta sẽ bàn về cách sao lưu CSDL. Nhưng trước hết chúng ta hãy làm quen với một số thuật ngữ dùng trong quá trình sao lưu và phục hồi. Có những từ ta sẽ để nguyên tiếng Anh mà không dịch. Thuật Ngữ Giải Thích Backup Quá trình copy toàn bộ hay một phần của database, transaction log, file hay file group hình thành một backup set. Backup set được chứa trên backup media (tape or disk) bằng cách sử dụng một backup device (tape drive name hoặc physical filename) Backup Device Định nghĩa việc sao lưu một Device logic tới một file trên ổ đĩa. Một device logic là tên người dùng tự định nghĩa mà trỏ tới một device sao lưu vật lý (như C:\SQLBackups\Full.bak) hoặc tape drive (như \\.\Tape0). Backup File chứa một backup set Thuật Ngữ Giải Thích File Backup Media Disk hay tape được sử dụng để chứa một backup set. Backup media có thể chứa nhiều backup sets (ví dụ như từ nhiều SQL Server 2000 backups và từ nhiều Windows 2000 backups). Backup Set Một bộ backup từ một lần backup đơn được chứa trên backup media. a. Backup Device Chúng ta có thể tạo một backup device cố định (permanent) hay tạo ra một backup file mới cho mỗi lần backup. Thông thường chúng ta sẽ tạo một backup device cố định để có thể dùng đi dùng lại đặc biệt cho việc tự động hóa công việc backup. Ðể tạo một backup device dùng SQL Management Studio bạn làm như sau: Cách sao lưu backup device § Sau khi kết nối tới một instance thích hợp của Microsoft SQL Server Database Engine, trong cửa sổ Object Explorer, kích vào tên Server hiển thị cây các đối tượng trong mục này. § Mở Server Objects, và kích chuột phải Backup Devices. § Kích New Backup Device. Hộp thoại Backup Device mở ra. § Nhập vào Device Name. § Phần Destination, kích File và chỉ định đường dẫn đầy đủ của file. § Hoàn thành bằng cách kích nút OK. Ngoài ra bạn có thể dùng một stored procedure có tên sp_addumpdevice như ví dụ sau: § Kết nối tới Microsoft SQL Server Database Engine. § Từ trên thanh Toolbar chuẩn, kích New Query. § Copy và paste ví dụ sau vào cửa sổ query và kích Execute. Ví dụ này giới thiệu cách sử dụng sp_addumpdevice để định nghĩa một logical backup device cho một file của đĩa. Ví dụ này thêm thiết bị sao lưu đĩa có tên mydiskdump tới một tên vật lý C:\SQLBackups\Full.bak. USE Master Go Sp_addumpdevice 'disk' , 'mydiskdump' , 'C:\SQLBackups\Full.bak' b. Backup database Ðể backup database bạn có thể dùng Backup Wizard hoặc kích lên trên tên database muốn backup sau đó kích chuột phải chọn Tasks->Back Up sẽ hiện ra cửa sổ như sau: Cách sao lưu Database Sau đó dựa tùy theo yêu cầu của database mà chọn các option thích hợp. Ta có thể schedule cho SQL Server backup định kỳ. 1.2.Khôi phục CSDL – Restore Database Trước khi khôi phục CSDL ta phải xác định được thứ tự file cần khôi phục. Các thông tin này được SQL Server chứa trong CSDL msdb và sẽ cho ta biết backup device nào, ai backup vào thời điểm nào. Sau đó ta tiến hành restore. Ðể khôi phục CSDL kích chuột phải ->Tasks ->Restore -> Database sẽ thấy cửa sổ như sau: Khôi phục cơ sở dữ liệu Chú ý: Nếu bạn khôi phục CSDL từ một instance khác của SQL Server hay từ một server khác bạn nên lựa chọn From device và chọn file backup tương ứng . Nếu bạn muốn ghi đè cơ sở dữ liệu có sẵn với dữ liệu được sao lưu bạn có thể chọn tuỳ chọn Overwrite the existing database như hình: Các tuỳ chọn khôi phục CSDL Bạn có thể chọn leave database operational hoặc nonoperational tùy theo trường hợp như đã giải thích ở trên. 2. Import và Export cơ sở dữ liệu 2.1. Import database MySQL: Nhập database mysql Để thực hiện nhập lại database bạn cần có file .sql chứa dữ liệu cần được nhập. File dữ liệu có thể ở dạng text với đuôi .sql hoặc ở dạng nén Gzip với đuôi .sql.gz Tiến hành đăng nhập vào Control Panel của Hostinger tại địa chỉ https://cpanel.hostinger.vn. Tiếp tục chọn vào nút Quản lý ở host cần nhập. Tiếp theo, bạn hãy bấm chọn vào phpMyAdmin tại mục MySQL Databases. Các bước import database MySQL như sau: Click vào icon phpMyAdmin trong phần Databases trong control panel của Hostinger Chọn database của bạn (hoặc tạo mới một database), nhấn vào nút “Vào phpMyAdmin” Khi đã vào được giao diện phpMyAdmin để quản lý database của bạn, tiến hành import database MySQL. Nếu database đang chứa dữ liệu, điều đầu tiên cần thực hiện là xóa tất cả các dữ liệu của database này trước khi nhập nếu không có thể gặp lỗi. Để xóa các dữ liệu có sẵn, chọn database của bạn: Bấm vào mục Select all để chọn tất cả các table và nhấn nút Drop như hình bên trên để tiến hành xóa tất cả các dữ liệu hiện có. Bạn chỉ thực hiện bước này khi muốn nhập lại database cho một database đã có dữ liệu trước đó. Nếu bạn tạo mới một database để nhập thì có thể bỏ qua bước này. Sau khi xóa database, hãy tiếp tục chọn Import ở menu ngang bên trên. Bước tiếp theo, bạn sẽ chọn file sql trên máy của bạn để upload lên. File sql này có thể ở dạng text .sql hay dạng nén với đuôi .sql.zip hay .sql.gz đều được. Bấm vào nút Choose File để chọn file database cần nhập, bấm tiêp Go để quá trình tải lên và nhập vào database của bạn. Khi phpMyAdmin chạy và hiện thông báo tương tự: Import has been successfully finished, 302 queries executed. (u377365733_db.sql.gz) nghĩa là quá trình nhập database đã thành công. 2.2. Export database MySQL – Trích xuất DB Việc xuất ra database cũng được thực hiện tương tự như lúc nhập. Cơ bản bạn chỉ cần chọn database cần export và truy cập vào giao diện phpMyAdmin của database đó. Sau đó chọn mục Export ở menu ngang bên trên, các tùy chọn khác để mặc định rồi nhấp nút Go để Export database MySQL về máy tính. Tóm lại các bước export MySQL database đơn giản như sau: Truy cập vào phpMyAdmin của Database Chọn Export Chọn Quick (hoặc Custom và chọn tất cả các bạn) Hãy chắc rằng format là SQL Bạn cũng có thể chọn xuất dữ liệu từ một table nào đó theo yêu cầu mà không phải là toàn bộ table trong database. 3.Tạo tài khoản người dùng và phân quyền Bảo mật cơ sở dữ liệu sql server là giải pháp cho phép các quản trị viên cơ sở dữ liệu thiết lập quyền hạn cho người dùng hoặc nhóm người dùng khai thác cơ sở dữ liệu. Người dùng hoặc nhóm người dùng sau khi được cấp quyền, có thể đăng nhập vào hệ thống và thực hiện các quyền hạn mà mình được cấp. Bảo mật cơ sở dữ liệu sql server giúp phân quyền người dùng trên cơ sở dữ liệu. Hình bên dưới là một ví dụ về phân quyền trên cơ sở dữ liệu Tình huống bảo mật cơ sở dữ liệu sql server Cấp quyền cho người dùng tên test1 được phép xem dữ liệu trên bảng VATTU của cơ sở dữ liệu QuanLyBanHang Các bước thực hiện bảo mật cơ sở dữ liệu sql server – Cấp quyền cho người dùng Đăng nhập vào hệ thống với quyền quản trị (Administrator) và thực hiện một trong hai cách sau: Cách 1: Thực hiện bằng giao diện Bước 1: Tạo tài khoản sql server (login) Bước 2: Tạo người sử dụng (user) Bước 3: Cấp quyền cho người dùng Chuột phải lên bảng (table) hoặc cơ sở dữ iệu (Database) -> chọn Properties Thiết lập quyền Bảo mật cơ sở dữ liệu sql server – Thiết lập chế độ chứng thực Windows và SQL Server Bước 1: Đăng nhập vào SQL Server bằng chứng thực Windows với quyền admin Bước 2: Chuột phải lên trên cùng -> chọn Properties Bước 3: Chọn SQL Server and Windows Authencation mode Bước 4: Khởi động lại SQL Server Bảo mật cơ sở dữ liệu sql server – Bài tập thực hành số 1 Cho phép người dùng test2 được phép xem tất cả dữ liệu của cơ sở dữ liệu QuanLyBanHang. Lưu ý: Kiểm tra quyền của người dùng này bằng cách sử dụng máy tính khác kết nối từ xa vào máy chủ (kết nối thông qua mạng LAN) Cách 2: Thực hiện bằng câu lệnh Bước 1: Tạo tài khoản đăng nhập Cách 1: create login tên_login with password = 'nhập_mật_khẩu' Cách 2: sp_addlogin 'tên_login','mật_khẩu' Bước 2: Tạo người dùng Cách 1: create user tên_user for login tên_login Cách 2: sp_adduser 'tên_login','tên_user' Bước 3: Cấp quyền cho người dùng grant danh_sách_quyền on tên_bảng to tên_user [with grant option] Tuỳ chọn [with grant option] được sử dụng để cho phép người dùng được phép cấp lại những quyền của mình cho người dùng khác. Bảo mật cơ sở dữ liệu sql server – Ví dụ cấp quyền cho người dùng Tình huống: Cấp quyền xem và thêm dữ liệu trên bảng VATTU cho người dùng thanhnv. Các bước thực hiện: Bước 1: Tạo tài khoản đăng nhập create login thanhnv with password = 'Abc12345' Bước 2: Tạo người dùng create user thanhnv for login thanhnv Bước 3: Cấp quyền grant select,insert on VATTU to thanhnv Bài tập vận dụng: Cấp quyền xem và thêm trên bảng NHACC và bảng VATTU cho người dùng tên test3. Lưu ý khi chúng ta muốn cấp quyền trên các cột, chúng ta phải chỉ định các cột được cấp như cú pháp bên dưới: Cách 1: grant select(danh_sách_cột) on tên_bảng to tên_user Cách 2: grant select on tên_bảng(danh_sách_cột) to tên_user Ví dụ chỉ cho pháp người dùng thanhnv được phép xem 2 cột masv và tensv của bảng SINHVIEN grant select(masv,tensv) on sinhvien to thanhnv Bảo mật cơ sở dữ liệu sql server – Windows Authencation Bước 1: Tạo tài khoản đăng nhập hệ điều hành Windows, chúng ta có thể sử dụng câu lệnh sau và thực hiện trong CMD của Windows net user accountName accountPassword /add Sử dụng SQL Server Management Studio và thực hiện các bước sau Bước 2: Tạo login ánh xạ đến tài khoản đăng nhập Windows create login "hostName\accountName" from windows Bước 3: Tạo user create user userName for login "hostName\acountName" Bước 4: Cấp quyền cho user grant permission on tableName to userName [with grant option] Các bước thực hiện bảo mật cơ sở dữ liệu sql server – Cấp quyền cho nhóm Nhóm trong SQL Server bao gồm 1 hoặc nhiều user, điều này cũng tương tự như trong công ty hoặc tổ chức mỗi phòng ban có 1 hoặc nhiều nhân viên. Bên dưới là ví dụ về sơ đồ tổ chức của một công ty. Như vậy thay vì chúng ta cấp quyền cho từng user, người quản trị có thể cấp quyền theo nhóm. Và những user thuộc nhóm quyền nào sẽ có tất cả quyền của nhóm đó. Do đó, khi người quản trị thực hiện thêm bớt quyền sẽ dễ dàng hơn. Bước 1: Tạo nhóm Cách 1: Create Role Tên_Nhóm Cách 2: Sp_AddRole 'Tên_Nhóm' Bước 2: Cấp quyền cho nhóm Grant Quyền On Bảng To Tên_Nhóm Bước 3: Thêm user vào nhóm Sp_AddRoleMember 'Tên_Nhóm', 'Tên_User' Ví dụ cấp quyền cho nhóm xemdulieu quyền xem dữ liệu cơ sở dữ liệu QuanLyBanHang. Trong nhóm quyền này có một user là DangLH Bước 1: Tạo nhóm quyền Use QuanLyBanHang --Chọn cơ sở dữ liệu Create role xemdulieu Bước 2: Cấp quyền cho nhóm Grant select to xemdulieu Bước 3: Tạo login tên DangLH, mật khẩu Abc12345 Create Login DangLH With Password = 'Abc12345' Bước 4: Tạo user DangLH sử dụng login DangLH Use QuanLyBanHang --Chọn cơ sở dữ liệu Create User DangLH For Login DangLH Bước 5: Thêm usser DangLH vào nhóm xemdulieu Sp_addRoleMember 'xemdulieu', 'DangLH' Luu ý: Đăng nhập vào tài khoản DangLH để kiểm tra quyền đã được cấp cho nhóm xemdulieu Bảo mật cơ sở dữ liệu sql server – Bài tập thực hành số 2 Câu 1: Tạo tài khoản 1.1 Tạo tài khoản đăng nhập SQLServer với tên đăng nhập là nhanvien và password là 123456 1.2 Tạo tài khoản đăng nhập SQLServer với tên đăng nhập là giamdoc và password là giamdoc 1.3 Tạo login có tên là thukho với password là thukho Câu 2: Tạo người dùng 2.1 Tạo người dùng có tên nhanvien với tài khoản đăng nhập là nhanvien 2.2 Tạo người dùng có tên giamdoc với tài khoản đăng nhập là giamdoc 2.3 Tạo người dùng tên thukho với tên login là thukho Câu 3: Cấp quyền 3.1 Cấp quyền cho những người dùng có tên là : nhanvien, giamdoc quyền thực thi các câu lệnh SELECT, INSERT và UPDATE trên bảng VATTU. 3.2 Cho phép những người dùng nhanvien, giamdoc quyền xem : năm tháng, mã vật tư, số lượng đầu, số lượng cuối trên bảng TONKHO (cột NAMTHANG, MAVTU, SLDAU, SLCUOI của bảng TONKHO). 3.3 Cấp quyền cho những người dùng nhanvien, giamdoc quyền SELECT, INSERT, UPDATE, DELETE trên bảng NHACC (Nhà cung cấp). 3.4 Cho phép người dùng thukho quyền xem dữ liệu trên bảng TONKHO, đồng thời có thể cấp lại quyền này cho những người dùng khác 3.5 Cấp quyền tạo cơ sở dữ liệu (Create Database) và tạo bảng (Create Table) cho người dùng có tên là giamdoc. Bảo mật cơ sở dữ liệu sql server – Bài tập thực hành số 3 Câu 1: Sử dụng tài khoản với quyền quản trị thực hiện tạo login, user và cấp quyền 1.1 Tạo login tên admin1, mật khẩu Abc12345 1.2 Tạo user thuộc cơ sở dữ liệu master (Databases->System Databases->master) 1.3 Cấp quyền tạo cơ sở dữ liệu, tạo bảng và quyền tạo login cho admin1 Câu 2: Sử dụng tài khoản admin1 và thực hiện các yêu cầu sau 2.1 Tạo CSDL QuanLyNhanSu File Size MaxSize FileGrowth Data 100 Không giới hạn 50 Log 300 Không giới hạn 100 2.2 Tạo bảng NhanVien và LuongNV thuộc CSDL QuanLyNhanSu Bảng NhanVien Tên cột Kiểu dữ liệu Số kí tự Ghi chú MaNv varchar 20 Khóa chí

Các file đính kèm theo tài liệu này:

  • pdfgiao_trinh_mo_dun_he_quan_tri_co_du_lieu_nghe_lap_trinh_vien.pdf