Typy tabel serwera MySQL



Podobne dokumenty
Administracja bazami danych

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

CREATE USER

Administrowanie serwerami baz danych ZADANIA ADMINISTRATORA BAZ DANYCH

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Projektowanie systemów baz danych

Bazy danych 6. Klucze obce. P. F. Góra

mysql> UPDATE user SET Password=PASSWORD('pass') WHERE user='root'; Query OK, 2 rows affected (0.05 sec) Rows matched: 2 Changed: 2 Warnings: 0

Administracja bazami danych. dr inż. Grzegorz Michalski

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Bazy danych. Polecenia SQL

Wykład 5: PHP: praca z bazą danych MySQL

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Instalacja mysql 5.7 na Windows z obsługą dużych liter w nazwach tablicy - lower_case_table_names=2

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Bazy danych i usługi sieciowe

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Po instalacji serwera MYSQL dostępne jest konto o nazwie root. Domyślnie nie ma ono przypisanego hasła, aczkolwiek podczas procesu konfiguracji jest

Płace Optivum. 1. Zainstalować serwer SQL (Microsoft SQL Server 2008 R2) oraz program Płace Optivum.

Bazy danych 9. SQL Klucze obce Transakcje

Wdrożenie modułu płatności eservice. dla systemu Magento

Bazy Danych. Ćwiczenie 13: transakcje w bazach danych

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Bazy Danych i Usługi Sieciowe

Transakcje W poprzednich częściach instrukcje języka SQL traktowane były jak indywidualne operacje (transakcje)

Wprowadzenie do BD Operacje na bazie i tabelach Co poza zapytaniami? Algebra relacji. Bazy Danych i Systemy informacyjne Wykład 2.

Internetowe bazy danych

Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Bazy danych 9. Klucze obce Transakcje

Problemy techniczne SQL Server

Bazy danych 7. SQL podstawy

Problemy techniczne SQL Server. Zarządzanie bazami danych na serwerze SQL

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I

SQL Server. Odtwarzanie baz danych.

Bazy danych 9. Klucze obce Transakcje. P. F. Góra

Wdrożenie modułu płatności eservice. dla systemu Zen Cart

Kadry Optivum, Płace Optivum. Jak przenieść dane na nowy komputer?

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

E.14 Bazy Danych cz. 18 SQL Funkcje, procedury składowane i wyzwalacze

Instytut Teleinformatyki

DBPLUS Data Replicator Subtitle dla Microsoft SQL Server. dbplus.tech

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Zastępstwa Optivum. Jak przenieść dane na nowy komputer?

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Przygotowanie środowiska pracy dla bazy MySQL z wykorzystaniem XAMPP Portable Lite oraz MySQL-Front

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Problemy techniczne SQL Server

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

Oracle PL/SQL. Paweł Rajba.

Przypisywanie bibliotek w architekturze SAS

Instalacja MySQL.

Liczba godzin 1,2 Organizacja zajęć Omówienie programu nauczania 2. Tematyka zajęć

Sieciowa instalacja Sekafi 3 SQL

Bazy danych 10. SQL Widoki

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki Instrukcja do zajęć laboratoryjnych

SQL 4 Structured Query Lenguage

Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe

Problemy techniczne SQL Server. Zarządzanie bazami danych na serwerze SQL

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Uprawnienia, role, synonimy

1 Zaznacz poprawne stwierdzenia dotyczące grup plików (filegroup) możemy określić do której grupy plików trafi

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Fiery Remote Scan. Łączenie z serwerami Fiery servers. Łączenie z serwerem Fiery server przy pierwszym użyciu

Lista dostępnych baz danych: SHOW DATABASES; Lista dostępnych tabel: SHOW TABLES;

Bazy Danych. Ćwiczenie 1: Przygotowanie środowiska pracy dla bazy MySQL z wykorzystaniem XAMPP Portable Lite oraz MySQL-Front

Prawa dostępu do serwera. Nadawanie i odbieranie uprawnień DCL. Użytkownicy a role

Transakcje jednocześnie ACID

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Administracja i programowanie pod Microsoft SQL Server 2000

