Tài liệu tham khảo ngôn ngữ lập trình PHP

-PHP thực hiện với tốc độ rất nhanh và hiệu quả .Một Server bình th-ờng

có thể đáp ứng đ-ợc hàng triệu truy cập tới trong một ngày.

PHP hỗ trợ kết nối tới rất nhiều hệ CSDL khác nhau:

PostgreSQL,mSQL,Oracle, dbm, filePro ,Hyperware, informix,InterBase,

Sybase, . Ngoài ra còn hỗ trợ kết nốivới ODBC thông qua đó có thể kết

nối với nhiều ngôn ngữ khác mà ODBC hỗ trợ.

-PHP cung cấp một hệ thống th-viện phong phú : Do PHP ngay từ đầu

đ-ợc thiết kế nhằm mục đích xây dựng và phát triển các ứng dụng trên

web nên PHP cung cấp rất nhiều hàm xây dựng sẵn giúp thực hiện các

công việc rất dễ dàng : gửi, nhận mail ,làm việc với các cookie, và nhiều

thứ khác nữa .

-PHP là một ngôn ngữ rất dễ dùng, dễ học và đơn giản hơn nhiều so với

các ngôn ngữ khác nh-Perl, Java. Nếu bạn đãbiết ngôn ngữ C thì mọi

việc sẽ hoàn toàn thuận lợi .

-PHP có thể sử dụng đ-ợc trên nhiều hệ điều hành, chúng ta có thể viết

chúng trên Unix, Lunix và các phiên bản của Windows. Và có thể đem

mã PHP này chạy trên các hệ điềuhành khác mà không phải sửa đổi lại

mã.

-PHP là ngôn ngữ mã nguồn mở.

pdf115 trang | Chuyên mục: PHP | Chia sẻ: dkS00TYs | Lượt xem: 1921 | Lượt tải: 1download
Tóm tắt nội dung Tài liệu tham khảo ngôn ngữ lập trình PHP, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
với máy chủ Mysql thì những đặc tính của bạn sẽ đ−ợc 
xác định bởi máy chủ từ chính nơi mà bạn kết nối và tên ng−ời dùng mà bạn 
nhập. hệ thống quyền sẽ theo những đặc tính của bạn và những gì bạn muốn 
để thực hiện 
 Mysql xem xét cả hostname và username đ−ợc bạn chỉ ra vì một số lí 
do đơn giản là tên cấp cho ng−ời dùng cung cấp sẽ thuộc về ng−ời ở mọi nơi 
trên mạng. ví dụ ng−ời dùng có tên là Bill kết nối vào Whitehouse.gov không 
cần thiết phải giống ng−oiừ dùng Bill kết nối vào micrsoft.com. Mysql điều 
khiển điều này bằng cách cho phép bạn phân biệt nhiều ng−ời dùng trong 
những máy chủ khác nhau mà có cùng tên giống nhau, bạn có thể gán cho 
ng−ời dùng có tên là Bill một tập hợp các quyền để kết nối vào 
Whitehouse.và một tập hợp các quyền khác để kết nối vào micrsoft.com 
Mysql điều khiển truy nhập bao gồm hai khung cảnh khác nhau 
Khung cảnh 1: máy chủ sẽ kiểm tra bạn có quyền kết nối hay không 
Khung cảnh 2: khi bạn kết nối với máy chủ thì Mysql sẽ kiểm tra những yêu 
cầu mà bạn đ−a ra để xem bạn có đủ quyền hạn để thực hiện nó một cách 
thích đáng. ví dụ nếu bạn đã kết nối vào CSDL và cố gắng thực hiện một 
lệnh Select hoặc xoá một bảng của CSDL thì Mysql sẽ kiểm tra xem bạn có 
quyền select hoặc drop để thực hiện điều đó hay khồng . 
Mysql dùng các bảng USER,DB,HOST trong CSDL mysql để điều khiển 
truy nhập ở cả 2 khung cảnh trên, các tr−ơng trong các bảng này đ−ợc cung 
cấp d−ới đây: 
Ban chỉ đạo cntt của cơ quan đảng PHP & MySQL 
 111
