Quản trị CSDL trờn SQL Server

Một phần của tài liệu Tài liệu học tập cơ sở dữ liệu (Trang 49)

2.2.5.1 Chế độ bảo mật

Mụ hỡnh truy cập bảo mật của SQL Server:

Cỏc lớp kiểm tra bảo mật chứng thực của SQL Server

Việc kết nối đến SQL Server thật đơn giản. Sự bảo mật được kiểm tra ở ba nơi khỏc nhau: cú thể bị kiểm hợp lệ bởi Windows 2000, bản thõn SQL Server, mức CSDL riờng lẽ. Ngay sau khi bạn kết nối vào SQL Server bạn chưa thật sự truy cập được bất kỳ một

đối tượng CSDL nào, bạn cần phải được cấp quyền (permissions)truy cập đến đối tượng.

Cỏc chế độ bảo mật.

SQL Server cung cấp hai chế độ bảo mật:

Hai loại chứng thực Windows Authentication

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

SQL Server kiểm tra nhận dạng của user và sau đú cho phộp hay từ chối đăng nhập truy xuất dựa trờn cơ sở tờn của User mà khụng cần tờn đăng nhập và

password riờng biệt. Điều này gọi là kết nối tin tưởng. Khi bạn kết nối đến SQL Server

theo cỏch này thỡ cú nghĩa là bạn trỡnh bày với SQL Server một ủy nhiệm bảo mật của Windows (như là một thẻ bài truy cập của bạn). Bạn xõy dựng cỏc ủy nhiệm này trong quỏ trỡnh đăng nhập vào mạng windows. Cỏc ủy nhiệm bảo mật này được truyền õm thầm cho bạn, vỡ thế bạn khụng cần làm bất cứ điều gỡ đặc biệt để vượt qua việc kiểm tra bảo mật.

SQL Server Authentication

Người quản trị CSDL cú thể tạo ra cỏc tài khoản và password đăng nhập SQL

Serevr. Cỏc tài khoản này hoàn toàn khụng tuỳ thuộc vào cỏc tài khoản hay nhúm

người dựng hệ điều hành. Nếu cú một kết nối chỉ định chứng thực SQL Server thỡ SQL

Server thực thi chứng thực chớnh nú bằng cỏch kiểm tra xem tài khoản đang nhập cú tồn tại hay khụng và mật khẩu chỉ định cú khớp với một ghi nhận trước đõy trong SQL Server khụng.

Chế độ chứng thực:

Windows Authentication mode: Người sử dụng chỉ cú thể kết nối với SQL Server bằng Windows Authentication (Kết nối tin tưởng)

Mixed mode: Người dựng cú thể kết nối với SQL Server bằng cỏch dựng cả Windows Authentication và SQL Server Authentication

Chuyển đổi chế độ chứng thực:

Sau khi cài đặt, bạn cú thể sử dụng Enterprise Manager để chuyển đổi qua lại giữa cỏc chế độ. Tại cửa sổ Enterprise Manager, nhắp nỳt phải chuột tại instance và chọn Properties

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

2.2.5.2 Quản trị người dựng

Người dựng trong SQL Server được chia thành 2 mức: Người truy nhập vào SQL

Server gọi là Login, người khai thỏc CSDL gọi là User.

Login.

Là đối tượng được quyền truy nhập vào SQL Server, tựy theo chế độ bảo mật của SQL Server mà những login là account của Windows NT hay của SQL Server, login do Server quản lý trực tiếp.

Tạo bằng cụng cụ.

- Chọn chức năng Security của Server -> Logins

- Nhấn phải chuột -> New Login... (adsbygoogle = window.adsbygoogle || []).push({});

- Nhập cỏc tham số: Nếu chọn Account của Windows NT thỡ bạn cú thể chọn trong

danh sỏch. Nếu tạo login của SQL Server thỡ bạn nhập tờn mới, mật khẩu, chọn login

thuộc server role nào, cú thể gỏn quyền truy nhập khai thỏc CSDL nào.

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP sp_addlogin [ @loginame = ] 'login'

[ , [ @passwd = ] 'password' ] [ , [ @defdb = ] 'database' ]

[ , [ @deflanguage = ] 'language' ] [ , [ @sid = ] sid ]

[ , [ @encryptopt = ] 'encryption_option' ] Vớ dụ: Tạo login cú tờn ‘Albert’, mật khẩu ‘corporate’