Zarządzanie kontami użytkowników w i uprawnieniami

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

Wykład 5. SQL praca z tabelami 2

Użytkownicy, uprawnienia, role w SQL Server (W oparciu o SQL Server 2008R2 Books Online)

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Administracja i programowanie pod Microsoft SQL Server 2000

Oracle11g: Wprowadzenie do SQL

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

SZKOLENIE: Administrator baz danych. Cel szkolenia

Projektowanie baz danych za pomocą narzędzi CASE

PHP: bazy danych, SQL, AJAX i JSON

William R. Stanek. Vademecum administratora. Microsoft. SQL Server Przekład: Krzysztof Szkudlarek

Systemy GIS Tworzenie zapytań w bazach danych

Oracle Application Express

Ćwiczenie 4. Użytkownicy

Bazy danych 5. Samozłaczenie SQL podstawy

Ustawienie na poziomie sesji (działa do zmiany lub zakończenia sesji zamknięcia połączenia).

System Oracle podstawowe czynności administracyjne

P o d s t a w y j ę z y k a S Q L

(a) T (b) N (c) N (d) T

Instrukcja podwaja zarobki osób, których imiona zaczynają się P i dalsze litery alfabetu zakładamy, że takich osbób jest kilkanaście.

Dokumentacja serwisu internetowego Zespołu Szkół Technicznych w Radomiu.

Autor: Joanna Karwowska

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

Pracownia internetowa w każdej szkole (edycja jesień 2005)

Transkrypt:

Typy tabel serwera MySQL Kopie zapasowe baz danych Zabezpieczanie serwera MySQL Zakładanie konta użytkownika z określonymi uprawnieniami Zarządzanie kontem i bazą danych Kilka kolejnych informacji na temat phpmyadmin i MySQL Na podstawie: webmaster.helion.pl oraz: ihelp.ovh.org Typy tabel serwera MySQL Serwer MySQL obsługuje kilka różnych typów tabel, w tym typy tabel umożliwiających transakcyjne przetwarzanie danych. Żeby wyświetlić podstawowe informacje na temat obsługiwanych przez kopię serwera MySQL typów tabel, należy wykonać poniższą instrukcję (listing 2.4). Listing 2.4. W tym przypadku instrukcję wykonano w tekstowym monitorze MySQL, a opcja \G została użyta, żeby poprawić czytelność wyniku mysql> SHOW ENGINES\G; *************************** 1. row *************************** Engine: MEMORY Comment: Hash based, stored in memory, useful for temporary tables *************************** 2. row *************************** Engine: FEDERATED Support: NO Comment: Federated MySQL storage engine Transactions: NULL XA: NULL Savepoints: NULL *************************** 3. row *************************** Engine: MyISAM Comment: Default engine as of MySQL 3.23 with great performance *************************** 4. row *************************** Engine: BLACKHOLE Comment: /dev/null storage engine (anything you write to it disappears) 1

*************************** 5. row *************************** Engine: MRG_MYISAM Comment: Collection of identical MyISAM tables *************************** 6. row *************************** Engine: CSV Comment: CSV storage engine *************************** 7. row *************************** Engine: ARCHIVE Comment: Archive storage engine *************************** 8. row *************************** Engine: InnoDB Support: DEFAULT Comment: Supports transactions, row-level locking, and foreign keys Transactions: YES XA: YES Savepoints: YES 8 rows in set (0.00 sec) Tabele typu MEMORY Każda tabela tego typu przechowywana jest w postaci pojedynczego pliku z rozszerzeniem.frm. Jak sugeruje nazwa (poprzednio tabele tego typu nazywane były tabelami HASH), dane tego typu tabel przechowywane są w pamięci operacyjnej i są tracone podczas wyłączania serwera (plik.frm zawiera jedynie definicję tabeli). Domyślnie w tabelach typu MEMORY wykorzystywane są indeksy mieszane (ang. Hash), dzięki czemu modyfikacje przechowywanych w nich danych są bardzo szybkie. Tego typu tabele powinny być używane jako tabele tymczasowe. Tabele typu FEDERATED Tego typu tabele nie są domyślnie obsługiwane przez serwery MySQL w wersji 5.1 lub wyższej. Żeby włączyć ich obsługę, należy uruchomić serwer z parametrem --federated. W przeciwieństwie do tabel innych typów tabele FEDERATED są bezpośrednio dostępne ze zdalnych serwerów MySQL 2