Tên bảng USER DB HOST 
Các tr−ờng phạm vi Host Host Host 
 User Data DB 
 Password User 
Các tr−ờng chỉ quyền Select_Priv Select_Priv Select_Priv 
 Insert_Priv Insert_Priv Insert_Priv 
 Update_Priv Update_Priv Update_Priv 
 Delete_Priv Delete_Priv Delete_Priv 
 Index_Priv Index_Priv Index_Priv 
 Alter_Priv Alter_Priv Alter_Priv 
 Creat_Priv Creat_Priv Creat_Priv 
 Drop_Priv Drop_Priv Drop_Priv 
 Grant_Priv Grant_Priv Grant_Priv 
 References_Priv 
 Reload_Priv 
 Shutdown_Priv 
 Process_Priv 
 file_Priv 
Mỗi bảng phân quyền bao gồm tr−ờng phạm vi và tr−ờng quyền, tr−ờng 
phạm vi xác định các phạm vi các mục trong bảng các khung cảnh là nơi các 
mụ đó khép vào. ví dụ trong bảng ng−ời dung mục HOST ,USER có giá trị 
Là ‘vnuh.vnn.vn’và ‘thu’ dùng để nhập ra sự kết nối tới máy chủ bởi ‘thu’kết 
nối tới máy chủ ‘vnuh.vnn.vn’t−ơng tự trong bảng DB mục HOST ,USER, 
DB có các giá trị là ‘vnuh.vnn.vn’và ‘thu’, ‘repost ’ dùng để nhận ra sự kết 
nối bởi ‘thu’ kết nối tới máy chủ ‘vnuh.vnn.vn’, truy nhập đến CSDL 
‘repost’ bảng table-priv,column-priv chứa tr−ờng phạm vi để chỉ ra các bảng, 
bảng / cột đ−ợc kết hợp lại cho các mục đ−ợc yêu cầu. 
-Để thực hiện chức năng kiểm tra truy nhập việc so sánh giá trị của Host thì 
không phân biệt chữ hoa chữ th−ờng, giá trị của db, password và table_name 
thì có phân biệt chữ hoa chữ th−ờng, column_name không phân biệt chữ hoa 
chữ th−ờng. 
-Tr−ờng trong quyền mỗi bảng chỉ ra các quyền đ−ợc gán bởi các thực thể 
bảng đó là các thao tác có thể cho phép thực hiện. Tr−ờng phạm vi có kiểu 
xâu đ−ợc khai báo nh− tr−ớc đây, giá trị mặc định cho mỗi tr−ờng là rỗng. 
Ban chỉ đạo cntt của cơ quan đảng PHP & MySQL 
 112