EXEC sp_addlogin 'Albert', 'food', 'corporate'

Mọi thao tỏc sửa, xúa được thực hiện như cỏc đối tượng khỏc.

User.

User là đối tượng khai thỏc CSDL, nếu login chỉ xỏc định truy nhập vào SQL Server thỡ User là login ID tham gia khai thỏc CSDL, user do CSDL quản lý trực tiếp.

- Chọn CSDL -> users

- Nhấn phải chuột -> new user...

- Chọn Login, nhập user name, chọn role mà user thuộc ->Ok

Cỏc thao tỏc xúa, sửa thực hiện như cỏc đối tượng khỏc, để gỏn quyền cho user bạn cú thể chọn lại user vừa tạo cho CSDL sau đú vào nhấn vào Permissions.

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

2.2.5.3 Quản trị xuất, nhập, sao lưu, phục hồi dữ liệu.

a. Import –Nhập dữ liệu.

Dựng nhập dữ liệu từ ngoài vaof CSDL từ hệ quản trị CSDL khỏc hoặc CSDL khỏc của SQL Server.

- Chọn Databases -> All tasks -> Import Data...

- Next -> Chọn Data Source (Cú thể là SQL Server, Oracle, Access,...), trong vớ dụ minh họa chọn Access.

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

- Chọn tập tin (file name) -> Next

- Chọn Instance cần chuyển dữ liệu vào, user name., tờn CSDL (cú trước hoặc

tạo tại thời điểm này bằng cỏch chọn New) -> Next

- Chọn cỏch chuyển toàn bộ bảng dữ liệu hay thụng qua cõu lệnh truyờn vấn

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

- Chọn cỏc bảng, khung nhỡncần Import (cú thể lựa chọn một số chức năng khỏc

cụ thể hơn, bạn đọc tự tỡm hiểu), tờn cỏc bảng, khung nhỡn của SQL Server nhận dữ liệu -> Next.

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP (adsbygoogle = window.adsbygoogle || []).push({});

- Xem thụng bỏo sau khi chuyển -> Done

b. Export –Xuất dữ liệu.

Phần này giới thiệu kỹ thuật xuất dữ liệu từ một CSDL của SQL Server ra một hệ quản trị CSDL khỏc hoặc một CSDL khỏc của SQL Server. Tương tự như Import nhưng Export thực hiện Data Source là SQL Server, cũn Destination là hệ quản trị CSDL khỏc hoặc CSDL khỏc của SQL Server (phần này bạn đọc tự xem xột).

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP c. Cỏc mụ hỡnh phục hồi dữ liệu

+ Full Recovery model: Là mụ hỡnh phục hồi toàn bộ hoạt động giao dịch của dữ

liệu (Insert, Update, Delete, hoạt động bởi lệnh bcp, bulk insert).Với mụ hỡnh này ta cú

thể phục hồi dữ liệu tại một thời điểm trong quỏ khứ đó được lưu trong transaction log file.

+ Bulk-Logged Recovery Model: Mụ hỡnh này được thực thi cho cỏc thao tỏc bcp, bulk insert, create index, writetext, updatetext, cỏc hoạt động này chỉ nhật ký sự kiện vào log để biết mà khụng sao lưu toàn bộ dữ liệu, chi tiết như trong full recover. Cỏc sự kiện Insert, Update, Delete vẫn được nhật ký và khụi phục bỡnh thường.

+ Simple Recovery Model: Với mụ hỡnh này bạn chỉ phục hồi lại thời điểm backup gần nhất mà khụng theo thời điểm khỏc trong quỏ khứ.

Cỏch đặt mụ hỡnh khụi phục:

- Chọn CSDL.

- Nhấn nỳt phải chuột -> Properties -> Options -> Recovery

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

Xột vớ dụ sau:Giả sử ta cú một CSDL được backup theo chiến lược như hỡnh vẽ:

Nhỡn hỡnh trờn ta thấy CSDL được lập lịch Full Database Backup vào ngày chủ nhật, Differential Database Backup vào ngày thứ ba và thứ năm, cũn Log Database Backup vào 5 ngày trong tuần, ngày thứ sỏu cú sự cố với CSDL data file bị hỏng, vấn đề đặt ra là phải phục hồi dữ liệu và CSDL hoạt động bỡnh thường. Ta phải làm cỏc bước sau:

+ Thực hiện Backup log file (giả sử log file khụng bị hỏng). + Khụi phục Full Database của ngày chủ nhật.