zapytania adresowane to tego typu tabel są automatycznie wykonywane przez docelowy serwer MySQL. Tabele typu MyISAM Każda tabela tego typu przechowywana jest w postaci trzech plików: 1. plik.frm zawiera definicję tabeli, 2. plik.myd zawiera dane (wiersze) tabeli, 3. plik.myi zawiera indeksy tabeli. Tabele typu MyISAM pozwalają na szybkie odczytywanie danych, ale nie umożliwiają ich transakcyjnego przetwarzania (w dodatku modyfikacje danych są dość wolne). Z tego powodu powinny być wykorzystywane w do przechowywania rzadko zmienianych (albo zmienianych przez pojedynczych użytkowników) danych, np. zawartości stron WWW lub słowników. Tabele typu BLACKHOLE Tego typu tabele nie przechowują żadnych danych tak jak w przypadku tabel typu MEMORY, plik.frm przechowuje jedynie definicję tabeli typu BLACKHOLE, natomiast w przeciwieństwie do tabel innego typu zapisywane w nich wiersze są automatycznie usuwane. Dzięki temu, że informacje o operacji są zapisywane w dzienniku zdarzeń serwera MySQL, tabele typu BLACKHOLE są przydatne podczas diagnozowania i testowania baz danych. Tabele typu MRG_MyISAM Ta specjalna odmiana tabel typu MyISAM może być współdzielona pomiędzy różnymi serwerami MySQL. Tabele typu CSV Każda tabela tego typu przechowywana jest w postaci trzech plików: 1. plik.frm zawiera definicję tabeli, 2. plik.csv zawiera dane (wiersze) tabeli w postaci danych tekstowych rozdzielanych przecinkiem, 3. plik.csm zawiera metadane. Tabele typu CSV są używane przede wszystkim do wymieniania (importowania i eksportowania) danych pomiędzy serwerem MySQL a innymi serwerami lub programami. Tabele typu ARCHIVE Każda tabela tego typu przechowywana jest w postaci trzech plików: 1. plik.frm zawiera definicję tabeli, 2. plik.arz zawiera skompresowane dane (wiersze) tabeli, 3. tymczasowy plik.arn jest tworzony podczas optymalizacji tabeli. 3

