🗊Презентация Архитектура Web-баз данных. Лекция 3.19

Нажмите для полного просмотра!
Архитектура Web-баз данных. Лекция 3.19, слайд №1Архитектура Web-баз данных. Лекция 3.19, слайд №2Архитектура Web-баз данных. Лекция 3.19, слайд №3Архитектура Web-баз данных. Лекция 3.19, слайд №4Архитектура Web-баз данных. Лекция 3.19, слайд №5Архитектура Web-баз данных. Лекция 3.19, слайд №6Архитектура Web-баз данных. Лекция 3.19, слайд №7Архитектура Web-баз данных. Лекция 3.19, слайд №8Архитектура Web-баз данных. Лекция 3.19, слайд №9Архитектура Web-баз данных. Лекция 3.19, слайд №10Архитектура Web-баз данных. Лекция 3.19, слайд №11Архитектура Web-баз данных. Лекция 3.19, слайд №12Архитектура Web-баз данных. Лекция 3.19, слайд №13Архитектура Web-баз данных. Лекция 3.19, слайд №14Архитектура Web-баз данных. Лекция 3.19, слайд №15Архитектура Web-баз данных. Лекция 3.19, слайд №16Архитектура Web-баз данных. Лекция 3.19, слайд №17Архитектура Web-баз данных. Лекция 3.19, слайд №18Архитектура Web-баз данных. Лекция 3.19, слайд №19Архитектура Web-баз данных. Лекция 3.19, слайд №20Архитектура Web-баз данных. Лекция 3.19, слайд №21Архитектура Web-баз данных. Лекция 3.19, слайд №22Архитектура Web-баз данных. Лекция 3.19, слайд №23Архитектура Web-баз данных. Лекция 3.19, слайд №24Архитектура Web-баз данных. Лекция 3.19, слайд №25Архитектура Web-баз данных. Лекция 3.19, слайд №26Архитектура Web-баз данных. Лекция 3.19, слайд №27Архитектура Web-баз данных. Лекция 3.19, слайд №28Архитектура Web-баз данных. Лекция 3.19, слайд №29Архитектура Web-баз данных. Лекция 3.19, слайд №30Архитектура Web-баз данных. Лекция 3.19, слайд №31Архитектура Web-баз данных. Лекция 3.19, слайд №32Архитектура Web-баз данных. Лекция 3.19, слайд №33Архитектура Web-баз данных. Лекция 3.19, слайд №34Архитектура Web-баз данных. Лекция 3.19, слайд №35Архитектура Web-баз данных. Лекция 3.19, слайд №36Архитектура Web-баз данных. Лекция 3.19, слайд №37Архитектура Web-баз данных. Лекция 3.19, слайд №38Архитектура Web-баз данных. Лекция 3.19, слайд №39Архитектура Web-баз данных. Лекция 3.19, слайд №40Архитектура Web-баз данных. Лекция 3.19, слайд №41Архитектура Web-баз данных. Лекция 3.19, слайд №42Архитектура Web-баз данных. Лекция 3.19, слайд №43Архитектура Web-баз данных. Лекция 3.19, слайд №44Архитектура Web-баз данных. Лекция 3.19, слайд №45Архитектура Web-баз данных. Лекция 3.19, слайд №46Архитектура Web-баз данных. Лекция 3.19, слайд №47Архитектура Web-баз данных. Лекция 3.19, слайд №48Архитектура Web-баз данных. Лекция 3.19, слайд №49Архитектура Web-баз данных. Лекция 3.19, слайд №50Архитектура Web-баз данных. Лекция 3.19, слайд №51Архитектура Web-баз данных. Лекция 3.19, слайд №52Архитектура Web-баз данных. Лекция 3.19, слайд №53Архитектура Web-баз данных. Лекция 3.19, слайд №54Архитектура Web-баз данных. Лекция 3.19, слайд №55Архитектура Web-баз данных. Лекция 3.19, слайд №56Архитектура Web-баз данных. Лекция 3.19, слайд №57Архитектура Web-баз данных. Лекция 3.19, слайд №58

Содержание

Вы можете ознакомиться и скачать презентацию на тему Архитектура Web-баз данных. Лекция 3.19. Доклад-сообщение содержит 58 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Лекция 
Архитектура Web-баз данных.
Описание слайда:
Лекция Архитектура Web-баз данных.

Слайд 2





Основные функции клиента и сервера:

Клиент:

Принимает и проверяет синтаксис вводимого запроса
Генерирует запрос и передает его БД
Отображает полученные данные
Сервер:

Принимает и обрабатывает запросы от клиентов 
Проверяет полномочия пользователей
Гарантирует соблюдение ограничений целостности
Выполняет запросы и возвращает результаты клиенту
Обеспечивает параллельный доступ к БД
Обеспечивает управление восстановлением информации
Описание слайда:
Основные функции клиента и сервера: Клиент: Принимает и проверяет синтаксис вводимого запроса Генерирует запрос и передает его БД Отображает полученные данные Сервер: Принимает и обрабатывает запросы от клиентов Проверяет полномочия пользователей Гарантирует соблюдение ограничений целостности Выполняет запросы и возвращает результаты клиенту Обеспечивает параллельный доступ к БД Обеспечивает управление восстановлением информации

Слайд 3





"Клиент-серверная" архитектура: трехзвенная
Описание слайда:
"Клиент-серверная" архитектура: трехзвенная

Слайд 4





