Trong Visual Basic có thể bạn sẽ ít dùng trực tiếp các hàm, thủ tục do Windows API cung cấp nhưng trong Visual C++ thì gần như liên tục sử dụng các hàm, thủ tục này để ứng dụng của bạn g
Trang 1***
GIÁO TRÌNH
SQL SERVER VÀ QUẢN TRỊ
Trang 2MỤC LỤC
CHƯƠNG I: GIỚI THIỆU CHUNG VỀ SQL SERVER 4
I SQL SERVER LÀ GÌ? 4
1 Lịch sử phát triển 4
2 Đặc điểm của SQL Server và đối tượng làm việc 5
2.1 Đặc điểm 5
2.2 Đối tượng làm việc của SQL Server 5
II MÔ HÌNH CƠ SỞ DỮ LIỆU CLIENT-SERVER 5
1 Client-side 5
2 Server-side 6
III CÁC KIỂU DỮ LIỆU CƠ BẢN CỦA SQL 6
1 DB-Library Interface 7
2 SQL OLE Interface 7
3 ODBC - Open database connectivity 7
3.1 ODBC là gì ? 7
3.2 Kiến trúc của ODBC 9
3.3 Các thành phần cơ bản trong kiến trúc của ODBC 10
CHƯƠNG II: SQL SERVER VỚI HỆ ĐIỀU HÀNH MẠNG VÀ TÍNH BẢO MẬT TRUY XUẤT CSDL 13
I SQL SERVER CÓ 3 CHẾ ĐỘ BẢO MẬT 13
1 Standard 13
2 Windows NT Integrated 13
3 Mixed 14
II SQL SERVER VỚI HỆ ĐIỀU HÀNH MẠNG 14
Trang 31 Quản lý đĩa 14
2 Một extent là một nhóm gồm 8 trang này như sau 15
2.1 Thiết bị cơ sở dữ liệu( database device) 15
2.2 Thiết bị sao lưu( Dump device) 16
2.3 Sự chiếu đĩa của hệ điều hành 21
2.4 Sự phân đôi hệ điều hành 21
2.5 Sự phản chiếu log giao tác 23
2.6 Phản chiếu và lưu dự phòng 24
2.7 Các phân đoạn( Segment) 24
2.8 Các kiểu hệ thống file 25
CHƯƠNG III: CÀI ĐẶT VÀ QUẢN TRỊ SQL SERVER 27
I TẠO VÀ QUẢN LÝ CÁC USER ACCOUNT 27
1 Sử dụng GROUP để quản lý các user 28
2 Sử dụng GRANT và REVOKE để gán hay loại bỏ một quyền 29
II CHUYỂN TỪ MỘT DATABASE MICROSOFT ACCESS THÀNH DATABASE SQL SERVER 32
III GIỚI THIỆU CÁC TẬP LỆNH CƠ BẢN CỦA SQL 33
1 Lệnh SELECT 34
2 Nhóm lệnh INSERT, UPDATE, DELETE: 37
3 Nhóm lệnh CREATE, ALTER, DROP: 38
3.1 Lệnh CREATE 38
3.2 Lệnh ALTER 40
3.3 Lệnh DROP 41
4 Tập lệnh GRANT,REVOKE 41
IV CÀI ĐẶT MÁY CHỦ SQL VÀ CÁCH SỬ DỤNG TOOL QUẢN TRỊ 42
Trang 41 Hướng dẫn cài đặt máy chủ SQL Server trên môi trường NT, Cấu
hình SQL Client 42
2 Phần cài đặt SQL Server bao gồm các bước sau: 42
V CÁCH CÀI ĐẶT SQL CLIENT 49
VI GIỚI THIỆU MỘT SỐ CHỨC NĂNG QUẢN TRỊ SQL SERVER 55
1.Tạo lập một Database mới 57
2.Tạo lập User Database & Group Database 58
3.Quản trị các database và quyền chia sẻ: 59
4.Các hiển thị biểu đồ Database 60
Trang 5CHƯƠNG I: GIỚI THIỆU CHUNG VỀ SQL SERVER
I SQL SERVER LÀ GÌ?
SQL Server là viết tắt của Structure Query Language,nó là một công cụ quản lý dữ liệu được sử dụng phổ biến ở nhiều lĩnh vực Hầu hết các ngôn ngữ bậc cao đều có trình hỗ trợ SQL như Visual BASic,Oracle,Visual C Các chương trình ứng dụng và các công cụ quản trị CSDL 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 những ứng dụng đó khi chạy phải sử dụng SQL
1 1 Lịch sử phát triển
SQL Server được phát triển từ ngôn ngữ SEQUEL2 bởi IBM theo mô hình Codd tại trung tâm nghiên cứu của IBM ở California ,vào những năm 70 cho hệ thống QTCSDL lớn
Đầu tiên SQL Server được sử dụng trong các ngôn ngữ quản lý CSDL
và chạy trên các máy đơn lẻ Song do sự phát triển nhanh chóng của nhu cầu xây dựng những CSDL lớn theo mô hình khách chủ( trong mô hình này toàn
bộ CSDL được tập trung trên máy chủ (Server)) Mọi thao tác xử lý dữ liệu được thực hiện trên máy chủ bằng các lệnh SQL máy trạm chỉ dùng để cập nhập hoặc lấy thông tin từ máy chủ) Ngày nay trong các ngôn ngữ lập trình bậc cao đều có sự trợ giúp của SQL Nhất là trong lĩnh vực phát triển của Internet ngôn ngữ SQL càng đóng vai trò quan trọng hơn Nó được sử dụng
để nhanh chóng tạo các trang Web động
SQL đã được viện tiêu chuẩn quốc gia Mỹ (ANSI)và tổ chức tiêu chuẩn quốc tế (ISO) chấp nhận như một ngôn ngữ chuẩn cho CSDL quan hệ Nhưng cho đến nay chuẩn này chưa đưa ra đủ 100%.Nên các SQL nhúng trong các ngôn ngữ lập trình khác nhau đã được bổ xung mở rộng cho SQL chuẩn cho phù hợp với các ứng dụng của mình.Do vậy có sự khác nhau rõ ràng giưã các SQL
Trang 62 2 Đặc điểm của SQL Server và đối tượng làm việc
2.1 Đặc điểm
• SQL là ngôn ngữ tựa tiếng Anh
• SQL là ngôn ngữ phi thủ tục, nó không yêu cầu ta cách thức truy nhập CSDL như thế nào Tất cả các thông báo của SQL đều rất dễ sử dụng và ít khả năng mắc lỗi
• SQL cung cấp tập lệnh phong phú cho các công việc hỏi đáp DL
+ Chèn, cập nhật, xoá các hàng trong một quan hệ + Tạo, sửa đổi, thêm và xoá các đối tượng trong của CSDL
+Điều khiển việc truy nhập tới cơ sở dữ liệu và các đối tượng của CSDL để đảm bảo tính bảo mật của cơ sở DL
+đảm bảo tính nhất quán và sự ràng buộc của CSDL
• Yêu cầu duy nhất để sử dụng cho các hỏi đáp là phải nắm vững được các cấu trúc CSDL của mình
2.2 Đối tượng làm việc của SQL Server
Là các bảng ( tổng quát là các quan hệ )dữ liệu hai chiêù Các bảng này bao gồm một hoặc nhiều cột và hàng.Các cột gọi là các trường ,các hàng gọi
là các bản ghi.Cột với tên gọi và kiểu dữ liệu (kiểu dl của mỗi cột là duy nhất)xác định tạo nên cấu trúc của bảng (Ta có thể dùng lệnh Desc[ribe] TABLE-name để xem cấu trúc của bảng ,phần tuỳ chọn[] có thể được bỏ trong Oracle).Khi bảng đã được tổ chức hệ thống cho một mục đích nào đó có một CSDL
II MÔ HÌNH CƠ SỞ DỮ LIỆU CLIENT-SERVER
SQL Server là hệ quản trị cơ sở dữ liệu theo mô hình client-server Phân chia công việc giữa client và server như sau:
Trang 7• Phải làm việc với các result set hơn là làm việc trực tiếp trên các bảng của database
• Phải làm mọi thao tác xử lý dữ liệu
• Cung cấp tất cả định dạng của dữ liệu và thông tin cần thiết để tạo report
2 Server-side
• Database engine đảm nhiệm việc lưu trữ (storage), cập nhật (update)
và cung cấp (retrieval) thông tin trong hệ thống
• Tạo result set theo yêu cầu của ứng dụng client
• Không có giao diện người dùng (user interface) Tự thân SQL Server là không có giao diện người dùng, ngoại trừ một số tool giúp admin quản trị hệ thống
• Hoàn toàn độc lập với các ứng dụng client
• Không chịu trách nhiệm việc hiển thị thông tin cho người dùng từ các kết quả thực thi các query
III CÁC KIỂU DỮ LIỆU CƠ BẢN CỦA SQL
- Integer:Số nguyên:-2147483648 đến 2147483647
- Smallinteger:-32768 đến 32767
- Number(n,p):số thập phân độ dài tối đa là n kể cả p chữ số thập
phân(không tính dấu chấm)
- char (n):xâu có độ dàI cố định là n n<=255
- varchar(n):xâu có độ dàI biến đổi (0-:-n)
- long varchar :xâu có độ dài không cố định,độ dài có thể thay đổi
4Kb-:-32Kb
- Date:Dữ liệu kiểu ngày
IV LÀM VIỆC VỚI SQL SERVER Client làm việc với SQL Server thông qua 3 phương thức sau:
• DB-Library
Trang 8• ODBC
• SQL OLE
1 DB-Library Interface
DB-Library hoặc gọi tắt DB-LIB là một thư viện API cho cả hai C và
VB cho phép làm việc trực tiếp với SQL Server Thư viện API cung cấp nhiều tool cần thiết giúp ta có thể gởi các query và nhận thông tin trả lời từ SQL Server, cũng như cho phép trích lọc dữ liệu từ các result set
Để sử dụng DB-LIB cần include những file sau đây vào project:
C Visual Basic SQLDB.H VBSQL.OCX SQLFRONT.H VBSQL.BAS
2 SQL OLE Interface
SQL OLE interface là công cụ phát triển mới cho các nhà phát triển ứng dụng dựa trên SQL Server theo tiếp cận hướng đối tượng SQL OLE interface cho phép ta làm việc với SQL Server thông qua sử dụng các object, method và collection của database làm việc
Bằng cách include Type Library (TLB) vào trong môi trường ứng dụng,
ta có thể sử dụng các đối tượng OLE automation để làm việc với SQL Server TLB cho các ứng dụng Visual Basic là SQLOLE32.TLB
3 ODBC - Open database connectivity
Trang 9quả các khả năng đặc trưng của DBMS do họ cung cấp (ví dụ Oracle OCI, Sybase DB-Library là các native API)
Các bạn đã làm quen với Windows API khi lập trình trong môi trường Windows Trong Visual Basic có thể bạn sẽ ít dùng trực tiếp các hàm, thủ tục
do Windows API cung cấp nhưng trong Visual C++ thì gần như liên tục sử dụng các hàm, thủ tục này để ứng dụng của bạn giao tiếp được với hệ điều hành Windows và để tạo ra các giao diện của người sử dụng Cho ví dụ, trong vấn đề hiển thị video để đưa ra một cửa sổ trên màn hình thì bạn không cần phải biết đến loại màn hình nào đang được sử dụng, Windows API cung cấp cho bạn khả năng hiển thị video độc lập với các thiết bị Cũng tương tự như vậy, ODBC là một Database API chuẩn, nó cung cấp cho các bạn khả năng truy nhập đến các CSDL một cách độc lập với các DBMS, qua ODBC các bạn có thể truy xuất được tới các CSDL trên các DBMS khác nhau
Các đặc điểm của ODBC:
• ODBC là một giao diện lập trình sử dụng SQL: ODBC sẽ sử dụng các lệnh SQL để truy xuất các CSDL
• ODBC tách các nhà phát triển ứng dụng khỏi sự phức tạp của việc kết nối tới một nguồn dữ liệu : Mục tiêu chính được đề cho ODBC là
nó phải dễ dàng cho người lập trình ứng dụng có thể tạo ra các kết nối của người sử dụng cuối tới nguồn dữ liệu thích hợp mà không phải trở thành một chuyên gia về mạng
• Kiến trúc của ODBC cho phép nhiều ứng dụng truy xuất nhiều
nguồn dữ liệu
Truy xuất nhiều DBMS không có ODBC:
API 3 API 2
Trang 10Truy xuất nhiều DBMS với ODBC:
ODBC
• ODBC cung cấp một mô hình lập trình "thích ứng" (adaptive): ODBC
cung cấp các chức năng mà nó có thể được sử dụng với tất cả các DBMS trong khi vẫn cho phép một ứng dụng khai thác các khả năng riêng của mỗi DBMS Nó cung cấp các interrogation function mà một ứng dụng có thể chủ động sử dụng để xác định các khả năng của một DBMS Các interrogation function cho phép một ứng dụng hỏi một driver về một vài chức năng đặc biệt có được cung cấp trong một DBMS nào đó hay không
3.2 Kiến trúc của ODBC
ODBC ĐƯỢC XÂY DỰNG TRÊN MÔ HÌNH KIẾN TRÚC LIENT/SERVER
Trong kiến trúc Client/Server bao gồm một một client, một server, và một data protocol mà nó cho phép client và server giao tiếp với nhau Mô hình này rất lý tưởng cho một Traditional Relational DBMS, trong đó một mạng vật lý kết nối client PC tới DBMS ở trên một máy khác ODBC được thiết kế để sử dụng với các hệ thống nằm trong mô hình kiến trúc client/server, đáp ứng được các yêu cầu cần thiết cho các Traditional Relational DBMS như:
• Cung cấp một standard API
• Khai thác tất cả các chức năng của bất cứ một DBMS nào
Trang 11• Cung cấp một sự thực thi tương đương với native API của bất cứ một DBMS nào
Kiến trúc của ODBC đặt trên nền tảng mô hình kiến trúc client/server
và sự đảm nhận cho bất cứ một giao diện lập trình nào cũng có thể phát và thu trên giao thức truyền dữ liệu của bất cứ một SQL DBMS, sẽ hoạt động và thực thi như native API cho DBMS đó
ODBC không chỉ giới hạn với các client/server DBMS, nó cũng làm việc với các desktop database và các file-oriented store như bảng tính và text
ODBC Drivers
Server
Data Data Source
Client
CLIENT/SERVER DBMS FILE - ORIENTED DATA STORE
Trang 12Applications: Các ứng dụng đảm nhận việc tương tác với người sử
dụng qua user interface và gọi các ODBC function để đưa ra các câu lệnh SQL và nhận các kết quả trả về
Driver Manager: Như tên gọi của nó, nhiệm vụ của nó là quản lý sự
tương tác giữa các chương trình ứng dụng và các driver, nhiều ứng dụng và nhiều driver có thể được quản lý cùng một lúc Driver Manager cung cấp sự liên kết giữa các ứng dụng và các driver, cho phép nhiều ứng dụng truy xuất
dữ liệu qua nhiều driver Driver Manager load hay unload một hoặc nhiều driver cho một hoặc nhiều ứng dụng Khi một ứng dụng cần truy xuất một nguồn dữ liệu, Driver Manager sẽ load đúng driver cần thiết Driver Manager xác định các ODBC function được cung cấp bởi driver đó và ghi các địa chỉ trong bộ nhớ của chúng vào một bảng Khi một ứng dụng gọi một function trong một driver, Driver Manager sẽ xác định vào gọi function đó Bằng cách này, nhiều driver có thể được quản lý đồng thời và người lập trình ứng dụng không phải lo lắng đến việc quản lý chi tiết các từng driver Một ứng dụng có thể sử dụng ODBC tại cùng một thời điểm với một ứng dụng khác mà không cần phải biết đến ứng dụng này
Drivers: Các driver xử lý các ODBC function được gọi, đưa ra các yêu
cầu SQL để chỉ định các nguồn dữ liệu, và trả về kết quả cho các ứng dụng Các driver cũng đảm nhận việc tương tác với bất cứ các lớp phần mềm nào cần thiết để truy xuất nguồn dữ liệu
Data sources: Bao gồm các tập hợp dữ liệu và các môi trường tương
ứng của chúng, bao gồm các hệ điều hành, các DBMS, và các phần mềm mạng
- Open Database Connectivity (ODBC) với SQL Server
ODBC là một giao diện lập trình (programming interface) cho phép ứng dụng có thể truy xuất data từ các hệ quản trị cơ sở dữ liệu sử dụng SQL (Structured Query Language) như là phương thức chuẩn để truy xuất data
ODBC có thể xem như là một lớp trừu tượng giữa ứng dụng và hệ quản trị cơ sở dữ liệu ODBC chịu trách nhiệm nhận yêu cầu từ ứng dụng và chuyển đổi nó sang ngôn ngữ (SQL) mà database engine có thể hiểu được và dùng nó để lấy thông tin từ database Làm việc với ODBC ta chỉ cần viết các phát biểu SQL chuẩn và sau đó chuyển các phát biểu đó đến ODBC, toàn bộ công việc hậu trường, làm thế nào để lấy được thông tin từ database do ODBC đảm nhiệm
Trang 13Mỗi loại database engin có một ODBC driver tương ứng Database kết hợp với ODBC driver tương ứng cho nó được gọi là Data Source Name (DSN) ứng dụng muốn làm việc với ODBC trước hết phải mở một connection đến ODBC, trong đó cần khai báo DSN, UserID và Password
Web server là client của SQL Server cho dù cùng chạy trên một hệ thống Các ứng dụng Web đều truy xuất database thông qua ODBC, ADO là một ví dụ, các sản phẩm front-end như Borland’s Delphi, Microsoft Visual Basic đều dùng ODBC để truy xuất SQL Server ODBC thực sự đã trở thành một chuẩn trong việc truy xuất database
Trang 14CHƯƠNG II: SQL SERVER VỚI HỆ ĐIỀU HÀNH MẠNG VÀ TÍNH BẢO MẬT TRUY XUẤT CSDL
Khi xây dựng các ứng dụng Web-database, cần chú ý đến việc bảo mật,
có 3 mức bảo mật tại 3 nơi gồm:
- Web Server (do IIS đảm nhiệm)
- Hệ điều hành (ở đây là Windows NT Server đảm nhiệm)
- Truy xuất dữ liệu (do SQL Server đảm nhiệm)
Mức thứ nhất: bảo mật trên Web server được kể đến là dịch vụ SSL (Secure Socket Layer) cung cấp cơ chế mã hóa dữ liệu truyền giữa server và client
Mức thứ hai: Windows NT Server kiểm tra account và ngăn cấm các login không hợp lệ vào các domain không được phép
Mức thứ ba: là mức truy xuất dữ liệu trên các object của database
I SQL SERVER CÓ 3 CHẾ ĐỘ BẢO MẬT
1 Standard
Là default mode, ở chế độ này SQL Server đảm trách toàn bộ việc quản
lý các account của nó, SQL server xác nhận một user và kiểm tra password/login trên tất cả connection đến SQL Server
Trang 15Việc gán các quyền truy cập vào SQL server cho một login vào NT server tạo
ra một login được ủy quyền, connection thông qua login được ủy quyền gọi là kết nối được ủy thác (trusted connection) Khi một user thiết lập được một connection ủy thác đến SQL server, user có thể:
1- Được gắn với một login của SQL server hiện hành trên server nếu tên login được so trùng với account của user
2- Kết nối với login mặc định (thường là guest)
3- Kết nối với login SA nếu user là Adminitrator trên NT server
Hầu hết các thao tác gán quyền cho mỗi user như quyền truy xuất vào các bảng, view, hay các object khác của database đều được quản lý bằng SQL server giống như trong chế độ Standard
II SQL SERVER VỚI HỆ ĐIỀU HÀNH MẠNG
Chúng ta cũng sẽ xem xét cách sử dụng diện tích DBCC để tăng thêm kiến thức về môi trường đĩa.Tiếp theo chúng ta sẽ tiếp tục với các hệ số điền chỉ mục và sự phân đoạn Sau các chủ đề này là một loạt các chủ đIểm khác
về nhập xuất bao gồm nhập xuất không đồng bộ, tiến trình lazywrite của SQL Server và read- ahead(đọc trước)SQL Server cung cấp cho người quản
Trang 16lýnhiều số liệu thống kê và tham số cấu hình để báo cáo về điều khiển việc nhập xuất Chúng ta sẽ kết thúc chương này bằng một số giảng giảI về những thuận lợi và bất lợi của việc lưu trữ tempdb trong RAM
Các khái niêm lưu trữ đĩa
Trước hết bắt đầu thảo luận về các thảo luận về cách cài đặt và bảo quản đĩa SQL Server một cách hữu hiệu nhất chúng ta sẽ định nghĩa một số kháI niệm và thuật ngữ đĩa quan trọng
Trang (page)
Trang là đơn vị đo nhỏ nhất đối với việc lưu trữ đĩa SQL Server các trang có kích cỡ 2k và có thể chữa dữ liệu hay chỉ mục Bạn không thể thay đổi kích cỡ file.Khi SQLServer đọc hay ghi dữ liệu nó thường thực hiện các tác vụ nàỷ mức đọ trang
Khi bạn tạo cơ sở dữ liệu lần đầu.SQL Server khởi tạo tất cả các bit trên tất cả các trang trên thiết bị là 0 Tuy nhiên có hai loai lệ sau
1 Nếu bạn đã xác lập tuỳ chọn “ creat for load ’’khi bạn chon phương
án này SQL Server lướt qua phần khởi tạo đĩa của thao tác tạo cơ sở dữ liệu
2 Nếu thiết bị đã có thông tin Nếu SQL Server tìm thấy có dữ liệu cũ trên thiết bị này, nó bỏ qua giai đoạn xóa
Thiết bị ( Delive)
Một số thiết bị là một file hệ điều hành Windows NT hay là một ổ băng từ SQL Server sử dụng hai loại thiết bị cơ sở dữ liệu và các thiết bị sao lưu
2.1 Thiết bị cơ sở dữ liệu( database device)
Một hệ thống cơ sở dữ liệu là một vùng đĩa do người quản lý SQL Server ấn định Nó có thể hỗ trợ một phần hay toàn bộ cơ sở dữ liệu Bạn có
Trang 17thể tìm hiểu về các thiết bị hiện có của bạn bằng cách sử dụng SQL Enterprise Manager hay bằng cách chạy thủ tục có sẵn “ sp_helpdevice”
Kích cỡ tối thiểu của một thiết bị cơ sở dữ liệu là một megabyte
2.2 Thiết bị sao lưu( Dump device)
Một thiết bị sao lưu là một nơi trên đĩa, đĩa mềm hay bằng từ mà SQL Server sử dụng để lưu dữ phòng dữ liệu hay ghi toàn tác Có hai yếu tố quan trọng của việc quản lý hệ thống Bạn có thể tạo các thiết bị sao lưu bằng cách
sử dụng màn hình Creat Dump Device trong SQL Enterprise Manager hay bằng cách chạy thủ tục có sẵn
Thiết bị sao lưu ( Dump device)
Một thiết bị sao lưu là một nơi trên đĩa, đĩa mềm hay bằng từ mà SQL Server sử dụng để lưu dự phòng dữ liệu hay ghi toán tác Có hai yếu tố quan trọng của việc quản lý hệ thống Bạn có thể tạo các thiết bị sao lưu bằng cách sử dụng màn hình Create Dump Device trong SQL Enterprise Manager: Trong thiết bị dưới đây chúng ta tạo một thiết bị băng từ cần sử dụng
để saop lưu dữ toàn tác bạn có thể lấy một danh sách gồm các thiết bị sao lưu có sẵn bă ngf cách sử dụng màn hình SQL Enterpise Manage Server Manage Bạn cũng có thể nhận biết những nội dung nào đã được gửi đến thiết
bị sao lưu này bằng cách nhập vào dấu “+” của thiết bị
Trong trường hợp này chúng ta đã sao lưu các cơ sở dữ liệu” master “
và “ megasyne” vào thiết bị “log_dump_device”đã sao lưu logtoàn tác “ megasyne” vào thiết bị log _dump_ device”
Nếu bạn thích sử dụng các thủ tục có sẵn để quản lý thiết bị sao lưu bạn có thể sử dụng thủ tục “ sp_ adddump_ device “ để tạo thiết bị mới “ sp_dropdevice” để xoá nó và “ sp_ helpdevice” để truy tìm các thiết bị sao lưu hiện có
Các thiết bị mặc định
Khi bạn tạo một thiết bị cơ sở dữ liệu, bạn có thể bổ sung nó vào vùng chứa các thiết bị có sẵn mà SQL Server có thể sử dụng cho các cơ sở dữ liệu sau này Các tbiết bị này được coi như là mặc định SQL Server chọn từ danh sách này theo thứ tự abc , tiếp tục di chuyển khi mỗi thiết bị đầy Bạn có thể chỉ định một thiết bị cần bổ sung vào vùng chứa các thiết bị cần bổ sung vào vùng chứa các thiết bị mặc định bằng cách đánh dấu kiểm vào việc Default
Trang 18Device khi bạn tạo thiết bị Chẳng hạn trong trường hợp sau, chúng ta đã yêu cầu SQL Server bổ sung “ dbdevice5” vào danh sách các thiết bị mặc định:
Để xoá bỏ một thiết bị ra khỏi danh sách mặc định, bạn chỉ cần xoá chọn hộp kiểm định Default Device một cách để thay đôỉ mối quan hệ của một thiết bị với danh sách thiết bị mặc định là sử dụng thủ tục có sẵn
“sp_diskdefault”
Thiết bị null( Null device)
SQL Server cung cấp một thiết bị sao lưu mà bạn có thể sử dụng để sao lưu nhanh chóng các cơ sở dữ liệu thiết bị này được gọi là thiết bị null có tên logic là DISKDUMP rất nhanh nhưng nó cũng có nghĩa rằng bạn sẽ không thể phục hồi lạI từ thiết bị sau này
Cơ sở dữ liệu
Một cơ sở dữ liệu là một nhóm gồm các bảng biểuvà đối tượng do người quản lý SQL Server ấn định Các cơ sở dữ liệu có thể nằm hoàn toàn trên một thiết bị cơ sở dữ liệu, hoặc chúng có thể trảI rộng ra nhiều thiết bị cơ
sở dữ liệu
Trang trên cơ sở dữ liệu”payroll” nằm trên cả hai thiết bị “ device1 và device2” Ngược lạI cả hai cơ sở dữ liệu “ logicstics”và “accounts payable” đều chỉ nằm gọn trên một thiết bị
Tên vật lý
Tên vật lý cho biết tên thực của file hệ điều hành windows NTtên vật lý chứa toàn bộ đường dẫn Một số tên vật lý mẫu như sau
C:\DATA\ DBSPACE1 BAT
E:\DEVICE\ SQSERVER\MAINFILE DAT
Trang 19Các tuỳ chọn lưu trữ đĩa
Cấp độ 1: Cấp độ này cung cấp sự phản chiếu đĩa cài sẵn, bất kỳ khi nào SQL Server vào đĩa sơ cấp thì nó cũng ghi vào đĩa thứ cấp Điều này dữ đồng bộ cho cả hai ổ đĩa Theo quan điểm thực thi, các thao tác ghi có thể xuống cấp từ từ, vì hệ thống bây giờ phảI thực hiện cả hai thao tác ghi, chứ không phải mộ Tuy nhiên thao tác đọc có thể cải tiến được vì hệ thống bây giờ có hai nơi để tìm kiếm thông tin và do đó giảm bớt khả năng ấn đĩa Nêu các trình ứng dụng tiêu biểu mất nhiều thời gian để đọc dữ liệu hơn thì sự xuống cấp của thao tác ghi được bù lại bởi sự cải tiến của thao tác đọc
Cấp độ 2: Cấp độ này giới thiệu logic chỉnh sửa lỗi cơ bản.Dữ liệu được phân chia trong số các ổ đĩa và mã chỉnh sửa lỗi được bổ sung mã chỉnh sửa lỗi yêu cầu bạn gắn dữ liệu cho nhiều đĩa điều này làm giảm bớt khả năng thất thoát dữ liệu, nhưng sự thực thi của cấp độ này không tốt bằng cấp
Cấp độ 5: Cấp độ này tương tự cấp độ không, với một thuận lợi bổ sung
là chỉnh sửa lỗi tinh vi hơn
Trang 20Sự thực thi RAID
Bất kể bạn chọn cấp độ nào của RAID bạn quyết định nên thực thi chiến thuật này qua phần cứng hay hệ điều hành, sau này là những thuận lợi
và bất lợi của mỗi phương pháp
RAID dựa trên phần cứng
Khi bạ chọn RAID dựa trên phần cứng, bộ điều khiển bộ đĩa quản lý các thao tác RAID thực sự Các bộ điều khiển RAID này trị giá hơn các bộ điều khiển ổ đĩa chuẩn Tuy nhiên, chi phí thêm này không đáng kể so với những thuận lợi thu được về sự thực thi, vì bộ điều khiển này xử lý các tiến trình RAM bổ sung bên trong phần cứng, thay vì tỉêu thụ lượng thời gian quý bàu của CPU trong hệ thống điều chỉnh Điều này có nghĩa hệ điều hành không hoàn toàn nhận biết được công việc bổ sung do bộ điều khiển đĩa thực hiện
RAID dựa trên hệ điều hành
Khi bạn gắn tác vụ quản lý RAIDcho Window NT, hệ điều hành chịu trách nhiệm bảo quản tính tương đương và độ tin cậy.Mặc dù điều này có thể đem lạI cho CPU một gánh nặn, nhưng nó giảm bớt số chi phí cho các bộ điều khiển đĩa RAID nâng cao mà phương pháp phần cứng yêu cầu.Tuy nhiên, nếu mục đích của bạn là nâng cao toàn bộ năng suất thì các chi phí thêm về cứng thường không quan trọng bằng khả năng trì tuệ khi bạn buộc hệ điều hành và CPU thực hiện bảo quản RAID
Sự kẻ sọc đĩa của hệ điều hành
Người quản lý có thể sử dụngkẻ sọc của Window NT để nâng cao sự nhập xuất khi bạn cài đặt disk striping bạn đang yêu cầu hệ điều hành trải dữ liệu ra làm nhiều đĩa, mà đến lượt nó có thể loại bỏ các trở ngại tiềm năng Gỉa sử bạn có ổ đĩa C,D,E và F để nâng cao tốc độ nhập xuất bạn đã yêu cầu Window NTkẻ sọc qua các ổ đĩa này, biều đồ sau đây trình bày cánh
hệ điều hành ghi các file vào các bộ sọc
Bạn có thể áp dụng biều đồ này ngay cả khi bạn đã chọn RAID disk striping dựa trên phần cứng thay vì Window NT striping dựa vào phần mềm striping của hệ điều hành thực thi RAID cấp độ 0
Striping dẫn đến kết quả tốt hơn như thế nào ? lý do của việc đạt được kết quả tốt hơn này phát sinh từ việc I/O( nhập , xuất) phụ thuộc vào sự truy
Trang 21cập bộ nhớ chậm hơn đến 10 lần Do đó bất kỳ điều gì bạn có thể thực hiện được để làm giảm số lần nhập xuất đều có khả năng đóng góp trực tiếp làm tăng tốc độ hệ thống Nếu nhập xuất chậm thì các trở ngạI về nhập xuất thậm chí còn tệ hơn Hãy tưởng tượng bạn có một chương trình tảI dữ liệu chuyển nhập xuất, chương trình này liên tục chờ hệ điều hành hoàn tất các thao tác ghi của nó vào một ổ đĩa đơn Điều gì xảy ra nếu bạn đã thực thi striping? Bạn
có thể nhận thấy một sự cảI tiến ngay tức khắc vì hệ điều hành bây giờ có thể
ấn hành nhiều yêu cầu ghi hơn vào cùng một thời đIểm, các thao tác đọc cũng
sẽ tốt hơn, vì có khả năng các yêu cầu đọc khác nhau sẽ do các ổ đĩa khác nhau phục vụ
Sự tăng thêm về tính thực thi của Disk striping thậm chí còn gây ấn tượng hơn trong một môI trường đa dòng, sự xử lý như Windows NT, trong
đó có các dòng có thể phục vụ các ổ đĩa riêng.ảnh thu được có thể trở nên sáng hơn nếu bạn đang sử dụng nhiều thiết bị điều khiển đĩa hay nhiều CPU.Việc bổ sung bộ điều khiển hay các CPU làm tăng thêm chức năng xử
lý đối với các tác vụ tiêu hoá tốn thời gian của đĩa nhập xuất
Ngoài sự gia tăng của tính thực thi disk striping còn có nhiều thuận lơI khác Việc sử dụng tính tương đương của disk striping có thể giúp bạn bảo đảm an toàn cho dữ liệu của bạn Sau đây chúng ta sẽ tìm hiểu thêm các tính tương đương này và vai trò của nó trong môI trường của bạn
Tính tương đương và không tương đương
Khi bạn cài đặt Windows NT disk striping bạn có thể chọn tính tương đương hay không tương đương, việc chọn tính tương đương có nghĩa là hệ điều hành sử dụng một ổ đĩa để chứa các chi tiết dữ liệu thừa Nhở sử dụng biểu đồ trước , lưu ý có một sự thay đổi nhỏ xảy ra khi bạn chọn tính tương đương :
Bây giờ có một kẻ sọc nhỏ về dữ liệu tương đương như là thành phần của một vạch ngăn.Nếu một trong các đĩa này bị hư hỏng trầm trọng, bạn có thể táI tạo thông tin như thể bạn đã thực thi phản chiếu đĩa.Sự kẻ sọc của hệ điều hành với tỷ suất tương đương sẽ ngang bằng với RAID cấp độ 5, tuy nhiên toàn bộ vùng không gian cần thiết để thực thi hiện tượng thì thấp hơn nhiều so với sự phản chiếu.Sự phản chiếu đòi hỏi bạn phảI đặt trước một lượng không gian bằng với vùng lưu trữ gốc, trong khi đó striping tương đương chỉ cần thêm một ít chi phí
Trang 22Lưu ý răng disk striping tương đương chỉ có thể hữu hiệu khi bạn đang
sử lý các ổ đĩa riêng lẻ, nếu bạn đã tạo bốn ổ đĩa logic từ một ổ đĩa vật lý, bạn
sẽ không đạt được những lợi ích hợp nhất dữ liệu của disk striping, vì mọi dữ liệu đều nằm cùng trên ổ đĩa đơn
Sự phản chiếu
Một trong những trách nhiệm quan trọng nhất của người quản lý là bảo
vệ dữ liệu Phần này khai thác cách sử dụng phản chiếu để tăng khả năng
“cứu vớt” dữ liệu khi hệ thông bị hỏng trầm trọng Bạn có thể chọn yêu cầu
hệ điều hành phản chiếu dữ liệu hay yêu cầu chính hệ thống SQL Server phản chiếu thông tin.Kết thúc phần này là sự giảng giảI vai trò của việc sao lưu dự phòng dữ liệu trong môI trường phản chiếu
2.3 Sự chiếu đĩa của hệ điều hành
Là một trong nhiều đặc tính của hệ điều hành Windows NT, đặc tinh phản chiếu đĩa hoặc mối quan tâm đặc biệt của những người quản lý cơ sở dữ liệu SQL Server.Bạn có thể nhở người quản lý đĩa của hệ điều hành tạo một
bộ phản chiếu, việc tạo một bộ phản chiếu có nghĩa rằng một khi bạn ghi vào đĩa chính , Windows NT cũng ghi vào đĩa phản chiếu bị hỏng nặng, hệ điều hành có thể tiếp tục làm việc bằng cách dựa vào ổ đĩa còn lạI Sau đây là một
số nguyên gây ra hư hỏng đĩa
• Do vỡ đầu đĩa
• Do sự sửa đổi dữ liệu chính
• Do hỏng động cơ đĩa
• Do hỏng card điều khiển đĩa
Sự phản chiếu làm tăng thêm chi phí bề mặt trong suốt các thao tác ghi
dữ liệu, vì hệ điều hành phải ghi các tác vụ này hai lần.Tuy nhiên đối với các thao tác đọc, sự phản chiếu có thể làm tăng thêm tính thực thi, Vì Windows
NT có hai nguồn thông tin có giá trị ngang nhau: đĩa cơ sở và đĩa phản chiếu
Hệ điều hành có thể chọn giữa hai loại đĩa này
2.4 Sự phân đôi hệ điều hành
Sự nhân đôi là sự phản chiếu hệ điều hành được thực hiện thêm một bước nữa, khi sự nhân đôi là một phần của chiến thuật phản chiếu hãy sử dụng các bộ điều khiển đĩa riêng cho đĩa cơ bản và đĩa phản chiếu Điều này
Trang 23làm tăng thêm tính bảo đảm về hệ thống, vì bạn đã loại bỏ được một sự cố hỏng hóc phổ biến
Sự phản chiếu thiết bi SQL Server
Khi bạn tạo một thiết bị, bạn có thể chỉ dẫn SQL Server phản chiếu thiết bị.Chẳng hạn, trong hình minh hoạ dưới đây, chúng ta đã tạo một thiết bị
có tên images đã chọn nút “ Mirror”
Nếu bạn muốn sử dụng Transact_SQL, bạn có thể tuỳ ý sử dụng các lệnh sau:
DISK MIRROR
DISK UNMIRROR
DISK REMIRROR
Khi bạn sử dụng SQL Server để phản chiếu một thiết bị, hệ thống cơ sở
dữ liệu ghi tất cả những thay đôỉ vào cơ sở dữ liệu hai lần: một vào thiết bị cơ bản và một vào thiết bị phản chiếu Điều này ảnh hưởng đến việc làm chậm thao tác ghi nhưng không đáng kể
Lưu ý rằng sự phản chiếu này không có nghĩa khi bạn đang làm việc với các ổ đĩa nhỏ hơn sự phản chiếu sẽ không đem lạI một lợi ích nào về sự hợp nhất dữ liệu: mọi dữ liệu vẫn còn nằm trong một ổ cho dù bạn đã too ra bao nhiêu ngăn
Chọn giữa sự phản chiếu hệ điều hành và sự phản chiếu SQL Server Sau đây là một số tiêu chuẩn cần xem xét để áp dụng cho môI trường của bạn
1.Windows NT advanced server và Windows NT Workstation
Nếu bạn đang chạy phiên bản Windows NT advanced server Worktion, bạn không có một sự lựa chọn nào ngoàI việc thực thi sự phản chiếu SQL Server Đây là điều cần thiết bời vì phiên bản này không hỗ trợ sự phản chiếu
hệ điều hành
2 Dễ dàng tiếp cận với người sử dụng Windows NT
Nếu bạn làm việc trong một môI trường mà trong đó bạn dễ dàng tiếp cận với người quản lý hệ điều hành( hoặc nếu bạn là người quản lý cả hệ thống lẫn cơ sở dữ liệu), thì việc cài đặt và bảo quản phần chiếu hệ điều hành
là đơn giản Mặt khác, nếu người quản lý Windows NT không phảI là người
dễ tiếp cận, tốt hơn bạn nên sử dụng sự phản chiếu riêng của bạn ( nghĩa là sự
Trang 24phản chiếu của SQL Server) , vì bạn không cần sự hỗ trợ của người quản lý
hệ thống sau khi đã cố định vị trí các ổ đĩa vật lý
Có sẵn phần cứng RAID Nếu các ổ đĩa của bạn có hợp nhất công nghệ RAID, việc sử dụng các tính năng phản chiếu hệ điều hành sẽ tốt hơn là sử dụng cấu trúc phản chiếu SQL Server RAID có tốc độ thực thi nhanh hơn, hữu hiệu hơn, và chiếm lưu lượng đĩa hơn sự phản chiếu cơ sở dữ liệu thuần khiết
Chọn dữ liệu cần phản chiếu
Bạn đã nghiên cứu các tuỳ chọn phản chiếu khác nhau dành cho người quản lý SQL Server , bây giờ chúng ta sẽ xác định những thông tin nào cần phản chiếu, thông thường, với giá đĩa quá thấp, đừng phản chiếu mọi dữ liệu của hệ thống Bằng cách này, khả năng làm mất thông tin sẽ giảm xuống Hơn nữa, sự phản chiếu cho phép bạn tiếp tục làm việc trong trường hợp bạn đã yêu cầu tạm ngừng trước đó Hãy so sánh chi phí tối thiểu của các ổ đĩa bổ sung với lượng thơì gian cần tải
Nếu bạn không có đủ lưu lượng đĩa phản chiếu mọi thứ và bạn đang chạy một hệ thống mà với hệ thống đó, bạn không thể cung ứng đủ các giao tác bị mất, bạn nên chiếu log giao tác
2.5 Sự phản chiếu log giao tác
Log giao tác chứa các thông tin quan trọng về những dữ liệu đã được thay đổi trong cơ sở dữ liệu Khi bạn khởi động lạI hệ thống SQL Server sau khi bị tắc ngẽn, nó sẽ xem xét các nội dung của log để xác định những thay đổi nào vẫn còn đang được đánh dấu lâu dàI và những thay đổi nào còn đang được xử lý khi hệ thống tạm ngừng hoạt động Nhờ cơ sở dữ liệu theo trạng tháI của nó trước khi tắt máy
Nếu bạn quyết định không phản chiếu log giao tác bạn có thể đánh mất tất cả các giao tác khi thiết bị log giao tác bị hỏng Sự phản chiếu thiết bị log giao tác có nghĩa rằng ngay cả khi thiểt bị log gốc bị hỏng, nội dung của log giao tac vẫn còn để phục hồi lưu dự phòng
Lưu ý, nếu bạn chỉ chọn phản chiếu thiết bị loggiao tác và sau đó không thay đổi dữ liệu quá nhiều( nghĩa là log giao tác không chứa quá nhiều thông tin) bạn có thể chọn phản chiếu các thiết bị dữ liêụ và không bảo vệ thiết bị log giao tác Tốt nhất là đừng thực hiện quyết định khó chịu này: bạn sẽ khẻo hơn nếu bạn phản chiếu nhiều thứ
Trang 252.6 Phản chiếu và lưu dự phòng
Tuy sự phản chiếu có nhiều quyền năng, nhưng người quản lý cũng cần thực hiện lưu dự phòng cơ sở dữ liệu thông thường, Sự phản chiếu giúp bạn tránh được việc làm hỏng ổ đĩa, nhưng nó sẽ không có ýnghĩa nếu bạn phảI phục hồi lạI từ các sự cố lớn hơn và có tính bào hàm hơn, chẳng hạn như máy tính bị hỏng, bị phá huỷ hay bị mất trộm thiên tai cũng có thể làm hỏng hệ thồng của bạn( chẳng hạn như động đất hay cháy nhà) Trong những trường hợp này, trạng thái ở đĩa không còn thích hợp vì có những vấn đề lớn hơn Bạn sẽ phảI làm gì nếu phảI tạo lạI dữ liệu trên một hệ thống mới.?
Một chiến thuật lưu trữ dự phòng giúp bạn xử lý nhiều tình huống dữ liệu bí mật, từ những hàng bị xóa nhầm đến những hệ thống phá huỷ hoàn toàn
Lưu ý cuối cùng trong việc lưu dự phòng dữ liệu: Xem xét sự sao chụp lại như là một phần trong chiến thuật lưu dự phòng Chương 16 có miêu tả sự sao chụp này
2.7 Các phân đoạn( Segment)
Khi đề cập đến việc nâng cao khả năng hoạt động nhập xuất, bạn nên
sử dụng phương pháp “ phân chia và chinh phục” Nghĩa là, thay vì đặt tất cả thông tin vào ổ đĩa cùng làm việc để xử lý một yêu câuc, thông tin thường xuất hiện nhanh hơn vì có ít trỏ ngại hơn
Để chia thông tin ra ổ đĩa, bạn có thể sử dụng các segment các segment
là các tên logic mà người quản lý gắn cho không gian đĩa.Gỉa sử bạn có ba ổ đĩa C, D và E.Mục đích cuối cùng là chia thông tin trong các ổ đĩa này Bằng cách tạo ra các Segment và biểu diễn chúng ra các ổ này, bạn có thể yêu cầu SQL Server chứa mỗi đối tượng cụ thể trên các segment
Trong mô hình này, chúng ta đã tạo ba segment, mỗi segment cho ổ đĩa, Segment thứ nhất “ table_ segment” được sử dụng để chứa các bảng Segment thứ hai” index_ segment”, sẽ chứa các chỉ mục không theo cụm Segment thứ ba” log_ segment” là nơI giành cho log giao tác của SQL Server Chúng ta có thể chỉ định các segment cần sử dụng khi tạo ra các table
và các chỉ mục mới
Trang 26Lưu ý, bạn không chỉ đạt các chỉ mục theo cụm trên các segment khác với các bảng chính Trong khi các segment rất hữu ích có thể tăng khả năng nhập xuất đĩa, thường thĩ việc đạt được các kết quả nâng cao sẽ dễ dàng hơn khi bạn sử dụng chiến thuật tự độn, chẳng hạn như sự kẻ sọc đĩa hay RAID
Kỹ thuật tự động này ít cần quản lý hơn phương pháp phân đoạn
Tóm lại, đừng quên rằng sự trình bày và quản lý đĩa là những vấn đề cần được quan tâm Đừng bỏ qua việc nghiên cứu và xem xét chủ đề quan trọng này Sau khi so sánh sự khác biệt giữa phương pháp RAID và chiến thuật phân đoạn, bạn có thể quyết định chọn hệ thống RAID, vì hệ thống này đòi hỏi ít sự quản lý hơn chiến thuật phân đoạn
2.8 Các kiểu hệ thống file
Là một người quản lý, bạn có hai chọn lựa đối với các kiều hệ thống file:FATvà NTFS.Bạn có thể sử dụng tiện ích Windows NT Disk Administrator để chọn giữa các hệ thống file này Hãy xem xét chi tiết cả kiều hệ thống File này
FAT
Fat là kiểu hệ thống được viết tắt từ chữ File Allocation Table( bảng phân cấp file), Đây là một kiểu hệ thống file kế thừa của MS- DOS Nó cũng cung cấp nhiều tính năng an toàn mặc dù nó cho phép bạn khởi động cả MS- DOS và Windows NT Nếu bạn có ý định sử dụng server cơ sở dữ liệu để chạy hệ thống file của bạn theo kiểu FAT
NTFS
NTFS là chữ viết tắt của NT File System( hệ thống fileNT) Nó được giới thiệu cùng với hệ điều hành WindowsNT và cung cấp nhiều đặc tính bổ sung, chăng hạn như tính an toàn, sự phục hồi và sự thực thi.NgoàI ra, bạn có thể tận dụng sự nén file NTFS để bảo toàn không gian lưu trữ cho dù bạn có thể chịu một số thất bại về thực thi.Nếu bạn dự kiến chuyên biệt máy NT làm server cơ sở dữ liệu và không bao giờ khởi động MS- DOS, hãy sử dụng hệ thống file này, nếu bạn đang sử dụng một nền ứng dụng không thuốc Intel, chẳng hạn như DEC Alpha hay MIPS bạn sẽ không có chọn lựa nào ngoàI việc sử dụng NTFS, hay vì môi trường này không thể chạy MS- DOS
Trang 27Tiện ích DBCC và thông tin đĩa
Như đã nêu trước đây, tiện ích DBCC cung cấp thông tin trạng tháI đĩa
có giá trị cho người quản lý cơ sở dữ liệu
Việc chạy tốt hệ thống sẽ gặp khó khăn nếu bạn có nhiều lưu dữ liệu, vì vậy bạn cần hiểu DBCC, Hãy xem xét công cụ quan trọng này và cách sử dụng nó để nhận rõ trạng tháI lưu trữ đĩa của hệ thống
Bạn có thể chạy DBCC với nhiều tham số khác nhau.Hãy xem các tham số này để nhận biết đĩa có sự cố nào không?
Nếu bạn quyết định sử dụng CHECKALLOC, bạn có thể chuyền một bên cơ sở dữ liệu dưới dạng tham số Nếu bạn không cung cấp một cơ sở dữ liệu, SQL Server xem xét cơ sở dữ liệu hiện hành
Trang 28CHƯƠNG III: CÀI ĐẶT VÀ QUẢN TRỊ SQL SERVER
I TẠO VÀ QUẢN LÝ CÁC USER ACCOUNT
SQL Server có 2 mức (level) của một user
Mức thứ nhất của user là login Một login được phép thiết lập một connection với SQL Server Tất cả login được lưu trữ trong bảng SYSLOGINS (nằm trong database MASTER)
Mức thứ hai của user là user Mức này SQL dùng để quản lý các quyền truy xuất tới các object của SQL Server như: table, view, stored procedure trong một database
Một user có thể ở trong một hoặc nhiều database, nhưng một user phải
có một login của database mà nó được quyền truy xuất Tất cả user được lưu trữ trong bảng SYSUSERS của mỗi database mà các user có quyền truy xuất
SQL tổ chức 2 mức user mục đích cho phép một user có nhiều mức độ truy xuất khác nhau trên các database mà user kết nối vào, và vẫn duy trì một password duy nhất Để làm được điều này, một user có một login đi kèm với một password, khi một login yêu cầu kết nối, SQL Server sẽ kiểm tra login này kèm với password Khi không có một login hợp lệ, user không thể truy xuất vào bất cứ database nào trên SQL Server
Khi tạo một login thì bao giờ cũng tạo ra một user của login đó trên database
Để tạomột login cũng như user của login đó ta có thể sử dụng tiện ích SQL Enterprise Manager hoặc sử dụng hàm hệ thống sp_addlogin và sp_adduser, khi sử dụng hàm này ta có thể tạo một login từ một connection có quyền tương đương như SA Điều này rất thuận lợi khi ta viết ứng dụng Web,
từ ứng dụng Web ta có thể tạo, xóa, cũng như gán quyền cho các user
Trang 29• password là mật khẩu được gán cho login sẽ tạo, thông số này là tuỳ chọn
• defaultdb là tên của database mà login sẽ được làm việc sau khi kết nối vào, nếu để NULL thì SQL Server sẽ mặc định là MASTER database
• defaultlanguage nếu để là NULL thì SQL Server sẽ lấy mặc định là default language của server
Cú pháp của sp_adduser là
sp_adduser login_id[,username [,grpname]]
trong đó
• login_id là tên của login sẽ được thêm vào database, nếu login chưa
có thì tác vụ này không thành công
• username được cung cấp để cho phép login gắn với một database, điều này cho phép một login có thể kết nối vào nhiều database khác nhau, và với một database thì nó có một user
• grpname cho phép định nghĩa tên một nhóm mà user sẽ thuộc vào nhóm đó
Để loại bỏ một login hoặc user ta có thể sử dụng các hàm sp_droplogin
hay sp_dropuser với cú pháp sp_droplogin login_id và sp_dropuser
username
1 Sử dụng GROUP để quản lý các user
Một nhóm bao gồm các user có quyền giống nhau, thay vì ta phải gán quyền riêng cho từng user mỗi khi user đó được tạo, ta chỉ cần tạo nhóm và phân quyền cho nhóm đó, nếu có thêm một user mới, thì khi tạo sẽ gắn nó với nhóm đã phân quyền
Gán quyền cho user và group
Trong SQL Server có các object như : table, view (bảng ảo), stored procedure, mỗi một user hay group sẽ có quyền hạn khác nhau đối với từng object SQL Server có các quyền hạn sau cho mỗi user:
Trang 30• SELECT cho phép user có thể đọc dữ liệu từ table hoặc view Quyền SELECT có thể được gán riêng cho từng cột trong table hoặc view
• INSERT cho phép user thêm một dòng mới vào table hoặc view
• UPDATE cho phép user thay đổi dữ liệu trong table hoặc view Quyền UPDATE có thể được gán riêng cho từng cột
• DELETE cho phép user xóa dữ liệu của table hoặc view
• EXECUTE cho phép user thi hành một stored procedure
• DRI/REFERENCES (Declarative Referential Integrity - DRI) là một phương thức duy trì ràng buộc toàn vẹn database, khi được gán quyền này user có thể thêm vào table một khóa ngoại (foreign key) Một cách khác duy trì toàn vẹn dữ liệu là dùng trigger
• DDL/Data Definition Language cho phép user có thể tạo mới, thêm vào, hoặc xóa các object trong database Ví dụ: CREATE TABLE, ALTER TABLE, DROP TABLE
• ALL cho phép user có toàn quyền trên object Chỉ có user SA mới
có quyền ALL khi sử dụng các phát biểu DDL
2 Sử dụng lệnh GRANT và REVOKE để gán hay loại bỏ một quyền hạn của user hay group