Tải bản đầy đủ (.pdf) (75 trang)

Nghiên cứu và xây dựng hệ thống xác thực người dùng tập trung

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.68 MB, 75 trang )

MỤC LỤC

MỤC LỤC 1
LỜI MỞ ĐẦU 3
CHƯƠNG 1. MÔ TẢ TỔNG QUAN VỀ HỆ THỐNG XÁC THỰC TẬP TRUNG 5
1.1. Giới thiệu tổng quan về mô hình xác thực. 5
1.2. Mô hình xác thực của một số hệ thống tại Viễn thông Hà Nội. 6
1.2.1. Hệ thống điều hành sửa chữa và quản lý mạng cáp. 6
1.2.2. EOffice. 8
1.2.3. Phát triển thuê bao và điều hành thi công. 9
1.2.4. Quản lý Thanh toán Cước phí Viễn thông. 11
1.2.5. Hệ thống báo cáo sản xuất kinh doanh 13
1.3. Nhu cầu xây dựng hệ thống xác thực tập trung. 14
CHƯƠNG 2: CƠ SỞ DỮ LIỆU MYSQL, MÔ HÌNH HỆ THỐNG SỬ DỤNG
WEBSERVICE VÀ MỘT SỐ PHƯƠNG PHÁP XÁC THỰC 16
2.1. Cơ sở dữ liệu MySQL 16
2.1.1. Giới thiệu về hệ Quản trị cơ sở dữ liệu MySQL 16
2.1.2. Truy xuất hệ Quản trị cơ sở dữ liệu MySQL 18
2.1.3. Những cú pháp cơ bản của MySQL 22
2.2. Mô hình hệ thống sử dụng WebService 26
2.2.1. Giới thiệu về Web Services 26
2.2.2. Các thành phần của Web Services 27
2.2.3. Mô hình Web Services 31
2.3. Một số phương pháp xác thực 41
2.3.1. Sơ lược về xác thực người dùng 41
2.3.2. Xác thực qua tên người dùng/mật khấu 42
2.3.3. Xác thực sinh trắc học qua vân tay 43
2.3.4. Xác thực qua chứng chỉ Token 44
2.3.5. Xác thực sử dụng OTP qua SMS. 46
2.3.6. Xác thực sử dụng OTP ma trận 2 chiều. 47
2.3.7. Quản lý mật khẩu người dùng 48


CHƯƠNG 3. THIẾT KẾ HỆ THỐNG XÁC THỰC TẬP TRUNG. 48
3.1. Yêu cầu hệ thống. 48
3.2. Thiết kế CSDL. 49
3.2.1. Cấp đơn vị 49
3.2.2. Đơn vị 49
3.2.3. Nhân viên 49
3.2.4. Người sử dụng 50
3.2.4. Thông tin mật khẩu ma trận của người dùng 51
3.2.5. Log cập nhật thông tin 51
3.2.6. Log thực hiện xác thực 52
CHƯƠNG 4. LẬP TRÌNH VÀ TRIỂN KHAI 52
4.1. Chương trình và phương thức giao tiếp giữa các hệ thống 52
4.1.1. Chương trình quản lý thông tin xác thực 52
4.1.2. Giao tiếp giữa hệ thống xác thực và các hệ thống khác. 55
4.2. Các bước triển khai với mô hình hệ thống hiện tại 59
4.2.1. Mô hình tổ chức hệ thống. 59
4.2.2. Đánh giá khả năng chuyển đổi của một số hệ thống đã khảo sát. 62
4.2.3. Tiến trình xác thực username/password và OTP trên toàn hệ thống. 65
4.3. Quy định đặt tên người dùng: 67
4.3.1. Quy tắc đặt tên user. 67
4.3.2. Thiết lập và sử dụng mật khẩu 67
4.3.3. Mật khẩu của người sử dụng 68
4.3.4. Mật khẩu của người quản trị 68
4.4. Quy trình thực hiện khai báo, chỉnh sửa, xóa bỏ thông tin xác thực. 68
4.4.1. Thực hiện thêm mới, chỉnh sửa thông tin người dùng 68
4.4.2. Xóa bỏ thông tin xác thực. 68
4.5. Triển khai thực tế trên hệ thống báo cáo và điều hành sửa chữa. 69
4.5.1. Các bước thực hiện chung. 69
4.5.2. Mô hình xử lý xác thực qua Username/Password. 70
4.5.3. Mô hình xử lý xác thực qua Username/Password và OTP. 71

CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 72
PHỤ LỤC 73
TÀI LIỆU THAM KHẢO 75


LỜI MỞ ĐẦU

Trong những năm gần đây, cùng với sự phát triển mạnh mẽ của ngành công
nghiệp công nghệ thông tin và viễn thông, Viễn thông Hà Nội cũng liên tục phát triển
và cung cấp đa dạng các dịch vụ tới mọi đối tượng khách hàng. Rất nhiều hệ thống,
chương trình phần mềm đã được Viễn thông Hà Nội liên tiếp đưa vào sử dụng với mục
đích quản lý điều hành quá trình cung cấp và vận hành dịch vụ trên. Hiện tại Viễn
thông Hà Nội đang quản lý, vận hành các hệ thống CNTT phục vụ điều hành sản xuất
kinh doanh như: PTTB, QLTT, Portal, tính cước Các hệ thống trên đều thực hiện
việc xác thực người dùng độc lập, dẫn đến người có quyền truy nhập nhiều hệ thống
phải ghi nhớ nhiều tên truy nhập/mật khẩu. Mặt khác các hệ thống trên vẫn đang sử
dụng mô hình xác thực qua tên truy nhập/mật khẩu có tính bảo mật không cao, dễ bị
người khác đánh cắp.
Việc nghiên cứu và tiếp thu công nghệ mới áp dụng trong sản xuất kinh doanh
nhằm nâng cao hiệu quả, tính bảo mật của các hệ thống CNTT là cần thiết đối với sự
phát triển công nghệ thông tin của Viễn thông Hà Nội.
Việc xây dựng một hệ thống xác thực tập trung cho tất cả các hệ thống CNTT
của Viễn thông Hà Nội sẽ đáp ứng được nhu cầu quản lý người dùng tập trung. Hệ
thống này sẽ cung cấp tính năng xác thực người dùng cho tất cả các hệ thống CNTT
khác qua các thư viện hàm giao tiếp chuẩn. Khi đó các hệ thống CNTT khác có thể sử
dụng kết quả xác thực do hệ thống xác thực tập trung cung cấp để quyết định người
dùng có quyền hay không hoặc có quyền đến mức nào khi truy nhập từng hệ thống.
Ngoài ra, việc nghiên cứu và áp dụng các công nghệ mới, đặc biệt là các công
nghệ bảo mật, an toàn dữ liệu đã được Giám đốc Viễn thông Hà Nội quan tâm chỉ đạo
nghiên cứu. Trong các công nghệ bảo mật sử dụng yếu tố sinh trắc học, kỹ thuật nhận