Архитектура Web-баз данных
Типичная транзакция Web-базы данных состоит из следующих этапов: 
1. Web-браузер пользователя отправляет HTTP-запрос определенной Web-страницы
2. Web-сервер принимает запрос, получает файл со сценарием и передает его механизму РНР на обработку.
3. Механизм РНР начинает синтаксический анализ сценария. Если в сценарии присутствует команда подключения к базе данных и выполнения запроса в ней. РНР открыв	йает соединение с сервером MySQL и отправляет необходимый запрос.
4. Сервер MySQL принимает запрос в базу данных, обрабатывает его, а затем отправляет результаты — в данном случае, обратно в механизм  РНР.
5. Механизм РНР завершает выполнение сценария, форматируя результаты запроса в виде HTML, после чего отправляет результаты в HTML-формате Web-серверу.
6. Web-сервер пересылает HTML в браузер, с помощью которого пользователь  просматривает результат выполнения запроса.
Описание слайда:
Архитектура Web-баз данных Типичная транзакция Web-базы данных состоит из следующих этапов: 1. Web-браузер пользователя отправляет HTTP-запрос определенной Web-страницы 2. Web-сервер принимает запрос, получает файл со сценарием и передает его механизму РНР на обработку. 3. Механизм РНР начинает синтаксический анализ сценария. Если в сценарии присутствует команда подключения к базе данных и выполнения запроса в ней. РНР открыв йает соединение с сервером MySQL и отправляет необходимый запрос. 4. Сервер MySQL принимает запрос в базу данных, обрабатывает его, а затем отправляет результаты — в данном случае, обратно в механизм РНР. 5. Механизм РНР завершает выполнение сценария, форматируя результаты запроса в виде HTML, после чего отправляет результаты в HTML-формате Web-серверу. 6. Web-сервер пересылает HTML в браузер, с помощью которого пользователь просматривает результат выполнения запроса.

Слайд 5






1. Проверка и фильтрация данных, исходящих от пользователя.
2. Установка соединения с требуемой базой данных.
3. Передача запроса в базу данных.
4. Получение результатов.
5. Представление результатов пользователю.
Описание слайда:
1. Проверка и фильтрация данных, исходящих от пользователя. 2. Установка соединения с требуемой базой данных. 3. Передача запроса в базу данных. 4. Получение результатов. 5. Представление результатов пользователю.

Слайд 6





Проверка и фильтрация данных, исходящих от пользователя
-  trim($searchterm);

 - if (!$searchtype | | !$searchterm)
    {
      echo " Вы не ввели поисковые детали. 
           Попробуйте еще раз." ;
      exit;
    }

addslashes() 
 stripslashes() 

$searchterm = addslashes ($searchterm)
Описание слайда:
Проверка и фильтрация данных, исходящих от пользователя - trim($searchterm); - if (!$searchtype | | !$searchterm) { echo " Вы не ввели поисковые детали. Попробуйте еще раз." ; exit; } addslashes() stripslashes() $searchterm = addslashes ($searchterm)

Слайд 7