Tên tr−ờng Kiểu tr−ờng 
Host CHAR(60) 
User CHAR(16) 
Password CHAR(16) 
Db CHAR(64) 
Table_name CHAR(60) 
Column_name CHAR(60) 
Trong tất cả các bảng uer, host, db tất cả các tr−ờng đều khai báo là 
Enum(‘N’,’Y’), giá trị mặc định cho mỗi tr−ờng là ‘N’ 
-Trong các bảng table_priv, column_priv các tr−ờng đều đ−ợc gán kiểu tập 
hợp. 
Đặc điểm về quyền trong các bảng của CSDL Mysql 
-Bảng user: 
Tr−ờng phạm vi trong bảng user xác định xem bạn có đ−ợc phép thực hiện 
hoặc không đ−ợc phép thực hiện kết nối bất kỳ một quyền nào đ−ợc gán 
trong bảng user thì tất cả các quyền nào là toàn cục trong mysql, nghĩa là các 
quyền này sẽ có hiệu lực đối với tất cả CSDL trên server 
-Bảng db và bảng host đ−ợc sử dụng kết hợp với nhau: 
Tr−ờng phạm vi trong bảng db xác định những ng−ời dùng nào đ−ợc phép 
truy cập đến CSDL nào, máy chủ nào, tr−ờng quyền sẽ chỉ ra các thao tác 
nào sẽ đ−ợc cho phép thực hiện. 
Bảng host đ−ợc sử dụng nh− một sự mở rộng của bảng db khi bạn muốn trao 
cho các thực thể trong bảng db có quyền đối với nhiều host. Ví dụ, bạn muốn 
một ng−ời dùng trong bảng db có thể sử dụng một CSDL từ nhiều máy chủ 
khác nhau. 
Bảng table_priv, column_priv cũng t−ơng tự nh− bảng db nh−ng nó có quản 
lý một cách chi tiết hơn, các quyền sẽ đựoc gán tại nhiều mức khác nhau cho 
các bảng, cột trong CSDL. 
Chú ý: Các quyền phục vụ cho công tác quản trị chỉ đ−ợc chỉ ra trong bảng 
user bởi vì một lý do đơn giản là các quyền này chỉ thao tác với máy chủ nên 
không có lý do gì đ−a nó vào trong bảng phân quyền khác. 
VI. Điều khiển truy nhập 
1. Điều khiển truy nhập 
Khung cảnh một (Stage 1) thẩm tra kết nối thuận hoặc từ chối việc kết nối 
của bạn dựa trên các đặc tính của bạn và thẩm tra lại điều này bằng cách bạn 
phải cung cấp một mật khẩu dúng. Nếu không nó sẽ từ chối việc kết nối của 
bạn, nếu thành công nó sẽ chuyển sang khung cảnh thứ hai (Stage 2). 
Việc xác định những đặc tính của bạn dựa trên hai thông tin cơ bản: 
Ban chỉ đạo cntt của cơ quan đảng PHP & MySQL 
 113
- Tên máy chủ mà bạn muốn kết nối 
- Tên ng−ời dùng 
Việc kiểm tra sẽ thực hiện trên ba tr−ờng phạm vi trong bảng user đó là host, 
user và password máy chủ chi chấp nhận việc kết nối của bạn khi mà các 
thực thể trong bảng user phù hợp với host, user và bạn phải cung cấp 
password đúng. 
2. Điều khiển truy nhập 
Khung cảnh 2(Stage 2) xác minh yêu cầu khi việc kết nối của bạn đã thành 
công mysql server sẽ chuyển sang khung cảnh 2, đối với mỗi yêu cầu của 
mỗi kết nối mysql server sẽ thẩm tra xem bạn có đủ quyền hạn để thực hiện 
các quyền hạn đó hay không dựa trên các loại thao tác mà bạn muốn thực 
hiện việc thẩm tra sẽ đựoc thực hiện đối với các tr−ờng quyền trong các bảng 
phân quyền, user, host, db. Tất cả các quyền đựoc cấp trong bảng user sẽ 
đựoc ấn định là toàn cục cho tất cả các CSDL nói cách khác tất cả các quyền 
đ−ớc cấp trong bảng user là superuser. 
Vì vậy mà bạn chỉ nên cấp quyền trong bảng user cho những ng−ời dùng nh− 
ng−ời quản trị máy chủ hoặc ng−ời quản trị CSDL. 
VII. Khi nào việc thay đổi quyền hạn có hiệu lực 
Khi mysql khởi động thì nội dung của tất cả các bảng phân quyền đựoc đặt 
vào bộ nhớ và khi đó nó sẽ có hiệu lực. 
Việc bạn thay đổi tất cả các bảng phân quyền sử dụng lệnh GRANT 
(Revoke) hoặc đặt lại mật khẩu sẽ đựoc máy chủ chú ý ngay lập tức. 
Nếu bạn thực hiện việc thay đổi các bảng phân quyền một cách thủ công nh− 
là sử dụng lệnh INSERT, UPDATE,… thì bạn nên dùng lệnh flush priviliges 
hoặc chạy mysqladmin flush priviliges hoặc mysqladmin reload để thông 
báo cho server biết để reload các bảng phân quyền. 
Khi server thông báo một chú ý rằng các bảng phân quyền đã bị thay đổi thì 
các kết nối đang tồn tại ở phía client sẽ bị thay đổi nh− sau: 
-Các thay đổi đối với các bảng, cột sẽ có hiệu lực đối với các yêu cầu tiếp 
theo ở phía client. 
-Các thay đổi về quyền đối với CSDL sẽ có hiệu lực đối với câu lệnh 
userdb_name tiếp theo. 
đối với các quyền toàn cục việc thay đổi password sẽ có hiệu lực ở lần kết 
nối tiếp theo. 
Ban chỉ đạo cntt của cơ quan đảng PHP & MySQL 
 114