dạng vân tay là mô hình xác thực người dùng có tính bảo mật khá cao, an toàn hơn rất
nhiều so với việc sử dụng tên truy nhập/mật khẩu. Người dùng chỉ cần lưu trữ mã vân
tay trong CSDL xác thực (mã này là duy nhất) và sử dụng vân tay thay cho việc dùng
tên truy nhập/mật khẩu nên việc bị đánh cắp là rất ít khả năng xảy ra. Ngoài ra, kỹ
thuật này cũng bắt đầu được sử dụng ở Việt Nam do cho phí thiết bị đã giảm đáng kể,
phù hợp với nhu cầu thực tế hơn so với các công nghệ bảo mật sử dụng yếu tố sinh
trắc học khác như kỹ thuật quét võng mạc hay mạch máu.
Viễn thông Hà Nội hoàn toàn có thể xây dựng một hệ thống xác thực tập trung
sử dụng kỹ thuật nhận dạng vân tay kết hợp với tên truy nhập/mật khẩu nhằm quản lý
tập trung quyền truy nhập các hệ thống CNTT của toàn bộ CBCNV. Với định hướng
trên, nhóm đề tài đã đề nghị và được Giám đốc Viễn thông Hà Nội phê duyệt đề cương
đề tài.
Đề tài bao gồm các nội dung sau:
Chương 1. Mô tả tổng quan về hệ thống xác thực tập trung. Chương này giới
thiệu tổng quan về mô hình xác thực người dùng phổ biến nhất. Nhóm đề tài cũng đưa
ra các hiện trạng các mô hình xác thực người dùng đang sử dụng trong các hệ thống tại
Viễn thông Hà Nội và những vấn đề, tồn tại của các hệ thống hiện tại.
Chương 2. CSDL MySQL, mô hình tổ chức hệ thống sử dụng Web Service và
một số phương pháp xác thực. Trình bày các vấn đề lý thuyết và các nghiên cứu về
hệ quản trị CSDL MySQL, mô hình tổ chức hệ thống sử dụng Web Service cũng như
các vấn đề liên quan đến từng phương pháp xác thực cụ thể, bao gồm: Xác thực qua
tên người dùng/mật khẩu, xác thực sinh trắc học sử dụng yếu tố vân tay, xác thực sử
dụng chứng chỉ Token
Chương 3. Thiết kế hệ thống xác thực tập trung. Chương này nhóm đề tài trình
bày cho tiết về yêu cầu của một hệ thống xác thực tập trung, các yếu tố liên quan khi
xây dựng một hệ thống xác thực tập trung. Phần cuối chương này, nhóm đề tài trình
bày thiết kế của hệ thống, thiết kế CSDL, giao diện chương trình.
Chương 4. Lập trình và triển khai. Xây dựng chương trình quản lý việc xác thực
tập trung, xây dựng các hàm giao tiếp giữa hệ thống xác thực tập trung với các hệ
thống khác, việc triển khai hệ thống, các quy định đặt tên người dùng khi triển khai hệ

thống xác thực tập trung trong Viễn thông Hà Nội, quy trình thực hiện khai báo, chỉnh
sửa thông tin người dùng.
Chương 5. Kết luận.
Nhóm thực hiện đề tài trân trọng cảm ơn Giám đốc Viễn thông Hà Nội đã tin
tưởng giao cho nhóm thực hiện và triển khai đề tài này. Trong quá trình thực hiện,
nhóm đề tài cũng được lãnh đạo Viễn thông Hà Nội, các phòng ban chức năng và các
đơn vị liên quan tạo điều kiện giúp đỡ. Chúng tôi xin chân thành cảm ơn.
CHƯƠNG 1. MÔ TẢ TỔNG QUAN VỀ HỆ THỐNG XÁC THỰC
TẬP TRUNG
1.1. Giới thiệu tổng quan về mô hình xác thực.
a. Khái niệm về xác thực.
Xác thực (Authentication) là một hành động nhằm thiết lập hoặc chứng thực một
cái gì đó (hoặc một người nào đó) đáng tin cậy, có nghĩa là những lời khai báo do
người đó đưa ra hoặc về vật đó là sự thật. Xác thực một đối tượng còn có nghĩa là
công nhận nguồn gốc của đối tượng, trong khi, xác thực một người thường bao gồm
việc thẩm tra nhận dạng họ. Việc xác thực thường phụ thuộc một hoặc nhiều yếu tố
xác thực cụ thể.
Xác thực là đặc biệt quan trọng để cho sự hoạt động của hệ thống được an toàn.
Hệ thống luôn thực hiện xác thực trước tiên thực thể hoặc đối tượng khi nó hoặc người
đó cố thử thiết lập liên lạc. Khi đó nét nhận dạng của thực thể được dùng để xác định
sự truy nhập của nó như một đặc quyền hoặc để có được sự phục vụ của hệ thống.
Suốt quá trình thực hiện xác thực, hai bên muôn luôn trao đổi các bí mật chung mà nó
sẽ được dùng để đưa đến sự bảo mật và toàn vẹn dữ liệu xác thực.
b. Xác thực người dùng.
Hệ thống xác thực người dùng đóng vai trò hết sức to lớn trong việc bảo mật
thông tin của người dùng trong thời kỳ tin học hóa hiện nay. Đối với một người sử
dụng máy tính, việc nhập thông tin tên người dùng, mật khẩu là một thao tác quen
thuộc hàng ngày để có thể truy nhập vào các hệ thống nghiệp vụ, các tệp tin, thư điện
tử, tài khoản ở ngân hàng, những thông tin cá nhân,… mà người dùng đó không muốn
người khác biết được.

Hầu hết các hệ thống tin học hiện nay sử dụng kiểu xác thực thông qua tên người
dùng và mật khẩu chẳng hạn các hệ thống như Gmail, Mail Yahoo,… .
Trong đó tên người dùng là một chuỗi ký tự được người dùng chọn hoặc được
một hệ thống cung cấp theo một quy tắc nào đó và mật khẩu là các ký tự mà người
dùng lựa chọn. Mật khẩu mà người dùng đặt có thể là tên người thân, ngày sinh nhật,
tên một nhân vật ưa thích,… mục đích là để người dùng có thể ghi nhớ được.