Установка соединения
$db = mysql_pconnect("localhost", "user_name", “user_pass");

В случае успеха функция вернет идентификатор связи с базой данных (который следует сохранить для дальнейшего использования), а в случае неудачи — значение false.
if (!$db)
{
echo " Ошибка: Нет соединения с базой данных.";
exit;
}
 - mysql_connect() 
 - mysql_close().
Описание слайда:
Установка соединения $db = mysql_pconnect("localhost", "user_name", “user_pass"); В случае успеха функция вернет идентификатор связи с базой данных (который следует сохранить для дальнейшего использования), а в случае неудачи — значение false. if (!$db) { echo " Ошибка: Нет соединения с базой данных."; exit; } - mysql_connect() - mysql_close().

Слайд 8





Выбор базы данных
int mysql_select_db (string database, [int  database_connection] )

database –имя базы данных
database_connection – идентификатор соединения  с сервером
Описание слайда:
Выбор базы данных int mysql_select_db (string database, [int database_connection] ) database –имя базы данных database_connection – идентификатор соединения с сервером

Слайд 9





Выполнение запроса к базе данных
Настройка запроса:
$query = "select * from $userstable  where $searchtype like'%$searchterm%'" ; 
Выполнение запроса:
$result = mysql_query ($query);


- int mysql_db_query(string database, string query,  [int database_connection] ) ;
Описание слайда:
Выполнение запроса к базе данных Настройка запроса: $query = "select * from $userstable where $searchtype like'%$searchterm%'" ; Выполнение запроса: $result = mysql_query ($query); - int mysql_db_query(string database, string query, [int database_connection] ) ;

Слайд 10





Получение результатов запроса
mysql_num_rows()- возвращает количество строк, которые возвращает запрос;
mysql_fetch_array() - возвращает каждую строку в виде ассоциативного массива; 
mysql_fetch_row() – возвращает нумерованный массив;
$row = mysql_fetch_array($result) ;
Имея $row в ассоциативном массиве, можно пройти каждое поле и должным образом его отобразить, например, $row[‘title’],  $row[‘autor’] и т.д.,
при  этом функцию stripslashes() вызывают для того, чтобы "подчистить" значение, прежде чем отображать его пользователю. 

$row = mysql_fetch_row($result);
Значения атрибутов будут храниться в каждом порядковом значении $row[0],  $row[l] и т.д.
Описание слайда:
Получение результатов запроса mysql_num_rows()- возвращает количество строк, которые возвращает запрос; mysql_fetch_array() - возвращает каждую строку в виде ассоциативного массива; mysql_fetch_row() – возвращает нумерованный массив; $row = mysql_fetch_array($result) ; Имея $row в ассоциативном массиве, можно пройти каждое поле и должным образом его отобразить, например, $row[‘title’], $row[‘autor’] и т.д., при этом функцию stripslashes() вызывают для того, чтобы "подчистить" значение, прежде чем отображать его пользователю. $row = mysql_fetch_row($result); Значения атрибутов будут храниться в каждом порядковом значении $row[0], $row[l] и т.д.

Слайд 11





$row = mysql_fetch_object($result);
$row = mysql_fetch_object($result);
После этого к каждому атрибуту можно получить доступ через $row->title,  $row->author и т.д.
Каждый из этих вариантов подразумевает выборку строки за один раз. 
Другой вариант —
получить доступ, используя mysql_result(). Для этого потребуется указать номер строки (от 0 до количества строк минус 1) и название поля, например:

$row = mysql_result($result, $i, "title");
Название поля можно задать в виде строки (либо в форме "title" либо в форме  "books.title") или номером (как в mysql_fetch_row()).
Описание слайда:
$row = mysql_fetch_object($result); $row = mysql_fetch_object($result); После этого к каждому атрибуту можно получить доступ через $row->title, $row->author и т.д. Каждый из этих вариантов подразумевает выборку строки за один раз. Другой вариант — получить доступ, используя mysql_result(). Для этого потребуется указать номер строки (от 0 до количества строк минус 1) и название поля, например: $row = mysql_result($result, $i, "title"); Название поля можно задать в виде строки (либо в форме "title" либо в форме "books.title") или номером (как в mysql_fetch_row()).

Слайд 12





Внесение новой информации в базу данных 
- установить соединение
- отправить запрос 
- проверить результаты
  $isbn = addslashes ($isbn) ;
  $author = addslashes ($author) ;
  $title = addslashes ($title) ;
  $price = doubleval ($price) ;
 doubleval() - принимает в качестве аргумента переменную и возвращает значение, преобразованное к типу double;
 intval() - принимает в качестве аргумента переменную и возвращает значение, преобразованное к типу integer;
 strval() - принимает в качестве аргумента переменную и возвращает значение, преобразованное к типу string;
Описание слайда:
Внесение новой информации в базу данных - установить соединение - отправить запрос - проверить результаты $isbn = addslashes ($isbn) ; $author = addslashes ($author) ; $title = addslashes ($title) ; $price = doubleval ($price) ; doubleval() - принимает в качестве аргумента переменную и возвращает значение, преобразованное к типу double; intval() - принимает в качестве аргумента переменную и возвращает значение, преобразованное к типу integer; strval() - принимает в качестве аргумента переменную и возвращает значение, преобразованное к типу string;

Слайд 13





настраиваем запрос,   в данном случае это INSERT:
настраиваем запрос,   в данном случае это INSERT:

$query = "insert into books values  (' ".$isbn." ', ' ".$author." ', ' ''.$title." ', ' ".$price" ' ) ";
$result = mysql_query($query);
mysql_affected_rows() - возвращает количество рядов, задействованных в последнем запросе INSERT, UPDATE или DELETE
Описание слайда:
настраиваем запрос, в данном случае это INSERT: настраиваем запрос, в данном случае это INSERT: $query = "insert into books values (' ".$isbn." ', ' ".$author." ', ' ''.$title." ', ' ".$price" ' ) "; $result = mysql_query($query); mysql_affected_rows() - возвращает количество рядов, задействованных в последнем запросе INSERT, UPDATE или DELETE

Слайд 14





Изменение данных
Изменение данных, находящихся в базе сочетает  в  себе два этапа: 
- извлечение данных из  базы с выводом их  на  экран;
- внесение  данных  через форму обратно  в  базу.
Описание слайда:
Изменение данных Изменение данных, находящихся в базе сочетает в себе два этапа: - извлечение данных из базы с выводом их на экран; - внесение данных через форму обратно в базу.

Слайд 15





Код извлечения данных из  базы с выводом их  на  экран
<? 
$db=mysql_pconnect ( "localhost", "root" ) ;
 mysql_select_db("books") ; 
if ($id) { 
 $query = "SELECT * FROM  book  WHERE id=$id" ;
 $result = mysql_query ($query) ; 
$myrow = mysql_fetch_array($result);
 ?>
 <form  method = "post" action= "<? echo $PHP_SELF ?> ">
 <input   type=hidden  name ="id" value = "<?  echo $myrow ["id"] ?> " > 
Автор:<input  type = "Text " name ="autor" value = "<? echo $myrow["autor"] ?> " ><br>
Название : <input  type= "Text" name = "title" value=" <? echo $myrow ["title"] ?>" > <br> 
ISBN : <input type = "Text" name= "isbn" value = " <? echo $myrow["isbn"] ?> "> <br> 
Цена : <input type ="Text" name = "price" value = "<? echo $myrow ["price"] ?> "> <br> 
<input type="Submit" name="change" value ="изменить"> 
</form>
Описание слайда:
Код извлечения данных из базы с выводом их на экран <? $db=mysql_pconnect ( "localhost", "root" ) ; mysql_select_db("books") ; if ($id) { $query = "SELECT * FROM book WHERE id=$id" ; $result = mysql_query ($query) ; $myrow = mysql_fetch_array($result); ?> <form method = "post" action= "<? echo $PHP_SELF ?> "> <input type=hidden name ="id" value = "<? echo $myrow ["id"] ?> " > Автор:<input type = "Text " name ="autor" value = "<? echo $myrow["autor"] ?> " ><br> Название : <input type= "Text" name = "title" value=" <? echo $myrow ["title"] ?>" > <br> ISBN : <input type = "Text" name= "isbn" value = " <? echo $myrow["isbn"] ?> "> <br> Цена : <input type ="Text" name = "price" value = "<? echo $myrow ["price"] ?> "> <br> <input type="Submit" name="change" value ="изменить"> </form>

Слайд 16





Внесение  данных  через форму обратно  в  базу
<? 
$db=mysql_pconnect ( "localhost", "root" ) ;
 mysql_select_db("books") ; 
if ($id) { 
if ($submit) {
 $query = "UPDATE  book SET autor= '$autor', title = '$title', price ='$price ', isbn = '$isbn' WHERE id=$id" ; 
$result = mysql_query($query) ; 
 echo "Information updated.\ n " ; 
} 
…………..
?>
Описание слайда:
Внесение данных через форму обратно в базу <? $db=mysql_pconnect ( "localhost", "root" ) ; mysql_select_db("books") ; if ($id) { if ($submit) { $query = "UPDATE book SET autor= '$autor', title = '$title', price ='$price ', isbn = '$isbn' WHERE id=$id" ; $result = mysql_query($query) ; echo "Information updated.\ n " ; } ………….. ?>

Слайд 17





<? 
<? 
$result = mysql_query("SELECT * FROM  book"); 
while ($myrow = mysql_fetch_array($result)) { 
printf("<a href =\" %s ? id =%s \"> %s %s</a><br>\n", $PHP_SELF, $myrow["id"], $myrow["autor"], $myrow["title"]); 
 }
 }
 ?>
Возможные спецификаторы:
%d – целочисленное значение 
%f – значение с плавающей точкой и др.
Описание слайда:
<? <? $result = mysql_query("SELECT * FROM book"); while ($myrow = mysql_fetch_array($result)) { printf("<a href =\" %s ? id =%s \"> %s %s</a><br>\n", $PHP_SELF, $myrow["id"], $myrow["autor"], $myrow["title"]); } } ?> Возможные спецификаторы: %d – целочисленное значение %f – значение с плавающей точкой и др.

Слайд 18





Удаление данных из базы
……………
if ($delete) { 
$query = "DELETE  FROM  book  WHERE  id=$id" ;
$result = mysql_query( $query) ; 
echo " Record   deleted!" ;
}
…………………
Описание слайда:
Удаление данных из базы …………… if ($delete) { $query = "DELETE FROM book WHERE id=$id" ; $result = mysql_query( $query) ; echo " Record deleted!" ; } …………………

Слайд 19





if ( !$id ) { 
if ( !$id ) { 
$result = mysql_query( "SELECT  *  FROM  book" ) ;
 while ($myrow = mysql_fetch_array( $result) ) { 
printf( " <a href =\"  %s  ? id = % s \" >  %s  %s  %s  %s  </a>  \n" ,  $PHP_SELF, $myrow["id"], 
$myrow["autor"] , 
$myrow["title"],
$myrow[“isbn”] ,
$myrow[“price”]) ;
 printf("<a href=\" %s ? id= %s  &  delete = yes\">  Удалить  </a><br>" , $PHP_SELF,
 $myrow["id"]) ;
 }
 }
Описание слайда:
if ( !$id ) { if ( !$id ) { $result = mysql_query( "SELECT * FROM book" ) ; while ($myrow = mysql_fetch_array( $result) ) { printf( " <a href =\" %s ? id = % s \" > %s %s %s %s </a> \n" , $PHP_SELF, $myrow["id"], $myrow["autor"] , $myrow["title"], $myrow[“isbn”] , $myrow[“price”]) ; printf("<a href=\" %s ? id= %s & delete = yes\"> Удалить </a><br>" , $PHP_SELF, $myrow["id"]) ; } }

Слайд 20





Методика настройки базы данных MySQL для использования на Web-сайте
1. Проведена базовая установка MySQL на Web-сервере, которая включает в себя:
• Установку файлов
• Установку пользователя MySQL 
• Настройку 
• Установку пароля для пользователя root (желательно)
• Запуск сервера MySQL
 
2. Имеется доступ к MySQL.
Описание слайда:
Методика настройки базы данных MySQL для использования на Web-сайте 1. Проведена базовая установка MySQL на Web-сервере, которая включает в себя: • Установку файлов • Установку пользователя MySQL • Настройку • Установку пароля для пользователя root (желательно) • Запуск сервера MySQL 2. Имеется доступ к MySQL.

Слайд 21





Создание баз данных и подключение пользователей 
Создание баз данных и подключение пользователей 
         Система баз данных MySQL может поддерживать множество различных баз данных. Обычно, на одно приложение существует одна база данных. 
         Создание базы данных с использованием PHPmyAdmin.
Описание слайда:
Создание баз данных и подключение пользователей Создание баз данных и подключение пользователей Система баз данных MySQL может поддерживать множество различных баз данных. Обычно, на одно приложение существует одна база данных. Создание базы данных с использованием PHPmyAdmin.

Слайд 22


Архитектура Web-баз данных. Лекция 3.19, слайд №22
Описание слайда:

Слайд 23


Архитектура Web-баз данных. Лекция 3.19, слайд №23
Описание слайда:

Слайд 24


Архитектура Web-баз данных. Лекция 3.19, слайд №24
Описание слайда:

Слайд 25


Архитектура Web-баз данных. Лекция 3.19, слайд №25
Описание слайда:

Слайд 26


Архитектура Web-баз данных. Лекция 3.19, слайд №26
Описание слайда:

Слайд 27


Архитектура Web-баз данных. Лекция 3.19, слайд №27
Описание слайда:

Слайд 28


Архитектура Web-баз данных. Лекция 3.19, слайд №28
Описание слайда:

Слайд 29





Скрипты размещены на сервере в директории home/localhost/www;
Скрипты размещены на сервере в директории home/localhost/www;
 база данных находится в директории mysql/data,  где каждая таблица представляется файлами формата 
*.MYI - индексы, 
*.MYD – данные,
*.frm - структура таблицы.
Описание слайда:
Скрипты размещены на сервере в директории home/localhost/www; Скрипты размещены на сервере в директории home/localhost/www; база данных находится в директории mysql/data, где каждая таблица представляется файлами формата *.MYI - индексы, *.MYD – данные, *.frm - структура таблицы.

Слайд 30





Пользователи и привилегии 
Пользователи и привилегии 
Система MySQL может содержать много пользователей. 
Каждый пользователь, которому необходимо работать в системе, должен получить учетную запись и пароль.
Описание слайда:
Пользователи и привилегии Пользователи и привилегии Система MySQL может содержать много пользователей. Каждый пользователь, которому необходимо работать в системе, должен получить учетную запись и пароль.

Слайд 31





Система привилегий MySQL 
Система привилегий MySQL 
Одна из лучших характеристик MySQL заключается в поддержке сложных систем привилегий. 
Привилегия — это право определенного пользователя выполнять определенное действие над определенным объектом. 
При подключении пользователя к MySQL, ему даются определенные права, которые обозначают, что пользователь может делать в системе, а что ему запрещено.
Описание слайда:
Система привилегий MySQL Система привилегий MySQL Одна из лучших характеристик MySQL заключается в поддержке сложных систем привилегий. Привилегия — это право определенного пользователя выполнять определенное действие над определенным объектом. При подключении пользователя к MySQL, ему даются определенные права, которые обозначают, что пользователь может делать в системе, а что ему запрещено.

Слайд 32





Как MySQL использует таблицы привилегий (БД mysql)
Таблица user предназначена для определения, может ли пользователь подключаться к серверу MySQL и обладает ли он привилегиями администратора. Таблицы db и host определяют, к каким базам данных пользователь может иметь доступ. Таблица tables_priv — какие таблицы в базе данных разрешается использовать, a таблица columns_priv — к каким столбцам в таблицах имеется доступ.
Описание слайда:
Как MySQL использует таблицы привилегий (БД mysql) Таблица user предназначена для определения, может ли пользователь подключаться к серверу MySQL и обладает ли он привилегиями администратора. Таблицы db и host определяют, к каким базам данных пользователь может иметь доступ. Таблица tables_priv — какие таблицы в базе данных разрешается использовать, a таблица columns_priv — к каким столбцам в таблицах имеется доступ.

Слайд 33


Архитектура Web-баз данных. Лекция 3.19, слайд №33
Описание слайда:

Слайд 34





1. Проверка соединения. На этом этапе MySQL проверяет, есть ли у вас право подключаться, исходя из данных таблицы user. Используется информация об имени пользователя, хосте и пароле (если поле имени пользователя пусто, значит, подходит любое имя пользователя). 
1. Проверка соединения. На этом этапе MySQL проверяет, есть ли у вас право подключаться, исходя из данных таблицы user. Используется информация об имени пользователя, хосте и пароле (если поле имени пользователя пусто, значит, подходит любое имя пользователя).
Описание слайда:
1. Проверка соединения. На этом этапе MySQL проверяет, есть ли у вас право подключаться, исходя из данных таблицы user. Используется информация об имени пользователя, хосте и пароле (если поле имени пользователя пусто, значит, подходит любое имя пользователя). 1. Проверка соединения. На этом этапе MySQL проверяет, есть ли у вас право подключаться, исходя из данных таблицы user. Используется информация об имени пользователя, хосте и пароле (если поле имени пользователя пусто, значит, подходит любое имя пользователя).

Слайд 35


Архитектура Web-баз данных. Лекция 3.19, слайд №35
Описание слайда:

Слайд 36





2. Подтверждение запроса. 
2. Подтверждение запроса. 
Всякий раз когда соединение уже установлено и запрос отправлен, MySQL проверяет, есть ли у вас необходимый уровень привилегий для выполнения такого запроса. Система начинает с проверки глобальных при-вилегий (по таблице user), и если их недостаточно, проверяет таблицы db и host. Если привилегий все равно не хватает, MySQL проверит таблицу table_priv и, в конце концов, таблицу columns_priv.
Описание слайда:
2. Подтверждение запроса. 2. Подтверждение запроса. Всякий раз когда соединение уже установлено и запрос отправлен, MySQL проверяет, есть ли у вас необходимый уровень привилегий для выполнения такого запроса. Система начинает с проверки глобальных при-вилегий (по таблице user), и если их недостаточно, проверяет таблицы db и host. Если привилегий все равно не хватает, MySQL проверит таблицу table_priv и, в конце концов, таблицу columns_priv.

Слайд 37


Архитектура Web-баз данных. Лекция 3.19, слайд №37
Описание слайда:

Слайд 38


Архитектура Web-баз данных. Лекция 3.19, слайд №38
Описание слайда:

Слайд 39


Архитектура Web-баз данных. Лекция 3.19, слайд №39
Описание слайда:

Слайд 40


Архитектура Web-баз данных. Лекция 3.19, слайд №40
Описание слайда:

Слайд 41





После редактировании привилегий, необходимо сообщить серверу, что произошли изменения - для этого необходимо перезагрузить сервер.
После редактировании привилегий, необходимо сообщить серверу, что произошли изменения - для этого необходимо перезагрузить сервер.
После этого при следующем подключении пользователя будут проверяться его привилегии глобального уровня; привилегии уровня базы данных будут проверяться при встрече функции mysql_select_db( ), а привилегии уровня таблицы и столбцов — при новом запросе пользователя.
Описание слайда:
После редактировании привилегий, необходимо сообщить серверу, что произошли изменения - для этого необходимо перезагрузить сервер. После редактировании привилегий, необходимо сообщить серверу, что произошли изменения - для этого необходимо перезагрузить сервер. После этого при следующем подключении пользователя будут проверяться его привилегии глобального уровня; привилегии уровня базы данных будут проверяться при встрече функции mysql_select_db( ), а привилегии уровня таблицы и столбцов — при новом запросе пользователя.

Слайд 42





Обеспечение безопасности баз данных MySQL
Пароли

Пароль пользователя должен быть сохранен в РНР сценариях, используемых для подключения к базам данных. Это можно сделать безопасно, если поместить имя пользователя и пароль в файл с названием, например, dbconnect.php, который будет включаться по мере необходимости.
Описание слайда:
Обеспечение безопасности баз данных MySQL Пароли Пароль пользователя должен быть сохранен в РНР сценариях, используемых для подключения к базам данных. Это можно сделать безопасно, если поместить имя пользователя и пароль в файл с названием, например, dbconnect.php, который будет включаться по мере необходимости.

Слайд 43





Привилегии пользователей 
Привилегии пользователей 

Один из способов повышения уровня безопасности - принцип наименьших привилегий. 
Не следует давать пользователю привилегий больше, чем необходимо. 
Это можно проверить, исследовав таблицы привилегий.
Описание слайда:
Привилегии пользователей Привилегии пользователей Один из способов повышения уровня безопасности - принцип наименьших привилегий. Не следует давать пользователю привилегий больше, чем необходимо. Это можно проверить, исследовав таблицы привилегий.

Слайд 44





RELOAD - позволяет администратору перезагружать таблицы  привилегий и подавлять  привилегии, хосты и таблицы.
RELOAD - позволяет администратору перезагружать таблицы  привилегий и подавлять  привилегии, хосты и таблицы.
SHUTDOWN - позволяет администратору останавливать сервер MySQL.
PROCESS - позволяет администратору просматривать и удалять процессы на сервере.
FILE - позволяет помещать в таблицы данные из файлов и наоборот.
Описание слайда:
RELOAD - позволяет администратору перезагружать таблицы привилегий и подавлять привилегии, хосты и таблицы. RELOAD - позволяет администратору перезагружать таблицы привилегий и подавлять привилегии, хосты и таблицы. SHUTDOWN - позволяет администратору останавливать сервер MySQL. PROCESS - позволяет администратору просматривать и удалять процессы на сервере. FILE - позволяет помещать в таблицы данные из файлов и наоборот.

Слайд 45





SELECT ( таблицам, столбцам ) - разрешает пользователям выбирать строки (записи) в  таблицах.
SELECT ( таблицам, столбцам ) - разрешает пользователям выбирать строки (записи) в  таблицах.
INSERT  ( таблицам, столбцам ) - разрешает пользователям вставлять новые строки в  таблицы.
UPDATE ( таблицам, столбцам ) - разрешает пользователям изменять значения в  существующих строках таблиц.
DELETE  (таблицам ) - разрешает пользователям удалять существующие   строки в таблицах.
INDEX  (таблицам ) - разрешает пользователям создавать и удалять индексы  определенных таблиц.
ALTER  (таблицам ) - разрешает пользователям изменять структуру  существующих таблиц,  добавляя столбцы, переименовывая столбцы или таблицы и изменяя тип  данных в столбцах.
CREATE  (базам данных,  таблицам ) - разрешает пользователям создавать новые базы
                                                                   данных или таблицы. 
DROP (базам данных, таблицам ) - разрешает пользователям удалять базы данных или 
                                                            таблицы
ALL  - предоставляет все привилегии (можно также написать ALL  PRIVILEGES).
USAGE - не предоставляет никаких привилегий. Подобным образом можно 
                подключить пользователя, дать ему возможность входить в систему, но без 
                разрешения что-либо делать.
Описание слайда:
SELECT ( таблицам, столбцам ) - разрешает пользователям выбирать строки (записи) в таблицах. SELECT ( таблицам, столбцам ) - разрешает пользователям выбирать строки (записи) в таблицах. INSERT ( таблицам, столбцам ) - разрешает пользователям вставлять новые строки в таблицы. UPDATE ( таблицам, столбцам ) - разрешает пользователям изменять значения в существующих строках таблиц. DELETE (таблицам ) - разрешает пользователям удалять существующие строки в таблицах. INDEX (таблицам ) - разрешает пользователям создавать и удалять индексы определенных таблиц. ALTER (таблицам ) - разрешает пользователям изменять структуру существующих таблиц, добавляя столбцы, переименовывая столбцы или таблицы и изменяя тип данных в столбцах. CREATE (базам данных, таблицам ) - разрешает пользователям создавать новые базы данных или таблицы. DROP (базам данных, таблицам ) - разрешает пользователям удалять базы данных или таблицы ALL - предоставляет все привилегии (можно также написать ALL PRIVILEGES). USAGE - не предоставляет никаких привилегий. Подобным образом можно подключить пользователя, дать ему возможность входить в систему, но без разрешения что-либо делать.

Слайд 46





При  создании пользователя специально для Web-соединений  - ему можно выдать минимум необходимых привилегий, не предоставляя возможности выполнять DROP, ALTER и CREATE. 
При  создании пользователя специально для Web-соединений  - ему можно выдать минимум необходимых привилегий, не предоставляя возможности выполнять DROP, ALTER и CREATE. 
Кроме того, необходимо проверять данные, исходящие от пользователя и размер данных.
Описание слайда:
При создании пользователя специально для Web-соединений - ему можно выдать минимум необходимых привилегий, не предоставляя возможности выполнять DROP, ALTER и CREATE. При создании пользователя специально для Web-соединений - ему можно выдать минимум необходимых привилегий, не предоставляя возможности выполнять DROP, ALTER и CREATE. Кроме того, необходимо проверять данные, исходящие от пользователя и размер данных.

Слайд 47





Реализация контроля доступа 
<?
if(!isset($name)&& !isset ($password)){
?>
 <hl>Flease  Log In</hl> 
This  page   is   secret.
 <form  methоd=post action="secret.php"> 
User name <input type=text name=name>  
 Password <input type=password name=password>
<input type=submit value="LogIn">  
</form>
<?
else if($name=="user" && $password=="pass") { 
//  Комбинация  имени и  пароля посетителя  правильная 
echo “welcome on a secret page.”;
}
?>
Описание слайда:
Реализация контроля доступа <? if(!isset($name)&& !isset ($password)){ ?> <hl>Flease Log In</hl> This page is secret. <form methоd=post action="secret.php"> User name <input type=text name=name> Password <input type=password name=password> <input type=submit value="LogIn"> </form> <? else if($name=="user" && $password=="pass") { // Комбинация имени и пароля посетителя правильная echo “welcome on a secret page.”; } ?>

Слайд 48





Хранение паролей 
Сценарий 
Отдельный файл
База данных
Описание слайда:
Хранение паролей Сценарий Отдельный файл База данных

Слайд 49






//  Запрос  к  базе  данных , чтобы  проверить, существует  ли  соответствующая  запись 
$query = " select  count (*)  from authors  where 
                                   name='$name ' and
                                pass  = '$password ' " ;
$result =mysql_query($query);
}
 $count = mysql_result  ($result , 0, 0) ; 
if (  $count > 0) {
echo  " Добро пожаловать! " ; 
} 
e l se { 
e c h o  " <hl >Неверный пароль! < / h1 >"  ;
}
}
?>
Описание слайда:
// Запрос к базе данных , чтобы проверить, существует ли соответствующая запись $query = " select count (*) from authors where name='$name ' and pass = '$password ' " ; $result =mysql_query($query); } $count = mysql_result ($result , 0, 0) ; if ( $count > 0) { echo " Добро пожаловать! " ; } e l se { e c h o " <hl >Неверный пароль! < / h1 >" ; } } ?>

Слайд 50





create  database  auth; 
create  database  auth; 
create   table   authors  ( 
name  varchar ( 10 )  not  null ,
pass    varchar( 30 ) not  null , 
primary   key   ( name) 
) ;
insert  into   authors   values (  'user' ,  'pass123' ) ; 
insert  into  authors  values ( 'testuser' ,  password ( 'test123') ) ;
grant  select ,  insert ,  update ,  delete on  authors . *
to  myuser@localhost  
identified  by   'mypass12345' ;
Описание слайда:
create database auth; create database auth; create table authors ( name varchar ( 10 ) not null , pass varchar( 30 ) not null , primary key ( name) ) ; insert into authors values ( 'user' , 'pass123' ) ; insert into authors values ( 'testuser' , password ( 'test123') ) ; grant select , insert , update , delete on authors . * to myuser@localhost identified by 'mypass12345' ;

Слайд 51





Шифрование паролей 
Однонаправленный алгоритм хэширования обеспечит дополнительную защиту базы данных. 
Хеширование  — преобразование входного массива данных произвольной длины в выходную битовую строку фиксированной длины.
Описание слайда:
Шифрование паролей Однонаправленный алгоритм хэширования обеспечит дополнительную защиту базы данных. Хеширование  — преобразование входного массива данных произвольной длины в выходную битовую строку фиксированной длины.

Слайд 52





Хеш-функцией называется такое математическое или алгоритмическое преобразование заданного блока данных, которое обладает следующими свойствами: 
Хеш-функцией называется такое математическое или алгоритмическое преобразование заданного блока данных, которое обладает следующими свойствами: 
- хеш-функция имеет бесконечную область определения, 
- хеш-функция имеет конечную область значений, 
она необратима, 
- изменение входного потока информации на один бит меняет около половины всех бит выходного потока, то есть результата хеш-функции.
Описание слайда:
Хеш-функцией называется такое математическое или алгоритмическое преобразование заданного блока данных, которое обладает следующими свойствами: Хеш-функцией называется такое математическое или алгоритмическое преобразование заданного блока данных, которое обладает следующими свойствами: - хеш-функция имеет бесконечную область определения, - хеш-функция имеет конечную область значений, она необратима, - изменение входного потока информации на один бит меняет около половины всех бит выходного потока, то есть результата хеш-функции.

Слайд 53





PHP-функция crypt() представляет собой однонаправленную криптографическую хэш-функцию: 
PHP-функция crypt() представляет собой однонаправленную криптографическую хэш-функцию: 
string crypt (string  str [ , string  salt ] ) 
Получив на входе строку str, эта функция возвращает псевдослучайную строку. 
Например, если передать в функцию строку "pass" и аргумент salt равный "хх", 
то crypt( ) вернет строку "xxkTlmYjIikoII".
Описание слайда:
PHP-функция crypt() представляет собой однонаправленную криптографическую хэш-функцию: PHP-функция crypt() представляет собой однонаправленную криптографическую хэш-функцию: string crypt (string str [ , string salt ] ) Получив на входе строку str, эта функция возвращает псевдослучайную строку. Например, если передать в функцию строку "pass" и аргумент salt равный "хх", то crypt( ) вернет строку "xxkTlmYjIikoII".

Слайд 54





Вместо PHP-кода
Вместо PHP-кода
 i f (  $username  ==  "user"  && $password = = "pass"  ) { 
//  Пароль  совпадает
 }
 
можно воспользоваться таким кодом 
if ( $username = ‘user '  && crypt ( $password, 'хх' )= ='xxkTlmYjIikoII') {
 / /  Пароль  совпадает
}
Описание слайда:
Вместо PHP-кода Вместо PHP-кода i f ( $username == "user" && $password = = "pass" ) { // Пароль совпадает } можно воспользоваться таким кодом if ( $username = ‘user ' && crypt ( $password, 'хх' )= ='xxkTlmYjIikoII') { / / Пароль совпадает }

Слайд 55





Для  кодирования имен и паролей посетителей следует организовать отдельный файл или базу данных.
Для  кодирования имен и паролей посетителей следует организовать отдельный файл или базу данных.
Если для хранения данных аутентификации используется база данных MySQL, можно воспользоваться
PHP-функцией crypt() или MySQL-функцией password(). Результат этих функций не совпадает, но они  имеют одно предназначение.
 Обе функции — crypt() и password() — получают строку как аргумент и применяют к полученной строке необращаемый алгоритм хэширования.
Описание слайда:
Для кодирования имен и паролей посетителей следует организовать отдельный файл или базу данных. Для кодирования имен и паролей посетителей следует организовать отдельный файл или базу данных. Если для хранения данных аутентификации используется база данных MySQL, можно воспользоваться PHP-функцией crypt() или MySQL-функцией password(). Результат этих функций не совпадает, но они имеют одно предназначение. Обе функции — crypt() и password() — получают строку как аргумент и применяют к полученной строке необращаемый алгоритм хэширования.

Слайд 56





В PHP можно генерировать хэши при
В PHP можно генерировать хэши при
помощи md5( )( message digest algorithm) или sha1( )  (sha-256 и sha-512 - secure hashing algorithm ), 
в первом случае получаем 128-битное значение (32 символа), во втором 160-битный (40 символов).
Описание слайда:
В PHP можно генерировать хэши при В PHP можно генерировать хэши при помощи md5( )( message digest algorithm) или sha1( ) (sha-256 и sha-512 - secure hashing algorithm ), в первом случае получаем 128-битное значение (32 символа), во втором 160-битный (40 символов).

Слайд 57





Например, пароль «pass» имеет следующие хеши:
Например, пароль «pass» имеет следующие хеши:
$md5pass=1a1dc91c907325c69271ddf0c944bc72;
$sha1pas=9d4e1e23bd5b727046a9e3b4b7db57bd8d6ee684;
Описание слайда:
Например, пароль «pass» имеет следующие хеши: Например, пароль «pass» имеет следующие хеши: $md5pass=1a1dc91c907325c69271ddf0c944bc72; $sha1pas=9d4e1e23bd5b727046a9e3b4b7db57bd8d6ee684;

Слайд 58





<?php
$string = 'PHP & Information Security';
printf("Original string: %s\n", $string);
printf("MD5 hash: %s\n", md5($string));
printf("SHA-1 hash: %s\n", sha1($string));
?>
<?php
$string = 'PHP & Information Security';
printf("Original string: %s\n", $string);
printf("MD5 hash: %s\n", md5($string));
printf("SHA-1 hash: %s\n", sha1($string));
?>
    Original string: PHP & Information Security
MD5 hash: 88dd8f282721af2c704e238e7f338c41
SHA-1 hash:
  b47210605096b9aa0129f88695e229ce309dd362
Описание слайда:
<?php $string = 'PHP & Information Security'; printf("Original string: %s\n", $string); printf("MD5 hash: %s\n", md5($string)); printf("SHA-1 hash: %s\n", sha1($string)); ?> <?php $string = 'PHP & Information Security'; printf("Original string: %s\n", $string); printf("MD5 hash: %s\n", md5($string)); printf("SHA-1 hash: %s\n", sha1($string)); ?> Original string: PHP & Information Security MD5 hash: 88dd8f282721af2c704e238e7f338c41 SHA-1 hash: b47210605096b9aa0129f88695e229ce309dd362



Похожие презентации
Mypresentation.ru
Загрузить презентацию