Tabele typu ARCHIVE umożliwiają wyłącznie odczytywanie (instrukcją SELECT) oraz wstawianie (instrukcją INSERT) danych zmienianie czy usuwanie danych jest niedopuszczalne. Z tego powodu używane są głównie do przechowywania danych historycznych lub diagnostycznych. Tabele typu InnoDB Tego typu tabele są domyślne na serwerach MySQL działających w środowisku systemu Windows i coraz częściej zastępują tabele typu MyISAM. Tabele InnoDB obsługują transakcyjne przetwarzanie danych, gwarantując atomowość, spójność, niezależność i trwałość poszczególnych transakcji (serwer MySQL automatycznie blokuje odczytywane i modyfikowane wiersze). Tego typu tabele pozwalają również definiować i sprawdzać ograniczenia klucza obcego. Wiersze tabel typu InnoDB przechowywane są w postaci drzew zrównoważonych (a więc tworzą indeks zgrupowany) między innymi dzięki temu ten typ tabel pozwala szybko odczytywać i modyfikować dane. Kopie zapasowe baz danych Zabezpieczenie przed utratą danych jest jednym z podstawowych obowiązków administratora baz danych. Niezależnie od odporności na awarie używanego sprzętu komputerowego (redundantne macierze dyskowe, zasilacze awaryjne itp.), jedynie posiadanie aktualnej kopii zapasowej gwarantuje odzyskanie danych utraconych w wyniku: 1. przypadkowego lub złośliwego wykonania instrukcji DELETE, 2. przypadkowego lub złośliwego wykonania instrukcji UPDATE z brakującym albo błędnie sformułowanym warunkiem logicznym w klauzuli WHERE, 3. przypadkowego lub złośliwego zastąpienia istniejących danych bądź całej bazy danych importowanymi danymi albo odtwarzaną kopią zapasową, 4. kradzieży dysku lub serwera, 5. działania wirusów. Zabezpieczanie serwera MySQL Model bezpieczeństwa MySQL-a jest następujący: żeby połączyć się z serwerem, użytkownik musi potwierdzić (za pomocą loginu i hasła) swoją tożsamość. Proces ten nazywa się uwierzytelnianiem. Następnie, przed wykonaniem przez uwierzytelnionego użytkownika jakiejkolwiek operacji (odczytania lub zmodyfikowania danych, utworzenia tabeli itd.), serwer sprawdza, czy ma on wystarczające uprawnienia, i jeżeli ma zezwala na wykonanie operacji. Brak wymaganych uprawnień spowoduje zgłoszenie błędu i przerwanie operacji. Ten proces nazywa się autoryzacją. Uprawnienia mogą być nadawane użytkownikom na trzech poziomach: całego serwera, konkretnego schematu (wybranej bazy danych) i konkretnego obiektu bazy danych (na przykład tabeli). Domyślnie uprawnienia są dziedziczone, czyli użytkownik, który ma nadane jakieś uprawnienia na poziomie serwera, automatycznie może wykonać daną operację we wszystkich bazach danych i w odniesieniu do każdego obiektu bazodanowego. Konto root ma niczym nieograniczone uprawnienia i nie powinno być na co dzień używane nawet przez administratora, a już w żadnym wypadku przez program kliencki (np. stronę WWW). 4

Korzystając z konta root, drastycznie obniżamy poziom bezpieczeństwa serwera właściwie wyłączamy cały rozbudowany mechanizm autoryzacji (sprawdzania, czy dana osoba ma uprawnienia do wykonania żądanej operacji). Skoro łączymy się jako wszechmogący administrator, to na pewno będziemy mogli wykonać każdą, w tym niebezpieczną, błędną czy przypadkową instrukcję. Jedną z podstawowych zasad bezpieczeństwa komputerowego jest zasada minimalnych uprawnień użytkownik powinien mieć nadane tylko takie uprawnienia, jakie są mu potrzebne do wykonania jego pracy, i żadnych innych. Zakładanie konta użytkownika z określonymi uprawnieniami: Dodać nazwę użytkownika i hasło (Host name: localhost) Edit privileges: w sekcji Administracja: GRANT, PROCESS, SHUTDOWN, SHOW DATABASES, CREATE USER Wybrać Baza danych, z dostępnych baz wybrać test Wykonaj i nadać wszystkie uprawnienia Wykonaj Używając wiersza poleceń - przycisk Shell XAMPP Control Panel zalogować się jako utworzony przed chwilą użytkownik, wyświetlić bazy danych, wybrać bazę mysql, i wykonać zapytanie na tabeli servers: select * from servers; mysql u użytkownik p Enter password: ********* mysql> show databases; +--------------------+ Database +--------------------+ information_schema mysql performance_schema phpmyadmin +--------------------+ mysql> use mysql; mysql> Database changed mysql> select * from servers; ERROR 1142 (42000): SELECT command denied to user 'test'@'localhost' for table 'servers Podobnie zrobić dla bazy test 5

mysql> use test; mysql> Database changed mysql> select * from stock; +--------+---------+ item_id quantity +--------+---------+ 1 12 2 2 4 8 5 3 7 8 8 18 10 1 +------- +---------+ Zarządzanie kontem i bazą danych Na koncie root przycisk User accounts Wybrać konto i zaznaczyć przycisk Eksport Skopiować wynik do notatnika Usunąć użytkownika i do SQL wkleić zapytanie z notatnika - Wykonaj Na koncie root przycisk Eksport Export method - Dostosuj Wybrać bazę test Wykonaj zapisać kopię bazy danych Kilka kolejnych informacji na temat phpmyadmin i MySQL import_i_eksport_danych_w_mysql.pdf programy_administracyjne_w_mysql.pdf 6