VIII. Cài đặt việc khởi tạo hệ thống quyền trong mysql 
-Sau khi cài đặt mysql bạn có thể đặt việc khởi tạo các quyền cho mysql 
bằng việc chạy scripts/mysql_install_db. Kịch bản này sẽ chạy mysqlserver 
để khởi các quyền bao gồm một tập hợp các quyền sau: 
Đối với ng−ời dùng root sẽ đựoc tạo nh− một superuser nên nó có thể làm 
mọi thứ, việc kết nối phải đựoc thực hiện ở localhost. 
Chú ý: Ban đầu việc khởi tạo sẽ không yêu cầu mật khẩu đối với ng−ời dùng 
root vì vậy bất cứ ng−ời nào cũng có thể kết nối nh− một ng−ời dùng root mà 
không bị đòi hỏi password do đó việc đầu tiêm mà bạn nên làm là thay đổi 
password cho ng−ời dùng root. 
- Bất cứ một ng−ời dùng nào đ−ợc tạo cũng có thể làm mọi thức đối với 
CSDL test nh−ng việc kết nối phải đựoc thực hiện ở localhost. 
IX. Gán thêm quyền ng−ời dùng đối với mysql 
Bạn có thể tạo một ng−ời dùng mới bằng hai cách: Dùng lệnh Grant hoặc 
thao tác trực tiếp trên CSDL mysql. Cách thức th−ờng đựoc dùng hơn cả là 
dùng lệnh grant bởi vì nó ngắn gọn và ít lỗi hơn. 
Các ví dụ sau sẽ thực hiện việc tạo một ng−ời dùng mới. Để thực hiện điều 
này thì bạn phải kết nối với mysql nh− một ng−ời dùng root và ng−ời dùng 
root này phải đ−ợc gán quyền insert đối với CSDL mysql và phải có quyền 
quản trị reload 
Mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost 
IDENTIFIED BY ‘some_pass’ WITH GRANT OPTION; 
Mysql> GRANT ALL PRIVILEGES ON *.* TO monty@”%” 
IDENTIFIED BY ‘some_pass’ WITH GRANT OPTION; 
Mysql> GRANT RELOAD, PROCESS ON *.* TO admin@localhost; 
Mysql> GRANT USAGE ON *.* TO dummy@localhost; 
Các câu lệnh trên gán quyền cho ban ng−ời dùng monty, admin và dummy. 
- ng−ời dùng monty: Đây là ng−ời dùng superuser với đầy đủ các quyền có 
thể kết nối bất cứ nơi đâu nh−ng phải có password là “some_pass”. 
- Ng−ời dùng admin: ng−ời dùng này đ−ợc quyền reload, process nh−ng 
phải đăng nhập từ localhost và không yêu cầu password 
- Ng−ời dùng dummy có thể kết nối mà không cần password nh−ng không 
đựoc gán quyền gì cả. 
- Cũng thực hiện việc gán quyền nh− trên theo cách khác ta có thể làm nh− 
sau: 
Mysql> INSERT INTO user 
VALUES(‘localhost’,’monty’,PASSWORD(‘some_pass’), 
‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’) 
Ban chỉ đạo cntt của cơ quan đảng PHP & MySQL 
 115
Mysql> INSERT INTO user 
VALUES(‘%’,’monty’,PASSWORD(‘some_pass’), 
‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’, ‘Y’) 
Mysql> INSERT INTO user SET Host=’localhost’, User=’admin’, 
Reload_priv=’Y’, Process_priv=’Y’; 
Mysql> INSERT INTO user (Host, User, Password) 
VALUES(‘localhost’,’dummy’,’’); 
Mysql> FLUSH PRIVILEGES; 

File đính kèm:

  • pdfTài liệu tham khảo ngôn ngữ lập trình PHP.pdf
Tài liệu liên quan