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



Podobne dokumenty
Bazy Danych i Usługi Sieciowe

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

Bazy danych i usługi sieciowe

CREATE USER

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

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

SQL 4 Structured Query Lenguage

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

MySQL. Æwiczenia praktyczne

Kurs. Podstawy MySQL

Połączenie z bazą danych : mysql h u root -p Enter password: *******

Projektowanie systemów baz danych

Ć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

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

Język SQL, zajęcia nr 1

Administrowanie serwerami baz danych ZADANIA ADMINISTRATORA BAZ DANYCH

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

Instalacja MySQL.

Typy tabel serwera MySQL

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

Data modyfikacji:

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

Bazy danych 7. SQL podstawy

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

Administracja bazami danych. dr inż. Grzegorz Michalski

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

Składowane procedury i funkcje

Internetowe bazy danych

Wyzwalacze (triggery) Przykład

Uprawnienia, role, synonimy

Tworzenie baz i użytkowników.

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

Bazy danych 10. SQL Widoki

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

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

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. UŜytkownicy i schematy (2) UŜytkownicy i schematy (1) baza danych: ZESP99

Wykład 5. SQL praca z tabelami 2

Administracja i programowanie pod Microsoft SQL Server 2000

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

Plan ćwiczenia. Rozdział 16 Uwierzytelnianie i autoryzacja w bazie danych. Użytkownicy i schematy (1) Użytkownicy i schematy (2) baza danych: ZESP99

Jak wida ć na powyższym przykładzie, grupy warunków umieszcza si ę w nawiasach.

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

Bazy Danych. Ćwiczenie 2: Podstawy pracy z bazą MySQL

INFORMATYKA MÓJ SPOSÓB NA POZNANIE I OPISANIE ŚWIATA PROGRAM NAUCZANIA INFORMATYKI Z ELEMENTAMI PRZEDMIOTÓW MATEMATYCZNO-PRZYRODNICZYCH

Transakcje jednocześnie ACID

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Imię i Nazwisko Data Ocena. Laboratorium 7

Trigger jest obiektem związanym z tablicą, który aktywuje się gdy do tablicy następuje odpowiednie zapytanie.

W tej części zajmiemy się ćwiczeniami dotyczącymi modyfikacji rekordów.

Bazy danych. Polecenia SQL

Aby uruchomić program klienta i połączyć się z serwerem, należy komendę:

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

TEST E.14 BAZY DANYCH

Licznik letronikovc. Instalacja mysql 8.1 na Windows i tworzenie bazy dla sieci liczników.

1. Sprawdzenie ustawień konfiguracyjnych. Uruchomienie wiersza poleceń:..\ścieżka\bin>mysqladmin variables

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

Bazy danych 5. Samozłaczenie SQL podstawy

Autor: Joanna Karwowska

Instalacja Moodle na serwerze SBS2000/2003. Opiekun pracowni internetowej SBS

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

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

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

Ćwiczenie 14 autoryzacja

Database Connectivity

MySQL podstawy administracji

PHP: bazy danych, SQL, AJAX i JSON

Odnawialne Źródła Energii I rok. Tutorial PostgreSQL

Bazy Danych - Instrukcja do Ćwiczenia laboratoryjnego nr 8

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

Tworzenie u ytkownika. ORACLE (Wykład 6) Uwierzytelnianie u ytkowników. Przył czenie u ytkownika do bazy. Nadawanie uprawnie systemowych

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

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.

Przestrzenne bazy danych Podstawy języka SQL

Zajęcia 13 wykorzystanie MySQL w PHP cz. 2

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

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

SQL> startup pfile=./admin/pfile/initdbx.ora. SQL> create spfile from pfile='$home/admin/pfile/initdbx.ora' create user bolek identified by bolek;

Wprowadzenie. Tworzenie widoków

Bazy danych 4. SQL podstawy. P. F. Góra

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

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

5. Współpraca z bazą danych MySQL

1. Połączenie z bazą danych. W wybranym edytorze tworzymy plik sqltest.py i umieszczamy w nim poniższy kod. #!/usr/bin/python3 import sqlite3

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

Projektowanie baz danych za pomocą narzędzi CASE

korzyści finansowe przewaga pomysłu nad kapitałem tworzenie nowych branż tworzenie mechanizmów pochodnych (np. serwis snip).

Duplikacja i replikacja MySQL. Opracowanie: Piotr Knopczyński Marcin Talarczyk

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

Internetowe bazy danych

Ref. 7 - Język SQL - polecenia DDL i DML

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Zarządzanie systemami informatycznymi. Zarządzanie internetową bazą danych MySQL

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

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Baza danych. Baza danych jest to zbiór danych powi zanych mi dzy sob pewnymi zale no ciami.

SQL (ang. Structured Query Language)

