Dịch vụ dữ liệu từ xa (Remote Data Services - RDS) dùng để lấy các Recordset của ADO từ Web _ server. Thư viện này đi kèm với ADO, chủ yếu cho phép ta dùng HTTP (vận chuyển trên mạng của Web) làm vận chuyển trên mạng cho ứng dụng cơ sở dữ liệu, chủ yếu được dùng trong các ứng dụng trình duyệt Web (Client), nó cũng hoạt động tốt với các Client của Visual Basic.
Ta có thể dùng đối tượng Data Control của RDO để lấy về một đối tượng Recordset của ADO trên Internet. Đối tượng này,được phục vụ từ một máy tính chạy với Microsof Internet Information Server 3.0 trở lên, có khả năng trả về đối tượng Recordset của ADO đến bất kỳ Client qua HTTP.
IV. HỆ QUẢN TRỊ CSDL SQL SERVER
Nhiều nhà lập trình Visual Basic thường làm việc với bộ máy cơ sở dữ liệu JET chia sẻ giữa Visual Basic và Access. Nhưng khi ứng dụng cần làm việc với số lượng mẫu tin rất lớn với nhiều người sử dụng, nó gặp phải nhiều hạn chế. Tranh chấp truy cập dữ liệu giữa nhiều người sử dụng, xử lí chậm chạp, thiếu những tính năng nâng cao về quản lí Server và dữ liệu làm cho các nhà lập trình phải thiết kế những cấu trúc nặng nề để giải quyết các vấn đề này.
Không nên lầm lẫn giữa môi trường Client/Server và môi trường máy tính nhiều người sử dụng.Môi trường Client/Server chứa trong chương trình tự động trả về và lưu trữ dữ liệu,phân quyền truy cập giữa nhiều người sử dụng ,xử lý bảo mật.Trong Microsoft Access chỉ hỗ trợ máy đa người sử dụng,không phải là môi trường Client/Server vì nhiều yêu cầu thông tin đều được xử lý trên máy Client cá nhân .Nó không có chương trình điều khiển nào tồn tại qua mạng để xử lý và trả về dữ liệu.
Microsoft SQL Server là chọn lựa tốt nhất vì nó đi kèm với Visual Basic. Hơn nữa :
• Phần lớn cơ sở dữ liệu sử dụng ngôn ngữ phổ biến nhất, ngôn ngữ truy vấn theo cấu trúc - SQL ( Structure Query Language ).
• Trong Visual Basic ta thường xuyên truy cập cơ sở dữ liệu thông qua Đối tượng dữ liệu từ xa ( Remote Data Object - RDO ), một phương thức độc lập với cơ sở dữ liệu và thi hành với môi trường Client / Server.
IV.1. Cài đặt Microsoft SQL Server 1.1.Yêu cầu cài đặt SQL Server
Để cài đặt SQL Server 2000 Microsoft khuyên cần có WINDOWS2000 SERVER hoặc WINXP. Tuy nhiên, đây chỉ là cấu hình tối thiểu mà thôi. Nếu muốn dùng làm Server cho hệ thống lớn ta cần nâng cấp thêm, nhất là bộ nhớ. Nếu không các nhà lập trình sẽ gặp khó khăn khi máy chủ không đáp ứng kịp thời.
1.2.Cài đặt SQL Server
Nhấn đúp chuột lên tập tin Setup. exe trong thư mục \ i386 trên ổ CD (Nếu ta đang sử dụng Intel ).
Trước hết, chương trình cài đặt yêu cầu ta chỉ ra thư mục cài SQL Server
Kế đến, nó yêu cầu ta chỉ ra nơi tạo tập tin Master.dat. Đây là tập tin cơ sở dữ liệu mà SQL Server dùng theo dõi toàn bộ cơ sở dũ liệu. Ta nên chọn nơi mà người sử dụng thông thường không thể truy cập được vào và trên ổ đĩa luôn có đủ khoảng trống ( 25MB là kích thước tối thiểu cho cơ sở dữ liệu chủ ).
Sau đó, ta cung cấp trang mã và thứ tự sắp xếp. Trang mã ( Code Page ) là bảng chữ cái cho người ứng dụng. Chọn trang mã tương thích với địa phương của người sử dụng.
Về thứ tự sắp xếp, ta chọn mặc định là không phân biệt chữ thường chữ in hoa.
SQL Server hỗ trợ một số giao thức mạng. Ta nên chọn giao thức mà người sử dụng mạng đang dùng. Nếu không chắc, ta nên liên hệ với người quản trị mạng hoặc đối chiếu giá trị ta chọn với giá trị định sẵn trong cửa sổ Network của Control panel.
Kế tiếp ta xác định SQL Server có khởi động ngay lúc khởi động WinNT hay không. Nếu chọn, SQL Server sẽ hoạt động như một dịch vụ của hệ điều hành, nó không xuất hiện trong Task Manager và ta không thể kết thúc chúng theo cách một ứng dụng thông thường.
1.3. Kiểm soát cách khởi động SQL Server
Sau khi cài SQL Server, hệ điều hành tự động phóng SQL Server khi máy tính được khởi động. Thông qua bảng điều khiển Services ta có thể kiểm soát SQL Server có luôn khởi động khi máy tính khởi động hay không.
IV.2.Thi hành Microsoft SQL Server
Sau khi cài đặt xong ta phải hoàn tất một số việc trước khi SQL Server bắt đầu lưu trữ dữ liệu :
• Tạo một hay nhiều thiết bị đĩa.
• Tạo một hay nhiều cơ sở dữ liệu trên một thiết bị đĩa đặc biệt.
• Tạo bảng trong cơ sở dữ liệu.
• Tạo ra các tài khoản người sử dụng và nhóm bảo mật.
Hầu hết các công việc này đều thi hành với SQL Enterprise Manager, không cần phải lập trình .
2.1. Thi hành SQL Enterprise Manager
SQL Enterprise Manager là một trong những phần tăng cường quan trọng nhất của SQL Server 6.5. Nó giúp công việc quản trị cơ sở dữ liệu trở nên dễ dàng hơn nhờ giao diện đồ hoạ thay vì phải dùng dòng lệnh như trước ( cách này cũng vẫn tồn tại ).
Phóng SQL Enterprise Manager từ biểu tượng nhóm SQL Server . Khi đó, ta có thể truy cập cơ sở dữ liệu trên mạng.
2.2. Dùng SQL Enterprise Manager để tạo thiết bị cơ sở dữ liệu mới
Trước khi tạo cơ sở dữ liệu, ta phải tạo thiết bị cơ sở dữ liệu. Đây là nơi lưu trữ của cơ sở dữ liệu trong không gian SQL Server. Mỗi thiết bị cơ sở dữ liệu có thể chứa nhiều cơ sở dữ liệu.
Một thiết bị cơ sở dữ liệu có thể trải qua nhiều đĩa cứng vật lý. Nhờ đó, ta có thuận lợi là không gian chứa lớn, có thể lên đến Gigabyte, và nếu có một đĩa hư, ta vẫn có thể truy cập được cơ sở dữ liệu chứa trong các đĩa khác.
1. Chọn SQL Enterprise Manager từ nhóm SQL Server
2. Lần đầu thi hành SQL Enterprise Manager, ta phải đăng ký việc cài đặt SQL Server. Nó giúp SQL Enterprise Manager xác định SQL Server nào ta muốn làm việc, nó cũng cho phép quản lý nhiều SQL Server.
3. Sau khi đăng ký xong, nhấn nút Close trong hộp thoại Register Server ( Ta chỉ thực hiện điều này một lần. Sau khi làm xong, SQL Enterprise Manager sẽ nhớ cách thức nối với Server ).
2.3. Dùng SQL Enterprise Manager để tạo cơ sở dữ liệu
1. Nhấn nút phải chuột trên thư mục Database trong cửa sổ Server Manager của SQL Enterprise Manager.
2. Chọn New Database từ menu bật ra. 3. Hộp thoại New Database xuất hiện. 4. Nhập tên cơ sở dữ liệu trong ô Name.
5. Trong hộp thoại Size, nhập kích cỡ cơ sở dữ liệu tính theo Megabyte. Cơ sở dữ liệu có thể chiếm toàn bộ thiết bị mà nó đang được chứa, nhưng không thể lớn hơn. Có thể điều chỉnh lại kính cỡ cơ sở dữ liệu về sau nhưng tốt nhất là nên dành sẵn khoảng trống tối đa cho cơ sở dữ liệu, vì vậy việc điều chỉnh về sau hơi bất tiện. 6. Nhấn Create Now
7. Cơ sở dữ liệu mới được tạo và hộp thoại New Database đóng. Ta sẽ thấy cơ sở dữ liệu mới xuất hiện trong thư mục Database của cửa sổ Server Manager.
2.4. Tạo bảng trong cơ sở dữ liệu
1. Dùng SQL DDL ( Ngôn ngữ định nghĩa dữ liệu – Database Define Language), Kỹ thuật này dùng với cơ sở dữ liệu Jet.
2. Dùng tính năng đồ hoạ của SQL Enterprise Manager
Cả hai cách này có những ưu và nhược điểm. SQL DDL rất phức tạp nhất là. Nếu ta chưa quen với SQL. Sử dụng SQL dùng chương trình để tạo cơ sở dữ liệu. Sử dụng SQL Enterprise Manager, trái lại, cho phép tạo cấu trúc cơ sở dữ liệu dễ dàng và nhanh chóng thông qua thế mạnh trực quan đồ hoạ.
• Sử dụng SQL Enterprise Manager để tạo bảng trong SQL Server
Sau khi tạo một cơ sở dữ liệu trong SQL Server ta có thể dùng SQL Enterprise Manager để tạo bảng trong cơ sở dữ liệu :
1. Trong cửa sổ Server Manager của SQL Enterprise Manager, chọn và mở rộng cơ sở dữ liệu mà ta muốn tạo bảng.
2. Hai thư mục xuất hiện bên dưới thư mục cơ sở dữ liệu là : Groups / Users và Objects. Nhấn nút phải chuột lên thư mục Objects.
3. Từ menu bật ra, chọn New Table. 4. Hộp thoại Manager Talbes xuất hiện .
5. Nhập tên trường vào cột có tên là Column Name.
6. Nhấn Tab để chuyển sang cột kế, Datatype để chọn kiểu dữ liệu. 7. Trong cột Size ta nhập kích thước dữ liệu.
8. Cột Null xác định trường có cho phép giá trị Null hay không. Nếu hộp được đánh dấu thì có thể nhập giá trị Null vào trường.
9. Nhập vào định nghĩa và kiểu dữ liệu của các trường khác vào lưới cùng lúc.
10.Khi đã hoàn tất thiết kế bảng, nhấn nút Save ở phần trên trong hộp thoại.
11.Hộp thoại Specisy Table Name xuất hiện. Nhập tên bảng , nhấn OK.
2.5. Dùng các phương thức khác để phát sinh khoá chính
Khoá chính rất cần thiết khi kết nối nhiều bảng để truy vấn. Khoá chính còn dùng đại diện cho mẫu tin trong những xử lý trên giao diện người sử dụng. Thay vì truyền toàn bộ mẫu tin, ta chỉ cần truyền khóa chính, nghĩa là lượng dữ liệu rất nhỏ.
Có nhiều cách để phát sinh khoá chính:
• Phát sinh một giá trị hoàn toàn ngẫu nhiên trong trường khóa chính cho từng mẫu tin được tạo. Kỹ thuật này dùng cho những bảng chứa trường AutoNumber đã được chuyển đổi từ Access sang SQL Server . Nó cũng là kỹ thuật được dùng bởi bản sao của cơ sở dữ liệu Access để tránh mâu thuẫn giữa các mẫu tin nhập vào bởi những người sử dụng ở xa không có liên lạc với nhau.
• Chứa một giá trị đếm trong bảng tạm và dùng giá trị đó để khởi đầu một cột khoá chính của từng mẫu tin mới khi mẫu tin này được tạo. Điều này liên quan đến một transaction đọc giá trị hiện hành của bảng đếm, dùng nó để sinh khoá chính của mẫu tin mới, rồi tăng giá trị trong bảng đếm. Kỹ thuật này có ưu điểm là cung cấp một hệ thống số hoàn toàn kiểm soát được. Bất lợi của kỹ thuật này là ta phải có một thủ tục chứa sẳn và thêm bảng vào cơ sở dữ liệu để cài đặt nó.
• Thêm một khoá từ gợi ý của dữ liệu. Ví dụ, một khoá cho một mẫu tin của một người có tên là Vito Polito, co thể là VP001. Nếu một người khác cũng có tên tương tự VP, hệ thống sẽ cho mẫu tin với khoá chính là VP002. Tuy nhiên, cách này cần lầp trình ( bao gồm các thủ tục chứa sẵn để thi hành các trigger ).
2.6. Quản lý người sử dụng và bảo mật với SQL Enterprise Manager
Một trong những lý do quan trọng để sử dụng SQL Server là khả năng quản lý nhiều người sử dụng truy cập đến cùng dữ liệu tại một thời điểm. Mặc dù có nhiều rắc rối như là quyền ưu tiên truy cập của người sử dụng, hai người
cố cập nhật cùng mẫu tin tại cùng thời điểm, SQL Server đưa ra giải pháp cho phần lớn những vấn đề này .
Thông qua những tính năng bảo mật, SQL Server cho phép xác định người sử dụng nào đang truy cập dữ liệu.
Mỗi cơ sở dữ liệu có một tập hợp người sử dụng riêng, từng người có quyền hạn riêng để truy cập dữ liệu. Các quyền hạn này cho phép người sử dụng được truy cập hoặc thay đổi dữ liệu và nếu có thể, tạo hay huỷ đối tượng cơ sở dữ liệu.
Bảo mật của SQL Server còn cho phép đặt người sử dụng vào một nhóm có cùng quyền hạn. Ví dụ, nhóm các nhà lập trình được phép truy cập toàn bộ đối tượng trong cơ sở dữ liệu, nhóm các nhà quản lý được phép truy cập thông tin về lương bổng hay buôn bán, và một nhóm người sử dụng thông thường với các quyền rất hạn chế.
2.6.1 Quản lý nhóm người sử dụng với SQL Enterprise Manager
Ta có thể tạo nhóm trong SQL Enterprise Manager, rồi gán quyền cho nhóm vừa tạo. Sau khi tạo nhóm, ta có khả năng thêm người sử dụng vào nhóm, người sử dụng bất kỳ được thêm vào nhóm sẽ có các quyền hạn của nhóm. Và thay đổi quyền hạn của nhóm cũng sẽ thay đổi luôn quyền hạn của tất cả những người sử dụng trong nhóm đó. Bằng cách này, để thêm hoặc xóa một số lớn các quyền hạn cho một người sử dụng nào đó, ta chỉ cần thay đổi nhóm chứa người sử dụng đó.
a) Tạo nhóm
Để tạo một nhóm trong SQL Enterprise Manager, ta theo các bước sau: 1. Trong cửa sổ Server Manager của SQL Enterprise Manager, nhấn
nút phải chuột lên thư mục Groups/Users.
2. Từ menu bật ra, chọn New Group. Hộp thoại Manager Groups xuất hiện.
3. Trong hộp Group, nhập tên của nhóm. Đây là nhóm người sử dụng thông thường giả định có tên là ‘ Users ’, nhấn Add.
4. Nhóm mới được thêm vào cơ sở dữ liệu. Đóng hộp thoại Manager Groups bằng cách nhấn nút Clos.e
5. Trong cửa sổ Server Manager, ta sẽ thấy nhóm mới.
b) Cấp và cấm quyền
Sau khi đã tạo một nhóm, ta có thể cấm quyền truy cập trên đối tượng bảng bằng các bước sau :
1. Trong cửa sổ Server Manager, nhấn nút phải chuột lên nhóm ta muốn cấp quyền.
2. Từ menu bật ra, chọn Permissions. Hộp thoại Object Permission xuất hiện.
Trong phần trước ta đã nói về View và thủ tục chứa sẵn, trong đó ta không cho phép người sử dụng truy cập trực trên bảng. Ta sẽ dùng hộp thoại Object Permissions để cấm tất cả các quyền trên đối tượng bảng trong cơ sở dữ liệu đối với các thành viên của nhóm Users. Để thực hiện điều này, ta theo các bước sau:
1. Cuộn danh sách đối tượng trong cơ sở dữ liệu đến khi gặp đối tượng bảng
2. Nhấn chuột 2 lần trên mỗi cột ( Select, Insert, Update, và Delete ) cho mỗi đối tượng bảmg trong cơ sở dữ liệu. Nhấn lần một để cấp quyền, nhấn lần 2 để cấm quyền ( Mặc dù quyền hiện tại là “ Pending ”, nó chưa được cấm cho đến khi nhấn nút Set ).
3. Cấp quyền Select, Insert, Update và Delete trên toàn bộ View của cơ sở dữ liệu.
4. Cấp quyền thi hành trên thủ tục chứa sẵn trong cơ sở dữ liệu. 5. Nhấn nút Set để thi hành các thay đổi quyền hạn.
6. Các thay đổi quyền hạn được thi hành. 7. Nhấn nút Close để đóng hộp thoại.
Tuy nhiên, ta phải có sẵn người sử dụng trong nhóm ‘ Users ’, thì những quyền hạn này mới có ý nghĩa.
2.6.2. Tạo và quản lí login và người sử dụng
Để có một hệ thống bảo mật nhất quán và linh hoạt, ta cần cho mỗi người sử dụng một ID.
Login thể hiện một người sử dụng có quyền truy cập đến SQL Server . Ta dùng login để tạo người sử dụng. Tạo một người sử dụng cho phép cấp quyền Login vào một cơ sở dữ liệu nhất định. Có thể thêm người sử dụng vào một nhóm, để cho họ một loạt các quyền hạn cùng lúc. Login được tạo ở mức Server , người sử dụng được tạo ở mức cơ sở dữ liệu.
Tạo một người sử dụng, tạo một login cho từng người:
• Trong SQL Enterprise Manager, nhấn nút phải chuột lên thư mục Logins ở dưới cùng cửa sổ Server Manager. Login không thuộc về cơ sở dữ liệu, nó thuộc về Server.
• Chọn New Login từ menu bật ra.
• Hộp thoại Manager Logins xuất hiện.
• Trong hộp thoại Login Name, nhập tên người sẽ dùng để login. Một khả năng tuỳ chọn là có thể thêm mật khẩu và chọn ngôn ngữ mặc định.
( Có thể đổi mật khẩu thông qua thủ tục chứa sẵn sp_pasword.)
• Ta có thể Login này như một người sử dụng vào một cơ sở dữ liệu nhất định ngay lúc này. Nhấn vào cột Permit của lưới Database Access ở dưới cùng hộp thoại. Người sử dụng được cấp quyền truy cập cơ sở dữ liệu trong nhóm public.
• Để thêm người sử dụng vào một nhóm khác hơn pubic, chọn từ danh sách Drop - Down trong cột Group.
• Nhấn Add khi ta hoàn tất việc gán Login này cho người sử dụng trong cơ sở dữ liệu. Login được tạo ra, và người sử dụng ta tạo bất kỳ cho Login