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.
104 trang |
Chia sẻ: Thục Anh | Ngày: 12/05/2022 | Lượt xem: 533 | Lượt tải: 0
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:
- giao_trinh_mo_dun_he_quan_tri_co_du_lieu_nghe_lap_trinh_vien.pdf