Transkrypt:

Uprawnienia dla uż ytkowników MANIPULACJA UPRAWNIENIAMI Przechodzimy do cześci nadawania oraz odbierania uprawnie ń. Wszelkie zmiany dotyczące tabel w bazie mysql można przeprowadza ć za pomoc ą znanych Ci z poprzednich lekcji polece ń, takich jak select, insert, update czy delete. Można równie ż w łatwy sposób zarządza ć uprawnieniami za pomoc ą polece ń GRANT (dodawanie uprawnie ń) i REVOKE (odbieranie uprawnie ń ). Na początku ustawmy hasło dla użytkownika root, aby nikt niepowołany nie móg ł w łatwy sposób dosta ć si ę do serwera baz danych: UPDATE user SET Password=PASSWORD('pass') WHERE user='root'; Query OK, 2 rows affected (0.05 sec) Rows matched: 2 Changed: 2 Warnings: 0 FLUSH PRIVILEGES; Za pomoc ą polecenia UPDATE zmieniliśmy warto ść pola Password na nowe hasło, tam gdzie użytkownik jest zdefiniowany jako root (dwa rekordy). Hasła w MySQL kodowane s ą za pomoc ą funkcji PASSWORD(), dlatego musisz jej uży ć, aby zapisa ć hasł o w tabeli. Ostatnie polecenie (FLUSH PRIVILEGES;) przeładowuje uprawnienia. Gdybyśmy tego nie zrobili, zmiany nie byłyby widoczne, root dalej logowałby si ę bez hasła. Nie musisz odświeża ć uprawnie ń, jeżeli używasz wbudowanych funkcji do obsł ugi przywilejów: SET PASSWORD FOR root=password('mypass'); Query OK, 0 rows affected (0.05 sec) Spróbujmy teraz zalogowa ć si ę do mysql-a z hasł em 'pass': C:\apache\mysql\bin> mysql -u root -p Enter password: **** ERROR 1045: Access denied for user: 'root@localhost' (using password: YES) C:\apache\mysq\bin> Jak wida ć hasło 'pass' nie jest ju ż aktualne, poniewa ż zmieniliśmy je na 'mypass' za pomoc ą funkcji SET PASSWORD... Spróbujmy zatem jeszcze raz, tym razem podają c haslo 'mypass': C:\apache\mysql\bin> mysql -u root -p Enter password: ****** Your MySQL connection id is 40 to server version: 3.23.33

Type 'help' for help I spróbujmy jeszcze zalogowa ć si ę bez hasł a, jak dawniej: C:\apache\mysql\bin> mysql -u root ERROR 1045: Access denied for user 'root@localhost' (Using password: NO) C:\apache\mysql\bin> Jak wiad ć, nasz MySQL jest zabezpieczony hasł em. Polecenie GRANT Za pomoc ą tego polecenia dodajesz uprawnienia dostępu do baz danych, tabel czy kolumn. Spróbujmy teraz utworzy ć nowego użytkownika admin z dostępem do bazy danych nasza_baza i tabeli ksiazka_adresowa: GRANT SELECT ON nasza_baza.ksiazka_adresowa TO admin@localhost; Mamy ju ż w tej chwili dostępnego użytkownika admin, który ma prawo wybiera ć dane z tabeli ksiazka_adresowa z naszej bazy. Ten użytkownik nie ma ustawionego hasła, ale musi logowa ć si ę z localhost: c:\apache\mysql\bin> mysql -u admin Your MySQL connection id is 52 to server version: 3.23.33 Jak wida ć, nowy użytkownik może si ę ju ż zalogowa ć. Przetestujmy teraz jego uprawnienia, najpierw na bazie mysql, potem na nasza_baza: use mysql ERROR 1044: Access denied for user: admin@localhost' to database 'mysql' use nasza_baza Database changed INSERT INTO ksiazka_adresowa VALUES(0,'Imie','adres','telefon', 'adres@email.pl'); ERROR 1142: insert command denied to user 'admin@localhost' for table 'ksiazka_adresowa' select * from ksiazka_adresowa; Empty set (0.00 sec)