+ Phục hồi Differential Database của ngày thứ năm.

+ Khụi phục Transaction log backup ngày thứ năm.

d. Sao lưu cơ sở dữ liệu

Trước khi xem xột kỹ thuật sao lưu CSDL, ta thống nhất một số thuật ngữ bằng tiếng Anh như sau:

+ Backup: Là quỏ trỡnh copy toàn bộ hoặc một phần database, transaction log, file, file group thành lập một backup set được chứa trong backup media (disk hoặc tape) bằng cỏch sử dụng một backup device (tape drive name hoặc physical filename).

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

+ Backup file: Một file chứa Backup set.

+ Backup media: LÀ Disk hoặc tape.

+ Backup set: Một bộ backup một lần backup đơn chứa trờn backup media. Cỏc bước thực hiện backup như sau:

- Chọn CSDL cần backup.

- Nhấn phải chuột -> All Tasks -> Backup Database…

- Nhập cỏc tham số, lựa chọn kiểu.

e. Phục hồi cơ sở dữ liệu

Là chức năng thực hiện khụi phục dữ liệu đó sao lưu, tựy theo chiến lược backup mà bạn cú thể phục hồi đến thời điểm nào, thu được bộ dữ liệu trong quỏ khứ như thế nào. Khụi phục dữ liệu được thực hiện theo thứ tự backup, thụng tin này được lưu trữ trong msdb. (adsbygoogle = window.adsbygoogle || []).push({});

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

Cỏc bướcthực hiện như sau:

- Chọn mục Databases -> Nhấn nỳt phải chuột -> All Tasks -> Restore

Database… - Nhập tham số, chọn mụ hỡnh khụi phục. 2.2.6 Ngụn ngữ SQL 2.2.6.1 Cỏc phộp toỏn định nghĩa CSDL o Lệnh tạo và xúa CSDL: - Tạo CSDL: Create Database <tờn CSDL> - Xúa CSDL Drop Database <tờn CSDL> - Vớ dụ:Tạo CSDL QuanLyNhanSu

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

o Lệnh tạo bảng: CREATE TABLE

o Để định nghĩa một bảng

- Tờn bảng

- Cỏc thuộc tớnh

• Tờn thuộc tớnh

• Kiểu dữ liệu

• Cỏc ràng buộc toàn vẹn trờn thuộc tớnh (RBTV)

o Cỳ phỏp CREATE TABLE <Tờn_bảng> ( <Tờn_cột> <Kiểu_dữ_liệu1>, <Tờn_cột> <Kiểu_dữ_liệu2>, ) o Kiểu dữ liệu

Char(w): Kiểu dữ liệu ký tự cú kớch thước cố định.

Varchar(w): Kiểu dữ liệu ký tự cú thay đổi từ 0 đến giỏ trị max là 2000 Number: Kiểu dữ liệu số

Int: Kiểu số nguyờn

Datetime: Kiểu dữ liệu ngày thỏng Logical: Kiểu dữ liệu logic (True/Flase) …

o Vớ dụ:Tạo bảng Nhõn Viờn với cỏc thuộc tớnh: Mó nhõn viờn, tờn nhõn viờn, Ngày sinh, địa chỉ, giới tớnh, lương, mó người quản lý, phũng ban.

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

CREATE TABLE NHANVIEN ( MANV CHAR(9), TENNV VARCHAR(50), NS DATETIME, DCHI VARCHAR(50), GT CHAR(3), LUONG INT, MA_NQL CHAR(9), PHG INT )

o Lệnh sửa bảng (ALTER TABLE ): Được dựng để thay đổi cấu trỳc bảng hoặc

thay đổi RBTV.

- Thờm cột

ALTER TABLE <Tờn_bảng>

ADD COLUMN <Tờn_cột> <Kiểu_dữ_liệu> [<RBTV>]

Vớ dụ: ALTER TABLE NHANVIEN

ADD COLUMN NGHENGHIEP CHAR(20)

- Xúa cột

ALTER TABLE <Tờn_bảng> DROP COLUMN <Tờn_cột>

Vớ dụ: ALTER TABLE NHANVIEN DROP COLUMN NGHENGHIEP (adsbygoogle = window.adsbygoogle || []).push({});

- Mở rộng cột

ALTER TABLE <Tờn_bảng> ALTER COLUMN

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

