Giáo trình CSDL - Phần 2: SQL Server

MỤC LỤC

BÀI 1: GIỚI THIỆU MICROSOFT SQL SERVER 2000.4

1.1 Tổng quan vềSQL Server 2000. .4

1.2 Các thành phần của SQL Server 2000.7

1.3 Kiến trúc của CSDL quan hệ(relational Database Architecture) .7

1.4 Giới thiệu vềTransact-Sql.11

BÀI 2: CÀI ĐẶT SQL SERVER 2000 .12

2.1 Lập kếhoạch cài đặt SQL SERVER 2000 .12

2.2 Quyết định những chọn lựa cấu hình cài đặt SQL SERVER 2000 .12

2.2.1 Xác định tài khoản người dùng (User account) thích hợp cho SQL Server

Sevice và SQL Server Agent Service.12

2.2.2 Chọn một chế độxác thực (Authentication Mode) .13

2.2.3 Xác định Collation .13

2.2.4 Chọn Network Libraries.13

2.2.5 Xác định client Licensing Mode .13

2.3 Các bước cài đặt SQL Server 2000. .13

2.4 Tạo tập tin cài đặt không tham dự(unattended) và cài đặt từxa (Remote) SQL

Server 2000.20

2.5 Kết quảcủa việc cài đặt SQL SERVER 2000 .21

BÀI 3: CÁC CÔNG CỤCỦA SQL SERVER.22

3.1 SQL ENTERPRISE MANAGER.22

3.2 SQL SERVER SERVICES MANAGER .22

3.2.1 Các dịch vụcủa SQL Server .23

3.2.2 Khởi động, tạm ngưng, dừng các dịch vụcủa SQL Server.24

3.3 OSQL.24

3.4 SQL QUERY ANALYZER .25

3.4.1 Giới thiệu.25

3.4.2 Khởi động Query Analyzer .26

3.4.3 Thành phần chính của Query Analyzer.26

3.4.4 Một vài phím nóng dùng trong Query Analyzer .28

BÀI 4: LÀM VIỆC VỚI CỞSỞDỮLIỆU SQL SERVER .29

4.1 Thiết kếmột cơsởdữliệu. .29

4.2 Cơsởdữliệu của SQL SERVER 2000 .31

4.3 Tạo, hiệu chỉnh cởsởdữliệu SQL SERVER.34

4.3.1 Giới thiệu.34

4.3.2 Tạo cơsởdữliệu .34

4.3.3 Thao tác trên cơsởdữliệu của SQL Server .37

BÀI 5: KIỂU DỮLIỆU – LÀM VIỆC VỚI BẢNG.41

5.1 Kiểu dữliệu (data type) .41

5.1.1 System-Supplied Datatype. .41

5.1.2 User-defined datatype. .42

5.2 Làm việc với bảng của SQL Server.43

5.2.1 Tạo một bảng mới .43

5.2.2 Hiệu chỉnh bảng .45

5.2.3 Xóa bảng khỏi cơsởdữliệu.46

5.3 Bảng tạm (Temporary Tables).46

BÀI 6: TOÀN VẸN DỮLIỆU.48

6.1 Giới thiệu toàn vẹn dữliệu (data Integrity) .48

6.2 Tìm hiểu các toàn vẹn dữliệu. .48

6.2.1 Định nghĩa NULL/NOT NULL .48

6.2.2 Giá trịmặc định (Default Values) .49

6.2.3 Thuộc tính Identity:.52

6.2.4 Check.53

6.2.5 Primary key Constraint.54

6.2.6 Unique Constraints.57

6.2.7 Foreign Key Constraint .58

BÀI 7: TRUY XUẤT CƠSỞDỮLIỆU CỦA SQL SERVER.61

7.1 Câu lệnh SELECT .61

7.2 Sửdụng JOINS đểtruy xuất dữliệu.66

7.3 Dùng Sub-Queries .68

7.4 Hiệu chỉnh dữliệu trong cơsởdữliệu của SQL SERVER.69

7.4.1 Chèn (INSERT) dữliệu vào CSDL.69

7.4.2 Cập nhật (UPDATE) dữliệu vào CSDL.71

7.4.3 Xóa dữliệu trong cơsởdữliệu.71

BÀI 8: KHUNG NHÌN - VIEW.73