Jak wynika z powyższego przykładu, nasz nowy użytkownik nie ma dostępu do bazy mysql. Nie może równie ż dodawa ć rekordów do tabeli ksiazka_adresowa w naszej bazie. Jedynie polecenie SELECT zostało zakończone sukcesem, bo tylko do tego ma uprawnienia użytkownik admin. Spróbujmy utworzy ć teraz użytkownika admin2 z uprawnieniami do wybierania, dodawania, edycji i usuwania rekordów: GRANT SELECT,INSERT,UPDATE,DELETE ON nasza_baza.* TO admin2@localhost; Ten użtykownik ma prawo do wykonywania instrukcji SELECT, INSERT, UPDATE i DELETE na wszystkich tabelach w bazie nasza_baza. Znak * użyty zamiast nazwy tabeli oznacza dostę p do wszystkich tabel.. Spróbujmy teraz utworzy ć użytkownika admin3 z prawem dodawania rekordów we wszystkich bazach danych systemu: GRANT INSERT ON *.* TO admin3@localhost; Jak wida ć, aby zaznaczy ć wszystkie bazy danych wraz z towarzyszącymi im tabelami, użyliśmy konstrukcji *.*, co oznacza <dowolna_baza>.< dowolna_tabela>:. Spróbujmy teraz utworzy ć użytkownika admin4 przychodzącego z dowolnego hosta z prawem wybierania rekordów z bazy nasza_baza i dowolnej tabeli: GRANT SELECT ON nasza baza.* TO admin4@'%'; Jak wida ć, aby oznaczy ć dowolny host, użyliśmy znaku % umieszczonego w cudzysł owach. Spróbujmy teraz utworzy ć użytkownika admin5 ze wszystkimi prawami w bazie nasza_baza i dowolnej tabeli przychodzącego z localhost: GRANT ALL PRIVILEGES ON nasza_baza.* TO admin5@localhost; Jak wida, aby zaznaczy, e chcemy nada u ytkownikowi wszystkie prawa, u yli my ć ć ż ć ż ż ś polecenia ALL PRIVILEGES.

Spróbujmy jeszcze utworzy ć takiego użytkownika jak poprzedni, ale z prawem nadawania uprawnie ń (grantów): GRANT ALL PRIVILEGES ON nasza_baza.* TO admin6@localhost WITH GRANT OPTION; Jak wida ć, aby zaznaczy ć, że chcemy nada ć wszystkie prawa razem z grantami, użyliśmy polecenia WITH GRANT OPTION. Spróbujmy teraz utworzy ć użytkownika admin7 z dostępem do wszystkich baz danych i tabel, ale z wymaganym hasł em 'haslo': GRANT ALL PRIVILEGES ON *.* TO admin7@localhost IDENTIFIED BY 'haslo'; Spróbujmy teraz zalogowa ć si ę na użytkownika admin7, raz bez podania hasła, a następnie z hasł em: C:\apache\mysql\bin> mysql -u admin7 ERROR 1045: Access denied for user: 'admin7@localhost' (Using password: NO) C:\apache\mysq\bin> mysql -u admin7 -p Enter password: ***** Welcome to the MySQl monitor. Commands with ; or \g. Your MySQL connection id is 78 to server version: 3.23.33 Jak wida ć hasło dla tego użytkownika jest wymagane. Spróbujmy jeszcze utworzy ć użytkownika admin8 z prawem wybierania pola imie oraz edycji pól adres i email z tabeli ksiazka_adresowa w naszej baze testowej: GRANT SELECT(imie),UPDATE(adres,email) ON nasza_baza.ksiazka_adresowa TO admin8@localhost; Query OK, 0 rows affected (0.22 sec) Jak wida ć, aby określi ć kolumny, na jakich maj ą działa ć uprawnienia, wystarczy zapisa ć je w nawiasach okrągłych występują cych po uprawnieniu. Polecenie REVOKE Za pomoc ą tego polecenia usuwasz uprawnienia dostę pu do baz danych, tabel czy kolumn.

Spróbujmy teraz usun ąć uprawnienia nadane użytkownikowi admin z dostępem do bazy danych nasza_baza i tabeli ksiazka_adresowa: REVOKE SELECT ON nasza_baza.ksiazka_adresowa FROM admin@localhost; Query OK, 0 rows affected (0.05 sec) Jak wida ć z powyższego przykładu, aby usun ąć uprawnienia nadane użytkownikowi, posługujemy si ę podobn ą składni ą jak przy dodawaniu uprawnie ń. Różnice s ą dwie: zamiast słowa GRANT występuje REVOKE, a zamiast TO - FROM. Spróbujmy sprawdzi ć, czy rzeczywiście nie mamy dostępu do bazy danych nasza_baza: C:\apache\mysql\bin> mysql -u admin Your MySQL connection id is 83 to server version: 3.23.33 use nasza_baza ERROR 1044: Access denied for user: 'admin@localhost' to database 'nasza_baza' Na koniec spróbujmy jeszcze odebra ć uprawnienia użytkownikowi admin8: REVOKE SELECT(imie),UPDATE(adres,imie) ON nasza_baza.ksiazka_adresowa FROM admin8@localhost; Do oceny (tylko podczas zaj ęć!!!) przedstawic należy histori ę polece ń, które nadaj ą uprawnienia użytkownikom admin1, admin2,, admin8 oraz wska ż, i ż zmianie uległo hasło administratora.