Vớ dụ: ALTER TABLE NHANVIEN ALTER COLUMN

NGHENGHIEP CHAR(50)

o Lệnh xúa bảng (DROP TABLE): Được dựng để xúa cấu trỳc bảng (Tất cả dữ

liệu của bảng cũng bị xúa)

Cỳ phỏp: DROPTABLE <Tờn_bảng>

Vớ dụ: DROP TABLE NHANVIEN

o Thờm một bộ (Insert Into)

Cõu lệnh INSERT INTO nhằm mục đớch chốn một bản ghi vào một bảng theo yờu cầu của người dựng.

Cỳ phỏp:

INSERT INTO tờn_bảng(Danh_sỏch_tờn_cột) VALUES (cỏc_giỏ_trị)[cõu_hỏi_con] Vớ dụ:

Lưu ý:Khi thờm cỏc bộ vào tất cả cỏc thuộc tớnh trong bảng, ta cú thể bỏ qua việc liệt kờ danh sỏch tờn cột (xem vớ dụ dưới).

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

o Xúa bản ghi ( Delete)

Mệnh đề xúa bản ghi cú thể được thực hiện cho một hoặc nhiều bản ghi thỏa món một điều kiện nào đú.

Cỳ phỏp:

DELETE tờn_bảng [FROM {tờn_bảng| view}] [WHERE biểu_thức_điều_kiện]

Vớ dụ:

o Sửa đổi dữ liệu ( Update)

Mệnh đề Update dựng để cập nhật (sửa đổi) lại dữ liệu đó tồn tại trong bảng. Khi UPDATE được sử dụng, nú thường đi với mệnh về Where.

Cỳ phỏp:

UPDATE tờn_bảng SET tờn_cột = biểu_thức [FROM tờn_bảng] [WHERE biểu_thức_điều_kiện]

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

Vớ dụ:

Lưu ý:Khi sử dụng lệnh Update mà khụng cú mệnh đề Where đi kốm thỡ mệnh đề Update sẽ ảnh hưởng đến toàn bộ cỏc thuộc tớnh nằm sau mệnh đề SET trờn tất cả cỏc bản ghi.

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

2.2.6.2 Truy vấn đơn giảna. Khối lệnh SELECT a. Khối lệnh SELECT

Cấutrỳc đơn giản nhất trong SQL là khối SELECT, được miờu tả về cỳ phỏp (adsbygoogle = window.adsbygoogle || []).push({});

nhưlà một khối select – from- where.

Một cỏch tổng quỏt khối select gồm ba mệnh đề chớnh:

- Select : Xỏc định nội dung cỏc cột cần đưa ra kết quả - From : Xỏc định cỏc bảng ( quan hệ) cần lấy thụng tin ra - Where : Xỏc định điều kiện cỏc bản ghi được chọn để đưa ra.

Ngoài ra, để mở rộng khả năng của ngụn ngữ, khối select- from- where cũn

được bổ sung thờm cỏc mệnh đề group by, order by, having, cỏc hàm mẫu và một số phần mềm cũn cú thờm cả mệnh đề compute, for browse. Trong cỏc phần sau sẽ trỡnh bày chi tiết từng mệnh đề.

Dạng tổng quỏt của khối select được biểu diễn như sau :

SELECT [*| DISTINCT] danh_sỏch_chiếu

FROM danh_sỏch_tờn_bảng| tờn_cỏc_view

[WHERE biểu_thức_điều_kiện]

[GROUP BY danh_sỏch_tờn_cột] [HAVING biểu_thức_điều_kiện]

[ORDER BY danh_sỏch_cụt [ASC|DESC]] Vớ dụ:

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

b. Tỡm kiếm khụng điều kiện

Trước hết làm quen với cỏc cõu hỏi chỉ liờn quan đến một bảng. Trong mệnh đề select cú danh sỏch chiếu. Danh sỏch này xỏc định tờn cỏc cột cần cú trong bảng kết

quả. Nếu xuất hiện giỏ trị ’*‘ (Select * from….) cú nghĩa là chọn toàn bộ cỏc cột của

bảng.

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

* Lưu ý:Sau khi thực hiện cõu lệnh SQL, để bảng đỳng là một quan hệ (cú nghĩa là khụng cú bộ giỏ trị nào trựng nhau) thỡ trong mệnh đề select ta dựng từ khúa

DISTINCT.