8.1 Giới thiệu vềView.73

8.2 Tạo, hiệu chỉnh, xóa View.73

8.3 Tạo Partition view .74

8.4 Truy xuất dữliệu thông qua View.75

8.4.1 Xem dữliệu thông qua view. .75

8.4.2 Hiệu chỉnh dữliệu thông qua View. .75

BÀI 9: CHUYỂN ĐỔI DỮLIỆU .77

9.1 Khái niệm chuyển đổi và biến đổi dữliệu.77

9.1.1 Import/Export dữliệu.77

9.1.2 Biến đổi dữliệu (Data Transformations) .77

9.1.3 Các công cụchuyễn đổi dữliệu (Data transfer tools) .77

9.2 Dịch vụchuyển đổi dữliệu DTS (Data Transformation Services - DTS) .78

9.2.1 DTS Package.78

9.2.2 DTS Connections. .78

9.2.3 DTS Tasks.78

9.2.4 DTS Package Workflow.80

9.2.5 DTS Package Storage.80

9.3 Thực hiện việc biến đổi và chuyển đổi dữliệu bằng công cụ đồhọa DTS.80

9.3.1 DTS Import/Export Wizard.80

9.3.2 DTS Designer .81

9.4 Dùng BULK COPY (BCP) và BULK INSERT.88

BÀI 10: CƠBẢN VỀLẬP TRÌNH BẰNG TRANSACT- SQL.91

10.1 Khái niệm cơbản.91

10.1.1 Định danh -IDENTIFIERS. .91

10.1.2 Tham chiếu đến các đối tượng trong SQL Server. .91

10.1.3 Kiểu dữliệu (DATA TYPE).92

10.1.4 Batch .92

10.1.5 Kịch bản - SCRIPT .92

10.2 Biến (VARIABLES).92

10.3 Cấu trúc điều khiển.97

10.3.1 Khối BEGIN END .97

10.3.2 Phát biểu PRINT.97

10.3.3 Cấu trúc điều khiển IF ELSE.97

Giáo trình SQL Server2000 Trang 3

Trung Tâm CNTT - Trường ĐHCN Tp.HCM

10.3.4 Biểu thức CASE.99

10.3.5 Cấu trúc vòng lập WHILE .100

10.3.6 Lệnh RETURN .101

10.3.7 Lệnh WAITFOR .101

10.3.8 Lệnh RAISERROR.101

BÀI 11: PROCEDURES, FUNCTIONS.104

11.1 STORED PROCEDURES.104

11.1.1 Giới thiệu Stored proccedures.104

11.1.2 Tạo, thực thi, hiệu chỉnh, xóa stored procedures. .104

11.1.3 Tham sốvà biến trong Stored procedures.106

11.2 FUNCTIONS.110

11.2.1 Scalar Functions.111

11.2.2 Table-valued Functons.111

BÀI 12: TRANSACTIONS – LOCK.114

12.1 TRANSACTIONS.114

12.2 LOCK .116

BÀI 13: SỬDỤNG CURSORS ĐỂTRUY XUẤT DỮLIỆU.118

13.1 Khái niệm .118

13.2 Làm việc với T-SQL server cursors .119

13.3 Ví dụ. .121

BÀI 14: BẨY LỖI - TRIGGER .123

14.1 Giới thiệu vềtrigger.123

14.2 Tạo và quản lý các trigger .124

14.2.1 Tạo trigger.124

14.2.2 Quản lý trigger .125

14.3 Vài ví dụvềtrigger.125

BÀI 15: BẢO MẬT TRONG SQL SERVER .128

15.1 Khái niệm vềbảo mật.128

15.1.1 Mô hình truy cập bảo mật của SQL Server.128

15.1.2 Các chế độbảo mật.128

15.1.3 Tìm hiểu các Server-Wide Permission. .130

15.1.4 Tìm hiểu các quyền (Permission) chỉ định trên cởsởdữliệu. .131

15.1.5 Fixed Database Roles.132

15.2 Tạo tài khoản đăng nhập (Login). .133

15.2.1 Dùng Create Login Wizard.133

15.2.2 Dùng Enterprise Manager đểtạo một Login.137

15.2.3 Tạo Login bằng T-SQL.141