Giao diện đăng nhập Mail Yahoo
Thực tế trong một doanh nghiệp, có thể có rất nhiều hệ thống nghiệp vụ như
quản lý tài sản, quản trị nhân sự, kế toán, quản lý kho…. Nếu không có những quy
định chung thì một nhân viên của doanh nghiệp (tương ứng với một người sử dụng) có
thể có rất nhiều tên đăng nhập khác nhau, đồng thời có thể có nhiều mật khẩu khác
nhau. Dẫn đến tình trạng người dùng gặp khó khăn khi thực hiện nghiệp vụ liên quan
tới xác thực người dùng.
Trong Viễn thông Hà Nội, một người dùng có thể phải thực hiện thao tác với rất
nhiều hệ thống nghiệp vụ như: Phát triển thuê bao, Điều hành thi công, Quản lý Thanh
toán Cước phí Viễn thông, Quản lý Mạng cáp, Quản lý cổng;… cũng như các hệ thống
tin học khác, các hệ thống này hầu hết sử dụng phương pháp xác thực người dùng
thông qua tên người dùng và mật khẩu. Mặt khác trong quá trình phát triển, do thiếu
những quy định cụ thể về việc đặt tên người dùng và các hệ thống được triển khai theo
các giai đoạn khác nhau, nên với mỗi hệ thống người sử dụng lại có một tên đăng nhập
(tên người dùng) riêng và phải nhớ mật khẩu tương ứng với tên đăng nhập đó. Có
những người dùng phải nhớ nhiều tên đăng nhập của bản thân do không có sự thống
nhất giữa việc đặt tên đăng nhập giữa các hệ thống.
1.2. Mô hình xác thực của một số hệ thống tại Viễn thông Hà Nội.
1.2.1. Hệ thống điều hành sửa chữa và quản lý mạng cáp.
a. Chức năng của hệ thống.
GTCAS là một hệ thống tập trung, được tích hợp từ các hệ thống quản lý mạng
cáp đồng, cáp quang, các dịch vụ chạy trên mạng cáp này, quản lý được mạng hạ tầng
mạng cống bể (cống, bể, ống cống, cáp đi trong ống cống), mạng đường cột (cột,

cáp/dây thuê bao treo trên cột).
Điều hành sửa chữa toàn bộ dịch vụ & điều hành xử lý sự cố trong VTHN, bao
gồm các chức năng như lập phiếu báo hỏng, đo thử, phân ca,
b. Mô hình hệ thống.










Mô hình xác thực
hệ thống điều hành sửa chữa và quản lý mạng cáp
c. Thông tin hệ thống.
- CSDL : Oracle 11g
- Cách thức phân quyền : theo quyền người dùng theo nhóm người
dùng, một người có thể thuộc nhiều nhóm (hệ thống quản lý mạng cáp
GTCAS).
- Quản trị người dùng : Web.
- Phương thức xác thực :
- Web Form tại các đơn vị: Xác thực thông qua Username, Password mã hóa
với CSDL tại máy chủ 10.10.31.135.
- Các hệ thống cùng sử dụng : Điều hành sửa chữa; Quản lý mạng cáp.
- Mã hóa mật khẩu : có.
- Mã hóa thông tin người dùng : không.
- Mã hóa CSDL : không.
d. Thông tin về danh mục người dùng.

* Số lượng:





DataBase Server
Oracle
ĐHSC
Web Server 10.10.31.136
(ASPX; C#)
Client web form
ĐHSC
HTTP
Oracle
Quản lý mạng cáp
Web Server 10.10.31.136
(ASP)
Client web form
QLMC
HTTP
+ ĐHSC : 917 người dùng (tính tới thời điểm hiện tại).
+ GTCAS : 475 người dùng.
* Nhóm người dùng:
- Các công ty điện thoại bao gồm: lãnh đạo, các phòng ban, tổ viễn thông.
- Các phòng ban của VTHN
- Các đơn vị hỗ trợ ĐHSC.
* Thông tin bảng dữ liệu người dùng:
 ĐHSC:
- user_name : account đăng nhập,

- password : mật khẩu – đã mã hóa,
- ghi_chu : ghi chú,
- id_nhanvien : nhân viên,
- theme : kiểu giao diện người dùng,
- dang_hoatdong : trạng thái khóa/mở.
 QLMC:
- USERNAME : account đăng nhập
- PASSWORD : mật khẩu
- HOTEN : họ tên nhân viên
- NGAYSINH : ngày sinh
- MATHEKS : mã thẻ nhân viên
- DONVI : tên đơn vị
- GHICHU : ghi chú
- THONGTIN : thông tin bổ sung về quyền hạn người dùng
- ID : ID
1.2.2. EOffice.
a. Chức năng của hệ thống.
Là hệ thống thông tin nội bộ của công ty trợ giúp cho việc quản lý công việc và
trao đổi thông tin điều hành giữa các bộ phận. Eoffice bao gồm một số chức năng như
gửi nhận thư điện tử, gửi nhận văn bản, quản lý công việc, trao đổi trực tuyến,…
b. Mô hình hệ thống.










Mô hình xác thực hệ thống EOffice
c. Thông tin hệ thống.
- CSDL : MDaemon.
- Cách thức phân quyền : theo quyền người dùng theo phòng ban và
nhóm quyền.
- Quản trị người dùng : Windows Client Form.
- Phương thức xác thực :
o Client Windows Form EOffice: xác thực thông qua giao thức IMAP
(hoặc POP3) tới mail server.
o Sau khi xác thực, các thông tin nghiệp vụ, phân quyền truy nhập
được đặt trên CSDL SQL Server.
- Các hệ thống cùng sử dụng : Eoffice.
- Mã hóa mật khẩu : (theo MDaemon)
- Mã hóa thông tin người dùng : không.
- Mã hóa CSDL : không.
d. Thông tin về danh mục người dùng.
- Số lượng : 1884 người dùng
- Nhóm người dùng : Phân nhóm theo mô hình tổ chức phòng ban sản xuất
kinh doanh của Viễn thông Hà Nội.
1.2.3. Phát triển thuê bao và điều hành thi công.
a. Chức năng của hệ thống.
CSDL email
(mdaemon)
eMail server
10.10.41.8
Client Windows
Form EOffice
IMAP/POP3
Eoffice Server
10.10.40.141

IMAP
CSDL
SQL Server
Bao gồm hai chương trình là:
- Chương trình Phát triển Thuê bao: Là chương trình nhập thông tin đầu vào đầu
tiên cho toàn bộ chu trình chăm sóc về dịch vụ viễn thông cho khách hàng. Chương
trình Phát triển thuê bao trợ giúp nhân viên giao dịch lập hợp đồng tiếp nhận các yêu
cầu về dịch vụ viễn thông của khách hàng, bao gồm các chức năng chính như lập hợp
đồng (đặt mới, dịch chuyển,…), thực hiện giao phiếu trực tiếp tới đơn vị thi công, tra
cứu thông tin khách hàng và hoàn công,…
- Chương trình Điều hành Phát triển Thuê bao: là chương trình hỗ trợ quản lý thi
công lắp đặt dịch vụ cho khách hàng. Bao gồm các chức năng chính như giao phiếu
nhân công, giao phiếu tự động, tra cứu lịch sử lắp đặt,…
b. Mô hình hệ thống.










Mô hình xác thực hệ thống Phát triển thuê bao
c. Thông tin hệ thống.
- CSDL : Oracle 10g.
- Cách thức phân quyền : theo quyền người dùng và quyền cho nhóm
người dùng
- Quản trị người dùng : Windows Client Form.

- Phương thức xác thực :
o Client windows form: kết nối với Application Server theo phương
thức .NET Remoting để xác thực username/password (bản rõ) và lấy
danh sách menu được quyền truy nhập.
Oracle
PTTB
Web Server 10.10.20.11
(ASPX Website; C#)
Web Browser
(clients)
HTTP
Application server
10.10.20.11
Windows Form
(clients)
.NET Remoting
Web Server 10.10.20.11
(WebService; C#)
Các
hệ thống khác
HTTP
o Client web form: phân theo nhóm người dùng, với mỗi nhóm có một
menu javascript riêng, khi người dùng đăng nhập, thực hiện xác định
nhóm và load file javascript tương ứng.
o Các hệ thống khác: xác thực thông qua việc truyền tham số username,
password (bản rõ) vào phần header của web request. Web Server thực
hiện kiểm tra thông tin username, password trên CSDL để cho phép
thực hiện tiếp các nghiệp vụ của Web Service.
- Các hệ thống cùng sử dụng : Phát triển thuê bao; Web site điều hành thi
công; Web service lập hợp đồng cắt phục.

- Mã hóa mật khẩu : có (có thể giải mã).
- Mã hóa thông tin người dùng : không.
- Mã hóa CSDL : không.
d. Thông tin về danh mục người dùng.
* Số lượng: 1726 người dùng:
- Giao dịch viên: 936
- Đài, host, OMC: 387
- Lãnh đạo VTHN, công ty điện thoại: 8
- Các người dùng lấy báo cáo, tra cứu,…
* Nhóm người dùng:
- Lãnh đạo các công ty điện thoại.
- Trưởng các đài, phòng nghiệp vụ.
- Giao dịch viên tiếp nhận yêu cầu.
- Nhân viên điều hành thi công: OMC, Host, đài.
- Cán bộ phòng ban chức năng.
* Thông tin bảng dữ liệu người dùng:
- MA_ND : mã người dùng
- MATKHAU : mật khẩu mã hóa.
- TEN_ND : tên người dùng
- QUANTRI : quản trị
- NHANVIEN_ID : nhân viên
- NHOM_ND_ID : nhóm người dùng
- TRANGTHAI : trạng thái (active/inactive)
- GHICHU : ghi chú.
1.2.4. Quản lý Thanh toán Cước phí Viễn thông.
a. Chức năng của hệ thống.
Là chương trình quản lý nợ của khách hàng, bao gồm các chức năng: gạch nợ
(theo nhiều phương thức khách hàng thực hiện trả), điều chỉnh, quản lý đường thu, đôn
đốc thanh toán, cắt/phục nợ, tổng hợp nợ cuối tháng,… Hiện tại chương trình đang
được xây dựng mới với mô hình hệ thống như phần dưới đây.

b. Mô hình hệ thống.










Mô hình xác thực hệ thống Quản lý Thanh toán
c. Thông tin hệ thống.
- CSDL : MySQL.
- Cách thức phân quyền : theo quyền người dùng và quyền cho nhóm người
dùng
- Quản trị người dùng : Windows Client Form.
- Phương thức xác thực :
o Windows Form điểm giao dịch: Xác thực thông qua Username, Password
mã hóa được gửi cho Web Service máy chủ 10.10.40.250.
o Windows Form trung tâm: kết nối trực tiếp với CSDL QLTT để xác thực.
- Các hệ thống cùng sử dụng : Module nhập chứng từ điểm thu, module xử
lý trung tâm.
- Mã hóa mật khẩu : có.
- Mã hóa thông tin người dùng : không.
- Mã hóa CSDL : không.
d. Thông tin về danh mục người dùng.
MySQL
QLLT
Web Server 10.10.40.250

(Web Service; C#)
Windows form
Trung tâm
Windows Form
Điểm giao dịch
HTTP
* Số lượng: 79 người dùng (tính tới thời điểm hiện tại).
* Nhóm người dùng:
- Cán bộ phòng kỹ thuật nghiệp vụ,
- Tổ trưởng các điểm thu.
- Giao dịch viên.
* Thông tin bảng dữ liệu người dùng:
- Username : mã người dùng
- Password : mật khẩu
- FullName : Tên đầy đủ
- Email : Email
- HomePage : Địa chỉ web site
- Gender : Giới tính
- Status : Trạng thái
- Group_ID : Nhóm
- NHANVIEN_ID : Nhân viên.
1.2.5. Hệ thống báo cáo sản xuất kinh doanh
a. Chức năng của hệ thống.
Là hệ thống cung cấp thông tin về hiện trạng hoạt động sản xuất kinh doanh của
Viễn thông Hà Nội.
b. Mô hình hệ thống.










Mô hình xác thực hệ thống báo cáo sản xuất kinh doanh
c. Thông tin hệ thống.
- CSDL : SQL Server.
SQL Server
(authen)
Web Server 10.10.20.15
(ASP Website)
Web Browser
(clients)
HTTP
- Cách thức phân quyền : theo từng địa chỉ website.
- Phương thức xác thực : xác thực thông qua một trang asp authen
include tại đầu của mỗi trang ASP báo cáo.
- Các hệ thống cùng sử dụng : không.
- Mã hóa mật khẩu : không.
- Mã hóa thông tin người dùng : không.
- Mã hóa CSDL : không.
d. Thông tin về danh mục người dùng.
 Số lượng: 160 người dùng.
 Nhóm người dùng:
o Phòng ban chức năng và lãnh đạo đơn vị, theo dõi báo cáo.
o Cán bộ cập nhật thông tin dạng Excel lên hệ thống.
 Thông tin bảng dữ liệu người dùng:
o usernames: mã người dùng
o passwords: mật khẩu

o HoTen: Họ tên
o DonVi: Đơn vị
o TheKS: Thẻ kiểm soát
o GhiChu: ghi chú.
1.3. Nhu cầu xây dựng hệ thống xác thực tập trung.
Việc xây dựng một hệ thống xác thực tập trung cho tất cả các hệ thống CNTT
của Viễn thông Hà Nội sẽ đáp ứng được nhu cầu quản lý người dùng tập trung. Hệ
thống này sẽ cung cấp tính năng xác thực người dùng cho tất cả các hệ thống CNTT
khác qua các thư viện hàm giao tiếp chuẩn. Khi đó các hệ thống CNTT khác có thể sử
dụng kết quả xác thực do hệ thống xác thực tập trung cung cấp để quyết định người
dùng có quyền hay không hoặc có quyền đến mức nào khi truy nhập từng hệ thống.
Tuy nhiên để xây dựng một hệ thống xác thực tập trung, cần nghiên cứu và đưa
ra một giải pháp tổng thể. Trước tiên cần tiến hành rà soát và đưa ra một quy tắc đặt
tên người dùng phù hợp thông qua việc rà soát, đánh giá và tổng hợp dữ liệu về thông
tin người dùng trong các hệ thống đã có. Từ đó đưa ra một phương án tối ưu nhất cho
việc xây dựng hệ thống dữ liệu người dùng tập trung.
Vấn đề thêm mới người dùng phải được thực hiện trực tiếp trên hệ thống xác
thực tập trung nhằm đảm bảo cho việc quản lý. Các chương trình tác nghiệp sẽ không
trực tiếp tham gia vào khâu thêm mới người dùng mà chỉ sử dụng dữ liệu người dùng.
Sau khi xây dựng thành công hệ thống xác thực tập trung với dữ liệu người dùng
phù hợp cùng với thư viện hàm giao tiếp chuẩn, cần có sự phối hợp chỉnh sửa các
chương trình tác nghiệp liên quan để chuyển đổi các chương trình này sang sử dụng kỹ
thuật xác thực trên hệ thống xác thực tập trung thông qua các hàm giao tiếp đã xây
dựng.
Quá trình chuyển đổi trên cũng cần được tính toán các bước hợp lý, chẳng hạn
quyền truy xuất chương trình vẫn phải được lưu trữ trực tiếp, hệ thống xác thực tập
trung chỉ đưa ra kết quả xác thực trong khi quyền truy nhập chương trình vẫn do
chương trình đó định nghĩa riêng.
CHƯƠNG 2: CƠ SỞ DỮ LIỆU MYSQL, MÔ HÌNH HỆ THỐNG SỬ
DỤNG WEBSERVICE VÀ MỘT SỐ PHƯƠNG PHÁP XÁC THỰC

2.1. Cơ sở dữ liệu MySQL
2.1.1. Giới thiệu về hệ Quản trị cơ sở dữ liệu MySQL
Cơ sở dữ liệu MySQL đã trở thành cơ sở dữ liệu mã nguồn mở phổ biến nhất trên
thế giới vì cơ chế xử lý nhanh và ổn định của nó cùng với sự đáng tin cậy cao và dễ sử
dụng. Nó được sử dụng rộng rãi bởi các nhà phát triển Website riêng lẻ cũng như bởi
rất nhiều tổ chức lớn trên thế giới để tiết kiệm thời gian và tiền bạc cho những
Websites có dung lượng lớn, phần mềm đóng gói, bao gồm cả những hãng đi đầu
trong lĩnh vực công nghiệp công nghệ thông tin như Yahoo, Alcatel-Lucent, Google,
Nokia, YouTube
MySQL không chỉ là cơ sở dữ liệu mã nguồn mở phổ biến nhất trên thế giới, nó
còn trở thành cơ sở dữ liệu được lựa chọn cho thế hệ mới của các ứng dụng xây dựng
trên nền Linux, Apache, MySQL, PHP/Perl/Python. MySQL chạy trên hơn 20
Platform bao gồm: Linux, Windows, OS/X, HP-UX, AIX, Netware mang lại tính
linh hoạt trong việc sử dụng. Một số ưu điểm của MySQL:
a. Tính linh hoạt.
Máy chủ cơ sở dữ liệu MySQL cung cấp đặc tính linh hoạt, có sức chứa để xử lý
các ứng dụng được nhúng sâu với dung lượng chỉ 1MB để chạy các kho dữ liệu đồ sộ
lên đến hàng terabytes thông tin. Sự linh hoạt về Patform là một đặc tính lớn của
MySQL với tất cả các phiên bản của Linux, Unix và Windows đang được hỗ trợ. Tính
chất của mã nguồn mở cho phép MySQL có sự tùy biến hoàn toàn để thích hợp cho
Database Server.
b. Tính thực thi cao.
Kiến trúc Storage-engine cho phép các chuyên gia cơ sở dữ liệu cấu hình máy
chủ cơ sở dữ liệu MySQL theo đặc trưng cho từng ứng dụng đặc thù. Dù ứng dụng là
một hệ thống xử lý giao dịch tốc độ cao hay Website dung lượng lớn phục vụ hàng
triệu yêu cầu mỗi ngày, MySQL cũng có thể đáp ứng khả năng xử lý những đòi hỏi
khắt khe nhất của bất kì hệ thống nào. Với các tiện ích tải tốc độ cao, đặc biệt là khả
năng xử lý Caches và các cơ chế xử lý nâng cao khác, MySQL cung cấp tất cả các tính
năng cần phải có cho các hệ thống doanh nghiệp.
c. Có thể sử dụng ngay

Sự đáng tin cậy cao là tiêu chuẩn của MySQL. MySQL đưa ra nhiều tùy chọn từ
cấu hình C/S tốc độ cao, cho phép các nhà phân phối bên thứ 3 đưa ra những giải pháp
tích hợp trên Server cơ sở dữ liệu MySQL.
d. Hỗ trợ giao dịch mạnh
MySQL cung cấp một trong số những Engine thao tác cơ sở dữ liệu mạnh nhất
trên thị trường, bao gồm hỗ trợ giao dịch ACID, không hạn chế số bản ghi, khả năng
phân loại và hỗ trợ giao dịch đa dạng Multi-version. Tính toàn vẹn của dữ liệu cũng
được bảo đảm trong suốt quá trình Server hoạt động.
e. Lưu trữ Data đáng tin cậy
MySQL đạt chuẩn cho các Website phải trao đổi dữ liệu thường xuyên vì nó có
Engine xử lý tốc độ cao, khả năng chèn dữ liệu nhanh và hỗ trợ mạnh đối với các chức
năng tìm kiếm. Những tính năng này cũng được áp dụng cho môi trường lưu trữ dữ
liệu đến mức hàng terabytes của MySQL.
f. Chế độ bảo mật dữ liệu mạnh
Vì bảo mật dữ liệu là công việc số một của các chuyên gia về cơ sở dữ liệu,
MySQL đưa ra tính năng bảo mật đặc biệt chắc chắn. Trong quá trình xác thực quyền
truy cập cơ sở dữ liệu, MySQL cung cấp các kĩ thuật mạnh mà chắc chắn chỉ có người
sử dụng đã được phân quyền mới có thể truy nhập được vào Server lưu trữ cơ sở dữ
liệu. SSH và SSL cũng được hỗ trợ để các kết nối được an toàn và bảo mật. Một đối
tượng Framework được đưa ra để chỉ có người sử dụng có quyền mới thao tác được dữ
liệu. Tiện ích Backup và Recovery cung cấp bởi MySQL và các hãng phần mềm thứ 3
cho phép Backup mức Logic và vật lý cũng như Recovery toàn bộ dữ liệu hoặc dữ liệu
tại một thời điểm nào đó.
g. Phát triển đa dạng các phương thức
Một trong số các lý do khiến cho MySQL là cơ sở dữ liệu mã nguồn mở phổ biến
nhất thế giới là nó cung cấp đa dạng các phương thức thao tác dữ. Cơ sở dữ liệu
MySQL hỗ trợ Stored procedure, Trigger, Function, View, Cursor, ANSI-standard
SQL và nhiều phương thức nữa. Thư viện Plug-in sẵn sàng để nhúng cơ sở dữ liệu
MySQL và hỗ trợ trong bất kì ứng dụng nào. MySQL cũng cung cấp các bộ kết nối
như ODBC, JDBC cho tất cả các Form của ứng dụng sử dụng MySQL.

h. Dễ dàng quản lý
MySQL trình diễn khả năng cài đặt nhanh đặc biệt với thời gian trung bình từ lúc
Download phần mềm đến khi cài đặt hoàn thành chỉ mất chưa đầy 15 phút, cho dù
Platform là Microsoft Windows, Linux, Macintosh hay Unix. Khi đã được cài đặt, tính
năng tự quản lý như tự động mở rộng không gian, tự khởi động lại và cấu hình động
sẵn sàng cho người quản trị cơ sở dữ liệu làm việc. MySQL cũng cung cấp công cụ
quản lý dạng giao diện đồ họa cho phép một DBA quản lý, cấu hình và điều khiển hoạt
động của nhiều Server MySQL từ một máy tính. Nhiều công cụ của các hãng phần
mềm thứ 3 cũng có sẵn trong MySQL để cung cấp tính năng này.
i. Mã nguồn mở tự do và hỗ trợ 24/7
Nhiều công ty lưỡng lự trong việc giao phó toàn bộ cho phần mềm mã nguồn mở
vì họ không thể tìm được sự hỗ trợ hay hệ thống phục vụ chuyên nghiệp. Họ tin vào
phần mềm có bản quyền, nhưng những lo lắng của họ có thể được dẹp bỏ với MySQL.
j. Tổng chi phí thấp nhất
Bằng cách sử dụng MySQL cho các dự án phát triển mới, người dùng đang thấy
rõ được việc tiết kiệm chi phí. Tính tin cậy và dễ duy trì của MySQL ở mức trung bình
và người quản trị cơ sở dữ liệu không phải mất nhiều thời gian cho các thao tác quản
trị.
2.1.2. Truy xuất hệ Quản trị cơ sở dữ liệu MySQL
Về mặt kỹ thuật, Term cơ sở dữ liệu có tác động đến file hoặc một nhóm các file
lưu giữ dữ liệu có thật. Dữ liệu được truy cập bằng việc sử dụng một tập hợp các
chương trình được gọi là DBMS (Database Management System). Hầu như toàn bộ
DBMS hiện nay đang là các RDBMS (Relational Database Management Systems -
Các hệ thống quản trị cơ sở dữ liệu quan hệ), trong đó dữ liệu được tổ chức và lưu trữ
trong một bộ các bảng có liên quan. MySQL cũng là RDBMS vì nó đặc biệt phù hợp
với các Website.
Để cơ sở dữ liệu trở nên có ích, cần phải chuyển được dữ liệu vào và ra khỏi đó.
Các chương trình là các công cụ thực hiện điều này vì chúng tác động vào cơ sở dữ
liệu để lưu giữ và truy xuất dữ liệu. Một chương trình kết nối với cơ sở dữ liệu và đưa
ra yêu cầu “Hãy lấy dữ liệu này và lưu trữ ở vị trí chỉ định” trong khi một chương trình

khác lại đưa một yêu cầu “Hãy tìm một dữ liệu chỉ định và đưa nó ra”. Các chương
trình ứng dụng có tác động lên cơ sở dữ liệu đang chạy khi người sử dụng tác động lên
trang Web. Ví dụ, khi người sử dụng ấn vào nút Submit sau khi đã điền vào các Form,
chương trình liền “chế biến” thông tin trong Form đó và lưu nó trong cơ sở dữ liệu.
MySQL là một RDBMS tốc độ nhanh và dễ sử dụng dùng cho các cơ sở dữ liệu
trên các Website. Tốc độ là điểm tập trung chính của các nhà lập trình từ khi bắt đầu.
Mặc dù MySQL có ít tính năng hơn các đối thủ thương mại của nó thì nó có toàn bộ
các tính năng cần thiết cho bộ phận quan trọng các lập trình viên cơ sở dữ liệu. Dễ
dàng hơn khi cài đặt và sử dụng so với các đối thủ cạnh tranh thương mại của mình và
sự khác biệt về giá là thế mạnh của MySQL. MySQL được phát triển, phân phối và
được hỗ trợ bởi MySQL AB, một công ty Thuỵ điển. MySQL được phổ biến theo 2
cách:
- Phần mềm nguồn mở: MySQL phổ biến qua GNU GPL và không mất phí.
Bất cứ ai đáp ứng được các yêu cầu của GPL đều có thể sử dụng phần mềm một
cách miễn phí. MySQL được sử dụng miễn phí như một cơ sở dữ liệu trên Website.
- Bản quyền thương mại: MySQL phổ biến với giấy phép đăng ký thương mại
đối với những ai coi trọng nó hơn GPL. Nếu lập trình viên muốn sử dụng MySQL
như một phần của sản phẩm phần mềm và muốn bán sản phẩm hơn là công bố nó
dưới GPL, lập trình viên cần phải mua bản quyền thương mại. Giá mua bản quyền
rất hợp lý.
Tìm kiếm hỗ trợ kỹ thuật đối với MySQL không phải là vấn đề. Người thiết kế
có thể tham gia vào một trong các cuộc thảo luận qua e-mail được cung cấp trên
Website MySQL và có thể tìm kiếm các các câu hỏi và trả lời về MySQL.
a. Các ưu thế của MySQL
MySQL là cơ sở dữ liệu phù hợp với các lập trình viên Web. Tốc độ và kích cỡ
nhỏ làm cho nó trở nên lý tưởng đối với Website. Thực tế nó chính là một chương
trình mã nguồn mở và đây chính là cơ sở giải thích cho tính phổ biến của nó. Các ưu
điểm của MySQL:
 Tốc độ nhanh: Mục tiêu chính của các đối tượng đã phát triển MySQL là
tốc độ nên phần mềm được thiết kế ngay từ đầu với tốc độ trong ý tưởng.

 Giá hợp lý: MySQL được miễn phí dưới bản quyền GPL nguồn mở và phí
cho đăng ký thương mại rất hợp lý.
 Dễ dàng sử dụng: Có thể xây dựng và tác động lên cơ sở dữ liệu MySQL
bằng cách sử dụng một câu lệnh ngôn ngữ SQL, đây là ngôn ngữ tiêu chuẩn
để liên lạc với các RDBMS.
 Có thể chạy trên nhiều hệ điều hành: MySQL chạy trên một danh mục
rộng các hệ điều hành khác nhau như Windows, Linux, Mac OS, Unix
(trong đó có Solaris, AIX và DEC UNIX), FreeBSD, OS/2, Irix và các hệ
khác.
 Hỗ trợ kỹ thuật trên diện rộng: Số lượng lớn người sử dụng cung cấp hỗ
trợ miễn phí qua E-mail. Các nhà lập trình MySQL tham gia vào các danh
sách E-mail hỗ trợ. Có thể mua hỗ trợ kỹ thuật từ MySQL AB với mức phí
rất nhỏ.
 Tính bảo mật: Tính mềm dẻo của MySQL cho phép cập nhật một số hoặc
toàn bộ các đặc quyền cơ sở dữ liệu (Ví dụ quyền tạo lập cơ sở dữ liệu hoặc
xoá dữ liệu) đối với người sử dụng riêng biệt hoặc các nhóm người sử dụng.
Các mật khẩu được mã hoá.
 Hỗ trợ các cơ sở dữ liệu lớn: MySQL quản lý các cơ sở dữ liệu lên đến 50
triệu dòng hoặc hơn. Kích thước file xác lập mặc định giới hạn đối với bảng
là 4 GB, nhưng có thể tăng file này lên giới hạn lý thuyết là 8 triệu TB nếu
hệ điều hành có thể quản lý được.
 Có thể thuận theo ý người dùng: Đăng ký GPL nguồn mở cho phép những
người làm chương trình có thể sửa đổi phần mềm MySQL để phù hợp với
các môi trường đặc trưng.
b. Hoạt động của MySQL
Phần mềm MySQL gồm có máy chủ MySQL, một vài các chương trình tiện ích
có trên bộ phận quản trị của cơ sở dữ liệu MySQL và một số phần mềm hỗ trợ mà
MySQL Server cần thiết. Trọng tâm của hệ thống là MySQL Server.
MySQL Server điều hành hệ thống cơ sở dữ liệu. Nó điều hành toàn bộ các chỉ
dẫn cơ sở dữ liệu. Nếu muốn tạo ra một cơ sở dữ liệu mới, phải gửi một thông điệp

cho MySQL Server với nội dung “hãy tạo một cơ sở dữ liệu và gọi nó là newdata”.
Sau đó MySQL Server tạo một từ điển phụ trong từ điển dữ liệu của nó với tên là
newdata. Cùng một phương thức đó, để bổ xung dữ liệu cho cơ sở dữ liệu phải gửi một
“thông điệp chào” MySQL Server, cung cấp cho nó dữ liệu và yêu cầu bổ xung dữ liệu
vào nơi cần thiết.
Trước khi đi qua các hướng dẫn cho các MySQL Server cần phải chạy và chờ
các yêu cầu. MySQL Server thường được thiết lập vì vậy mà nó sẽ được bắt đầu khi
máy tính khởi động và chạy liên tục. Đây là bước Setup bình thường đối với Website.
Tuy nhiên, không cần thiết phải buộc nó hoạt động ngay khi máy tính được khởi động.
Ta có thể bắt đầu từ bất cứ lúc nào muốn truy cập vào cơ sở dữ liệu. Khi chạy,
MySQL Server vẫn tiếp tục nghe các thông điệp hướng trực tiếp vào nó.
c. Các kiểu dữ liệu MySQL
MySQL lưu trữ thông tin trong các dạng thức khác nhau dựa trên kiểu thông tin.
MySQL cho phép các kiểu dữ liệu khác nhau được sử dụng trong các cách khác nhau.
Các kiểu dữ liệu chính là dữ liệu ký tự, dữ liệu phông chữ và dữ liệu thời điểm/thời
gian.
Dữ liệu ký tự
Kiểu dữ liệu chung nhất là dữ liệu ký tự, dữ liêu này được lưu trữ như một chuỗi
các ký tự và có thể được vận dụng trong các chuỗi ký tự. Đa số thông tin lưu trữ sẽ có
dữ liệu ký tự như là tên khách hàng, địa chỉ, số điện thoại Dữ liệu ký tự có thể dịch
chuyển và in ra. Hai chuỗi ký tự có thể được ghép nối, chuỗi phụ có thể được chọn từ
chuỗi dài hơn và một chuỗi có thể thay thế cho chuỗi khác. Dữ liệu ký tự có thể được
lưu trữ trong dạng thức độ dài cố định hoặc độ dài khác nhau:
 Dạng thức độ dài cố định: Trong dạng thức này, MySQL dự trữ một khoảng
trống cố định dành cho dữ liệu. Nếu dữ liệu dài hơn độ dài cố định, chỉ có
các ký tự phù hợp mới được lưu, các ký tự còn lại không được lưu. Nếu
chuỗi ký tự lại ngắn hơn độ dài cố định, các khoảng trống bị bỏ phí.
 Dạng thức có độ dài khác nhau: Trong dạng thức này, MySQL lưu trữ chuỗi
ký tự trong lĩnh vực có cùng độ dài như chuỗi ký tự. Người thiết kế vẫn định
rõ độ dài của chuỗi ký tự, nhưng nếu chuỗi này ngắn hơn độ dài đã định

MySQL chỉ sử dụng khoảng trống đã yêu cầu hơn là bỏ trống khoảng thêm
đó. Nếu chuỗi ký tự dài hơn khoảng được định rõ, các ký tự thêm không
được lưu lại.
Nếu sự khác nhau về độ dài chuỗi ký tự chỉ chút ít, hãy sử dụng dạng thức độ dài
cố định. Tuy nhiên, nếu chuỗi ký tự có thể biến đổi nhiều hơn vài ký tự, hãy sử dụng
dạng thức độ dài biến đổi để lưu khoảng trống.
Dữ liệu số
Một kiểu dữ liệu chung khác nữa là dữ liệu bằng số hay nói cách khác dữ liệu
được lưu như số. Các số thập phân có thể được lưu như số nguyên. Khi dữ liệu lưu
như số, nó có thể được sử dụng trong các tính toán như cộng, trừ, bình phương Nếu
như dữ liệu không được sử dụng cho các tính toán dạng số, việc lưu trữ nó như chuỗi
ký tự là tốt nhất vì lập trình viên sẽ sử dụng nó như một chuỗi ký tự.
MySQL lưu các số dương và âm nhưng có thể ra lệnh cho MySQL lưu chỉ các số
dương. Nếu dữ liệu chỉ là số âm, hãy lưu dữ liệu như số không dấu.
Dữ liệu Thời điểm và thời gian
Kiểu dữ liệu chung thứ ba là dữ liệu thời điểm và thời hạn. Dữ liệu được lưu như
thời hạn có thể được trình bày trong các loại dạng thức thời hạn khác nhau. Nó có thể
được sử dụng để xác định độ dài của thời gian giữa hai thời điểm hoặc hai thời hạn
hoặc giữa thời điểm hoặc thời gian đặc trưng và thời điểm hoặc thời gian bất kỳ.
Dữ liệu liệt kê
Đôi khi dữ liệu chỉ có một giới hạn các giá trị, ví dụ các giá trị là có hoặc không.
MySQL cung cấp loại dữ liệu được gọi là bảng liệt kê được sử dụng với loại dữ liệu
này. Yêu cầu MySQL các giá trị nào có thể được lưu trữ trong cột và MySQL sẽ
không lưu bất cứ các giá trị nào khác trong cột.
d. Tên loại dữ liệu MySQL
Khi tạo ra cơ sở dữ liệu, lập trình viên lệnh cho MySQL loại dữ liệu nào có thể
có trong cột đặc biệt bằng việc sử dụng các tên MySQL dành cho các loại dữ liệu.
Bảng sau đây cho thấy các kiểu dữ liệu MySQL được sử dụng đa số là trong các ứng
dụng cơ sở dữ liệu.
Các kiểu dữ liệu MySQL

Kiểu dữ liệu MySQL
Mô tả
CHAR(length)
Chuỗi ký tự độ dài cố định
VARCHAR(length)
Chuỗi ký tự độ dài biến đổi. Chuỗi ký tự dài nhất có
thể được lưu là length, nó có thể giữa 1 và 255.
TEXT
Chuỗi ký tự có độ dài biến đổi với độ dài tối đa là
64KB các dòng text.
INT(length)
Số nguyên từ -2147483648 đến +2147483647. Con số
có thể được hiển thị là giới hạn về độ dài. Ví dụ, nếu
độ dài là 4, chỉ có các số từ -999 đến 999 có thể được
thể hiện, mặc dù các con số cao hơn được lưu giữ.
INT(length) UNSIGNED
Số nguyên từ 0 đến 4294967295. Độ dài là kích thước
của chữ số có thể được hiện thị. Ví dụ, nếu độ dài là
4, chỉ có các con số đến 9999 có thể được hiển thị,
mặc dù các con số cao hơn có thể được lưu.
DECIMAL(length.doc)
Số thập phân nơi length là số lượng các ký tự có thể
được sử dụng để hiển thị số gồm các điểm, các dấu
hiệu, các số mũ và dec là số tối đa các vị trí thập phân
được cho phép. Ví dụ, 12.34 có độ dài là 5 và thập
phân là 2.
DATE
Giá trị thời hạn với năm, tháng và ngày. Hãy trình
bày giá trị như YYYY-MM-DD (ví dụ, 2001-04-03).
TIME

Giá trị thời gian với giờ, phút và giây. Các display
như HH:MM:SS.
DATETIME
Thời hạn và thời gian được lưu cùng nhau. Các
display như YYYY-MM-DD HH:MM:SS.
ENUM (“vall.”val2” )
Chỉ các giá trị được liệt kê có thể được lưu. Tối đa
các giá trị 65535 có thể được liệt kê.

2.1.3. Những cú pháp cơ bản của MySQL
- Cú pháp tạo 1 cơ sở dữ liệu: CREATE DATABASE tên_cơ_sở_dữ_liệu;
- Cú pháp sử dụng cơ sở dữ liệu: Use tên_database;
- Cú pháp thoát khỏi cơ sở dữ liệu: EXIT
- Cú pháp tạo 1 bảng trong cơ sở dữ liệu:
CREATE TABLE user (<tên_cột> <mô_tả>,…,<tên_cột_n>… <mô_tả_n>)
Ví dụ: create table user(user_id INT(15) UNSIGNED NOT NULL
AUTO_INCREMENT, username VARCHAR(255) NOT NULL, password CHAR(50)
NOT NULL, email VARCHAR(200) NOT NULL, PRIMARY KEY (user_id));
- Hiển thị có bao nhiều bảng: SHOW TABLES;
- Hiển thị có bao nhiêu cột trong bảng: SHOW COLUMNS FROM TABLE;
- Thêm 1 cột vào bảng:
ALTER TABLE tên_bảng ADD <tên_cột> <thuộc_tính> AFTER <tên_cột>
Ví dụ: alter table user add age varchar(200) NOT NULL after email;
- Thêm giá trị vào bảng:
INSERT INTO Tên_bảng(tên_cột) VALUES(Giá_trị_tương_ứng);
Ví dụ: insert into user(username,password,email,age,home)
values(“Lanna”,”12345″,””,”F”,”www.abc.com”);
- Truy xuất dữ liệu:
SELECT tên_cột FROM Tên_bảng;
Ví dụ: select user_id,username from user;

- Truy xuất dữ liệu với điều kiện:
SELECT tên_cột FROM Tên_bảng WHERE điều kiện;
Ví dụ: select user_id,username from user where user_id=2;
- Truy cập dữ liệu và sắp xếp theo trình tự
SELECT tên_cột FROM Tên_bảng
WHERE điều kiện (có thể có where hoặc không)
ORDER BY Theo quy ước sắp xếp.

Trong đó quy ước sắp xếp bao gồm hai thông số là ASC (từ trên xuống dưới),
DESC (từ dưới lên trên).

Ví dụ: select user_id,username from user order by username ASC ;

- Truy cập dữ liệu có giới hạn :
SELECT tên_cột FROM Tên_bảng
WHERE điều kiện (có thể có where hoặc không)
LIMIT vị trí bắt đầu, số record muốn lấy ra

Ví dụ: select user_id,username from user order by username ASC limit 0,10 ;

- Cập nhật dữ liệu trong bảng:
UPDATE tên_bảng SET tên_cột=Giá trị mới
WHERE (điều kiện).

Nếu không có ràng buộc điều kiện, chúng sẽ cập nhật toàn bộ giá trị mới của các
record trong bảng.

Ví dụ: update user set email=”” where user_id=1 ;

- Xóa dữ liệu trong bảng:

DELETE FROM tên_bảng WHERE (điều kiện).

Nếu không có ràng buộc điều kiện, chúng sẽ xó toàn bộ giá trị của các record
trong bảng.

Ví dụ: delete from user where user_id=1 ;

2.1.4. So sánh MySQL với MSSQL
MySql phiên bản 4.x không thể so với MSSQL vì phiên bản này thiếu khá nhiều
tính năng quan trọng để được xếp loại là một CSDL cao cấp (ví dụ như thiếu ứng dụng
View, StoreProc, Triggers…). Để công bằng nên thử so sánh MySql 5.x và MSSQL
2005.
a. Tính năng
MySQL hơn MSSQL ở tính năng cung cấp nhiều loại Sorage Engine. Tuy nhiên
về mặt tích hợp chặt chẽ cho trọn bộ hệ thống và công cụ phát triển Software thì
MSSQL tốt hơn MySQL, đặc biệt ở mảng ứng dụng .NET. MSSQL còn hỗ trợ XML
trực tiếp trong DB, trong khi đó thì MySQL chưa làm được. Các chức năng cần thiết
như View, Store Procedure, Trigger thì cả hai tương đương nhau.
b. Hiệu suất
Tính về mặt hiệu suất, có rất nhiều thử nghiệm cho rằng MSSQL có Performance
kém hơn MySQL nhiều mặt. MSSQL đòi hỏi tài nguyên rất lớn (CPU mạnh, nhiều
RAM…), nếu không nó rất ì ạch. MySQL không đòi hỏi nhiều như MSSQL. MySQL
có thể chạy trên các hệ thống UNIX và có Performance tốt hơn hẳn MSSQL trên hệ
thống Windows Server trong nhiều trường hợp.
c. Bảo mật
MSSQL qua mặt MySQL về tính bảo mật ở mức Column Level. MySQL chỉ có
thể đặt quyền truy nhập (Set Access) đến Row Level là hết. Hệ thống xác thực người
dùng của MSSQL cũng qua mặt MySQL. Tuy vậy, vbefe mặt bảo mật thì MSSQL dễ
bị khai thác hơn MySQL bởi MSSQL tích hợp quá chặt vào hệ điều hành. Lỗi của hệ
điều hành hoặc một bộ phận nào đó dẫn đến việc MSSQL bị khai thác nhanh hơn

MySQL.
d. Khả năng nhân bản (Replication)
Cả hai đều có khả năng Replicate hoặc cung cấp phương tiện để làm việc này.
Tuy nhiên, MySQL nhanh hơn và ít sự cố hơn MSSQL vì tất cả các SQL Statements
dùng để thay đổi, cập nhật dữ liệu được lưu giữ trong Binary_log. MSSQL cung cấp
nhiều phương pháp Replicate cao cấp hơn, chi tiết hơn bởi thế nó phức tạp hơn và
chậm hơn.
e. Khả năng phục hồi (Recovery)
Nếu MySQL chạy thuần túy với MyISAM Storage Engine thì khả năng phục hồi
(sau khi bị Crash) không cách gì so sánh được với MSSQL. Tuy nhiên nếu MySQL
chạy với Innodb Engine thì khả năng phục hồi không thua kém gì MSSQL. Ngoài ra,
khả năng phục hồi còn được xét ở mức độ liên quan đến khả năng nhân bản
(Replication) ở trên. Bởi vì MSSQL cung cấp nhiều phương thức nhân bản nên việc
phục hồi dữ liệu trên MSSQL dễ dàng hơn.
f. Chi phí

×