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ở.
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:
- Tài liệu tham khảo ngôn ngữ lập trình PHP.pdf