pdf147 trang | Chuyên mục: SQL Server | Chia sẻ: dkS00TYs | Lượt xem: 2335 | Lượt tải: 4download
Tóm tắt nội dung Giáo trình CSDL - Phần 2: SQL Server, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Ví dụ: 
 Sp_grantlogin 'CDCN4\Bill' 
SQL Server Logins 
Các thủ tục hệ thống sau cho phép cấp, hũy, từ chối, hiệu chỉnh một login kết với một tài 
khoản người dùng SQL Server. Chỉ có các thành viên của sysadmin hoặc securityadmin 
server roles mới có thể thực thi các thủ tục hệ thống này 
Thủ tục hệ thống Mô Tả 
Sp_addlogin 'login', ['password', 
'database', 'language', 'sid', 
encryption_option'] 
Tạo một login SQL Server mới. Password là NULL nếu 
không chỉ định. CSDL mặc định là master nếu không chỉ 
định. Ngôn ngữ mặc định là ngôn ngữ của server hiện hành 
nếu không chỉ định. Mặc định, password ở trong csdl 
master. 
Sp_droplogin 'login' Xóa một SQL Server login. 
Sp_password 'old_password', 
'new_password', 'login' Thêm hoặc thay đổi password cho SQL Server login. 
Sp_defaultdb 'login', 'database' Thay đổi CSDL mặc định 
Sp_defaultlanguage 'login', 
'language' Thay đổi ngôn ngữ mặc định. 
Ví dụ: 
 Sp_addlogin 'Joe', 'Joe123', 'Northwind' 
Tạo một SQL Server login mới có tên là Joe, với password là Joe123 và CSDL mặc định 
Northwind. 
Server Roles 
Các thủ tục hệ thống sau được dùng để thêm hay xóa một login vào một server role. Chỉ 
có thành viên của sysadmin server role mới có thể thêm các login vào bất kỳ server role. 
Các thành viên của server role cũng có thể thêm các login vào server role đó. 
Thủ tục hệ thống Mô tả 
Sp_ addsrvrolemember 'login', 'role' Thêm login như là tàhnh viên của server role. 
Sp_dropsrvrolemember 'login', 'role' Xoá login không là thành viên của một server role. 
Ví dụ: 
Sp_addsrvrolemember 'Joe', 'securityadmin' 
Thêm login có tên là Joe vào server role Security Administrator. 
Database Access 
Các thủ tục sau đây được dùng để thêm hay xóa một login (Windows hoặc SQL Server) 
hiện hữu được quyền truy xuất trong CSDL hiện hành. Không giống như SQL Server 
Enterprise Manager, bạn có thể cấp một nhóm của Windows 2000 (hoặc Windows NT 
4.0) group truy xuất đến CSDL mà không cần tạo login trước một cách tường minh trong 
Giáo trình SQL Server2000 Trang 143 
Trung Tâm CNTT - Trường ĐHCN Tp.HCM 
bảng sysxlogins. Chỉ có các thành viên của sysadmin server role, và db_accessadmin và 
db_owner fixed database role mới có thể thực thi các thủ tục hệ thống này. 
Thủ tục hệ thống Mô tả 
Sp_grantdbaccess 'login', 
'name_in_db' 
Thêm một login như là một user trong CSDL hiện hành. Mặc 
dù tên user name trong CSDL có thể khác với tên login, điều 
này không khuyến cáo. 
Sp_revokedbaccess 'name' Bỏ một login như là một user trong CSDL hiện hành. 
Ví dụ: 
 USE Northwind 
 EXEC Sp_grantdbaccess 'Joe' 
Cho phép login tên là Joe truy xuất đến CSDL hiện hành, dùng user name là Joe trong 
CSDL Northwind. 
Database Roles 
Các thủ tục hệ thống sau đây được dùng để thay đổi database owner, thêm hoặc xóa một 
tài khoản bảo mật vào một database role có sẳn, hoặc tạo hoặc xóa một user-defined 
database role. 
Use Northwind 
EXEC Sp_addrolemember 'db_securityadmin', ' CDCN4\KeToan' 
Thêm tài khoản CDCN4\KeToanvào db_securityadmin database role trogn CSDL 
Northwind. 
Thủ tục hệ thống Mô tả 
Sp_changedbowner 
'login', remap_alias_flag 
Thay đổi owner của một CSDL người dùng. Chỉ có những thành 
viên của sysadmin server role hoặc owner database hiện hành mới 
có thể thau đổi owner của CSDL. 
Sp_addrolemember 
'role', 'security_account' 
Thêm một tài khoản vào một database role trong CSDL hiện hành. 
Bạn có thể thêm một user-defined database role vào fixed hoặc 
user-defined database role. Chỉ có những thành viên của sysadmin 
server role và db_owner and db_security fixed database roles mới 
có thể thêm thành viên vào database role. Thành viên của database 
role có thể thành viên vào cho database role đó. 
Sp_droprolemember 
'role', 'security_account' 
Xóa một tài khoản từ một CSDL vào CSDL hiện hành. Chỉ có 
những thành viên của sysadmin server role và db_owner và 
db_security fixed dababase roles mới có thể xóa các thành viên ra 
khỏi database role. Các thành viên của database role mới có thể 
xóa các thành viên ra khỏi database role. 
Sp_addrole 'role', 
'owner' 
Thêm một user-defined database role mới trong CSDL hiện hành. 
Mặc dù bạn có thể chỉ định một owner của role, sử dụng mặc định 
là dbo là không được khuyến cáo. Các thành viên của sysadmin 
server role và db_securityadmin và db_owner fixed database roles 
mới có thể tạo user-defined database roles. 
Sp_droprole 'role' Xóa một user-defined database role ở CSDL hiện hành. Các tàhnh 
Giáo trình SQL Server2000 Trang 144 
Trung Tâm CNTT - Trường ĐHCN Tp.HCM 
Thủ tục hệ thống Mô tả 
viên của sysadmin server role, db_securityadmin và db_owner 
fixed database roles mới có thể xóa user-defined database roles. 
Để xem các thông tin về login, dùng các thủ tục hệ thống sau: 
Thủ tục hệ thống 
Mô tả 
Sp_helplogins [ 'login' ] 
Trả về các thông tin của tất cả các login hoặc một login được chỉ 
định, kể cả các CSDL mà login có truy xuất đến và các database 
roles mà login là thành viên. 
Sp_helpsrvrolemember [ 
'role' ] 
Trả về thông tin về tất cả các server roles và những thành viên 
của chúng hoặc tất cả các thành viên trong một server role chỉ 
định. 
Sp_helpuser [ 
'security_account' ] 
Trả về thông tin về tất cả các user hoặc user chỉ định trong 
CSDL hiện hành, kể cả tất cả các hội thành viên của database 
role. 
Sp_helprolemember [ 'role' 
] 
Trả về các thông tin của tất cả các database role hoặc tất cả các 
thành viên trong database role chỉ định trong CSDL hiện hành. 
Sp_helpntgroup [ 'name' ] Trả về các thông tin về các nhóm hoặc 1 nhóm chỉ định của Windows 2000 (hoặc Windows NT 4.0) trong CSDL hiện hành. 
Gán các quyền Database 
Các view và các stored procedure có thể được tạo trên các table. Khi một user cố gắng lấy 
thông tin thông qua view hoặc procedure, thì SQL Server 2000 phải kiểm tra user có được 
phép lấy dữ liệu hay không. Nếu view hoặc procedure được làm chủ bởi một user và của 
các bảng cơ sở lại là của một user khác thì SQL Server 2000 phải kiểm tra các quyền trên 
mỗi object trong dây chuyền đó. Khi một chuỗi các ownership kéo dài thì điều này sẽ ảnh 
hưởng đến việc thực hiện. Nhưng có lẽ quan trọng hơn là nó có thể bị gắt gối cho nhà 
quản trị vạch ra và gỡ lỗi các từ việc đưa ra bảo mật 
Các quyền về lệnh 
Câu lệnh Transact-
SQL Quyền để thực thi câu lệnh Transact-SQL 
CREATE 
DATABASE 
Thừa kế bởi thành viên của sysadmin và dbcreator server roles. Mặc 
dù sysadmin và securityadmin server roles có thể cấp quyền một cách 
trực tiếp cho các tài khoản để thực hiện câu lệnh này, Tóm lại các tài
khoản bảo mật sử dụng dbcreator server role nếu system 
administrator đại diện quyền. Quyền này chỉ tồn tại trong CSDL 
master. 
BACKUP 
DATABASE 
BACKUP LOG 
Kế thừa bởi các thành viên của sysadmin server role và db_owner và 
db_backupoperator fixed database roles. Mặc dù bạn có thể cấp quyền 
để chạy những câu lệnh này một cách trực tiếp đến các tài khoản bảo 
mật, một cách tổng quát bạn sẽ sử dụng db_backupoperator fixed 
database role. 
Giáo trình SQL Server2000 Trang 145 
Trung Tâm CNTT - Trường ĐHCN Tp.HCM 
Câu lệnh Transact-
SQL Quyền để thực thi câu lệnh Transact-SQL 
CREATE TABLE 
CREATE VIEW 
CREATE 
PROCEDURE 
CREATE 
DEFAULT 
CREATE RULE 
CREATE 
FUNCTION 
Kế thừa các thành viên của sysadmin server role và db_owner và 
db_ddladmin fixed database roles. Quyền cho phép tạo những đối 
tượng thì được cấp trực tiếp đến nhà lập trình trong suốt thời gian 
triển khai. Theo mặc định các object được làm chủ bởi người tạo ra 
đối tượng (mặc dù các đối tượng tạo bởi các thành viên của sysadmin 
server role thì chủ sẽ là dbo role). Các thành viên của db_owner hoặc 
db_ddladmin fixed database roles có thể được chỉ định dbo role như
là owner của đối tượng đựơc tạo. Ngoài ra, các thành viên của 
sysadmin server role hoặc db_owner hoặc db_ddladmin fixed 
database role có thể chỉ định bất kỳ user như là chủ của object mà 
chúng tạo ra. Tuy nhiên, các user mà không là thành viên của một 
trong các role này thì không thể chỉ định user khác hoặc dbo role làm 
chủ của object chúng tạo ra. 
CREATE 
TRIGGER 
Kế thừa bởi chủ của table mà của sysadmin server role, và db_owner 
and db_ddladmin fixed database roles. Những thành viên này không 
thể cấp quyền để chạy câu lệnh này cho những tài khoản bảo mật 
khác.. 
Ví dụ: 
CREATE TABLE Northwind.dbo.CustomerTable 
 (CustID nchar (5), CustomerName nvarchar (40)) 
Cho phép tạo một bảng, cấp ownership cho dbo role. Chỉ có những thành viên sysadmin 
server role và db_owner hoặc db_ddladmin fixed database roles có thể thực hiện một cách 
thành công câu lệnh này. 
Thay đổi Ownership của Object 
Một thành viên của db_owner, db_ddladmin, hoặc db_securityadmin fixed database role, 
hoặc a member of the sysadmin server role có thể thay đổi ownership của bất kỳ object 
trong bằng cách chạy thủ tục sp_changeobjectowner. 
sp_changeobjectowner 'CDCN4\KeToan.Customer', 'dbo' 
Đổi ownership của table Customer từ CDCN4\KeToanBill cho dbo role. 
Lưu ý 
Thay đổi owner của một object thì sẽ xó tất cả các quyền hiện có trên đối tượng. Nếu bạn 
cần giữ lại các quyền thì nên tạo Scrip trước khi đổi owner. 
Dùng Enterprise Manager đề Grant, Deny, or Revoke quyền lệnh 
Nhắp nút phải chuột tại CSDL cần thực hiện cấp/xoá/từ chối/xem các quyền 
Giáo trình SQL Server2000 Trang 146 
Trung Tâm CNTT - Trường ĐHCN Tp.HCM 
Hình 52: Trang Permission của hộp thoại thuộc tính của CSDL 
Dùng Transact-SQL để Grant, Deny, or Revoke các quyền 
Dùng câu lệnh GRANT CREATE TABLE TO …. 
 GRANT CREATE TABLE TO Joe, SalesManagers, 
 [CDCN4\SQLServerAdmins] 
Cấp quyền lệnh CREATE TABLE cho Joe (một SQL Server login), SalesManagers (a 
user-defined database role), và CDCN4\SQLServerAdmins (một Windows group). 
Xem các quyền bằng Transact-SQL : Dùng sp_helprotect 
 EXEC sp_helprotect NULL, NULL, NULL, 's' 
Xem tất cả các quyền câu lệnh trong CSDL hiện hành. 

File đính kèm:

  • pdfGiáo trình CSDL - Phần 2_SQL Server.pdf
Tài liệu liên quan