Vớ dụ:Cho bảng Nhanvien (MaNV, TenNV, Ngaysinh, Dchi, Luong, GT, MaPB)

Hiển thị bảng lương của nhõn viờn trong cụng ty? SELECT LUONG

FROM NHANVIEN

c. Tỡm kiếm với điều kiện đơn giản

Thụng thường, việc tỡm kiếm đoan giản chỉ cần thờm điều kiện vào sau từ khúa

where.

Trong SQL, cỏc phộp so sỏnh được sử dụng bao gồm >, < , >=, <=,<>.

Cỏc phộp toỏn logic: AND, OR, và NOT Cỏc từ khúa: BETWEEN … AND, IN,… Vớ dụ :

Tỡm kiếm trong bảng Employees những người cú lương (salary) lơn hơn 10000.

SELECT DISTINCT LUONG

FROM NHANVIEN LUONG 3.000.000 4.000.000 2.500.000 Kết quả: (adsbygoogle = window.adsbygoogle || []).push({});

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

d. Tỡm kiếm cú xử lý xõu ký tự

Xử lý xõu ký tự gần đỳng cũn được gọi là phộp tớnh ‘thụng minh’. Trong trường hợp người sử dụng khụng nhớ rừ tờn người hoặc địa danh… thỡ việc tỡm kiếm gần đỳng này mang lại rất nhiều lợi ớch.

Để thực hiện việc tỡm kiếm dần đỳng xõu ký tự, SQL sử dụng toỏn tử LIKE.

Cỳ phỏp:

Select …..From….Where …..LIKE ‘[ _ ][%]Xõu_ký_tự[%][ _ ]’

Khi sử dụng ký hiệu phần trăm (%) vớ dụ như: ‘Alex%’ thỡ điều này cú nghĩa là

chỳng ta đang thực hiện việc tỡm kiếm với điều kiện xõu ký tự bao gồm {Alex[xõu ký

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

theo sau nú là bất kỳ ký tự nào. Tương tự như % , khi sử dụng ký hiệu dấu gạch dưới

( _ ) thỡ mỗi dấu gạch này thể hiện cho mộtký tự.

Vớ dụ 1:

Vớ dụ 2:

SELECT MANV, TENNV FROM NHANVIEN

WHERE TenNV LIKE ‘Nguyen _ _ _ _’ Vớ dụ 3:

SELECT MANV, TENNV FROM NHANVIEN

WHERE TenNV LIKE ‘Nguyen %’

e. Tỡm kiếm nhờ sử dụng IN và BETWEEN

Ngoài việc sử dụng cỏc con số, xõu ký tự cụthể thỡ SQL cung cấp một số toỏn

tử giỳp việc diễn giải điều kiện đơn giản và ngắn gọn hơn cho người dựng, ở đõy sử

dụng toỏn tử IN và BETWEEN.

Toỏn tử In và Between cú cỳ phỏp như sau:

Select…..From….Where …. IN (Tập hợp)

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP

Vớ dụ 1: Cho bảng Nhanvien (MaNV, TenNV, Ngaysinh, GT, Luong, MaPB)

Tỡm những nhõn viờn nào cú lương từ 2 triệu đến 3 triệu đồng?

SELECT MANV, TENNV FROM NHANVIEN

WHERE Luong> 2.000.000 AND Luong< 3.000.000

 (adsbygoogle = window.adsbygoogle || []).push({});

SELECT MANV, TENNV FROM NHANVIEN

WHERE Luong BETWEEN 2.000.000 AND 3.000.000

Vớ dụ 2: Tỡm những nhõn viờn nào cú lương một trong 3 mức sau: 2 triệu, 3 triệu, 4 triệu đồng.

SELECT MANV, TENNV FROM NHANVIEN

WHERE Luong= 2.000.000 OR Luong= 3.000.000 OR Luong=4.000.000 

SELECT MANV, TENNV FROM NHANVIEN

WHERE Luong IN ( 2.000.000 , 3.000.000, 4.000.000) Vớ dụ 3:

KHOA CNTT –TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CễNG NGHIỆP f. Tỡm kiếm cú sắp xếp

Vấn đề đặt ra khi chỳng ta cần sắp xếp dữ liệu truy vấn theo một cỏch nào đú.

SQL cung cấp mệnh đề ORDER BY giỳp chỳng ta thực hiờn việc này.

Một phần của tài liệu Tài liệu học tập cơ sở dữ liệu (Trang 49)