CREATE USER

Podobne dokumenty
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. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

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

Administrowanie serwerami baz danych ZADANIA ADMINISTRATORA BAZ DANYCH

Uprawnienia, role, synonimy

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

SQL 4 Structured Query Lenguage

MySQL. Æwiczenia praktyczne

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

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

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

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

Instalacja MySQL.

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

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

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

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

Administracja bazami danych. dr inż. Grzegorz Michalski

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

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

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

Autor: Joanna Karwowska

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

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

Administracja bazami danych

PHP: bazy danych, SQL, AJAX i JSON

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

Typy tabel serwera MySQL

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

Baza danych inside. Biologiczne Aplikacje Baz Danych

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

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

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

Ćwiczenie 4. Użytkownicy

Administracja i programowanie pod Microsoft SQL Server 2000

Kopie bezpieczeństwa NAPRAWA BAZ DANYCH

DECLARE VARIABLE zmienna1 typ danych; BEGIN

SQL w języku PL/SQL. 2) Instrukcje języka definicji danych DDL DROP, CREATE, ALTER, GRANT, REVOKE

Transakcje jednocześnie ACID

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

Systemowe aspekty baz

Bazy danych. Polecenia SQL

Data modyfikacji:

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

Ćwiczenie 14 autoryzacja

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

Projektowanie systemów baz danych

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

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

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

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

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

MySQL podstawy administracji

Bazy danych i usługi sieciowe

Bazy Danych i Usługi Sieciowe

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

BACKUP BAZ DANYCH FIREBIRD

Widok Connections po utworzeniu połączenia. Obszar roboczy

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

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

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 10. SQL Widoki

2. Podstawy języka SQL

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

SQL - DDL. 1 Tabele systemowe. 2 Typy danych

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

Oracle11g: Wprowadzenie do SQL

Problemy techniczne SQL Server

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

Problemy techniczne SQL Server

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

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

Database Connectivity

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

CREATE DATABASE ksiegarnia_internetowa DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

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

INFORMATOR TECHNICZNY WONDERWARE. Ograniczenie wyświetlania listy zmiennych w przeglądarce zmiennych ActiveFactory

Wyzwalacze (triggery) Przykład

Administracja i programowanie pod Microsoft SQL Server 2000

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

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

T: Zabezpieczenie dostępu do komputera.

Platforma e-learningowa

Wykład 5. SQL praca z tabelami 2

Podstawy technologii WWW

Systemowe aspekty baz danych

Tworzenie widoku CREATE OR REPLACE VIEW [nazwa_widoku] AS SELECT [nazwy_kolumn] FROM [nazwa_tablicy];

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

Lokalne konta użytkowników

Microsoft Visual SourceSafe uproszczona instrukcja użytkowania

Programowanie obiektów

Wykład 6: PHP: praca z bazą danych MySQL, cz.2

System kontroli dostępu ACCO NET Instrukcja instalacji

Internetowe bazy danych

FTP przesył plików w sieci

Zarządzanie użytkownikami bazy danych Oracle11g

Administracja i programowanie pod Microsoft SQL Server 2000

Palety by CTI. Instrukcja

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

Internetowe bazy danych

Transkrypt:

Temat: Administrowanie użytkownikami bazy danych. Po instalacji serwera MYSQL dostępne jest konto o nazwie root. Domyślnie nie ma ono przypisanego hasła, aczkolwiek podczas procesu konfiguracji jest możliwość nadania go. Użytkownik root ma największe uprawnienia dotyczące bazy danych, zarówno w zakresie administrowania bazami (tworzenie, usuwanie, modyfikowanie), jak i w zakresie tworzenia kont użytkowników i nadawania im uprawnień. Brak przypisanego hasła dla użytkownika root umożliwia zalogowanie się do bazy danych bez hasła, tylko poprzez podanie nazwy użytkownika. Aby nadać hasło użytkownikowi root, korzystamy z programu narzędziowego mysqladmin z komendą password. W systemowej tabeli user bazy danych mysql możemy znaleźć użytkownika root wraz z zaszyfrowanym hasłem i nazwą hosta. Nasz użytkownik root nie posiada na razie hasła. TWORZENIE UŻYTKOWNIKA 1. Utworzenie konta użytkownika odbywa się za pomocą klauzuli: CREATE USER nazwa_użytkownika; Utwórz nowego użytkownika o nazwie sosna. CREATE USER sosna; 2. Utworzony przez nas użytkownik będzie od razu widoczny w tabeli systemowej user. 3. W tabeli user jest widoczny w kolumnie host znak %. Oznacza on, że użytkownik ma możliwość logowania się do dowolnego serwera bazy danych. Dla użytkownika z podaną nazwą komputera, na przykład localhost, w miejscu tym pojawi się właśnie taka nazwa. 4. Aby utworzyć użytkownika z prawem korzystania tylko z serwera umieszczonego pod adresem localhost, po nazwie użytkownika podajemy znak @ i nazwę hosta. CREATE USER nazwa_użytkownika@localhost; Utwórz nowego użytkownika o nazwie brzoza z dostępem tylko do serwera localhost. CREATE USER brzoza@localhost; Pozwoli to na ograniczenie dostępu użytkownika do konkretnego serwera. Tym razem w tabeli systemowej user zobaczymy przy użytkowniku brzoza w kolumnie host nazwę localhost. 1

5. Jeśli chcemy, aby użytkownik musiał używać hasła do zalogowania się do bazy danych, powinniśmy nieco rozbudować nasze polecenie. Na jego końcu podajemy klauzulę IDENTIFIED BY, a po niej w apostrofach hasło do zalogowania. CREATE user nazwa_użytkownika@localhost IDENTIFIED BY hasło ; Utwórz nowego użytkownika wierzba z hasłem drzewa. CREATE user wierzba@localhost IDENTIFIED BY drzewa ; Hasło użytkownika wierzba będzie przechowywane w zakodowanej postaci w tabeli systemowej USER w kolumnie password. 6. Użytkownik z nadanym hasłem, aby dostać się do serwera baz danych, musi podać hasło, inaczej logowanie nie powiedzie się. Dokonaj próby logowania użytkownika wierzba bez podania hasła (w drugim oknie konsoli). 7. Dokonaj próby logowania użytkownika wierzba z podaniem hasła. 8. Samo utworzenie użytkownika nie oznacza przydzielenia mu uprawnień na razie użytkownik wierzba nie może połączyć się z bazą. 9. Utwórz nowego użytkownika modrzew z hasłem las. Wyświetl zawartość tabeli USER. 2

NADAWANIE UPRAWNIEŃ UŻYTKOWNIKOWI Nadawanie użytkownikowi uprawnień odbywa się za pomocą komendy GRANT. Jeśli użytkownik nie ma hasła, po komendzie GRANT podajemy rodzaj uprawnienia. Słowo ALL oznacza wszystkie możliwe uprawnienia. Następnie podajemy słowo ON, a po nim nazwę bazy danych lub tabeli. Wyrażenie *.* oznacza dostęp do wszystkich baz i tabel. Część przed znakiem kropki oznacza bazę danych, a po znaku kropki tabelę. Za nimi, po słowie TO podajemy nazwę użytkownika wraz z nazwą hosta po znaku @. GRANT ALL ON *.* TO brzoza@localhost; 1. Po nadaniu użytkownikowi brzoza dostępu do wszystkich baz danych za pomocą przywileju ALL może się on połączyć z dowolną bazą danych. Jeżeli natomiast spróbujemy nadać te same uprawnienia nowemu użytkownikowi, dla którego uprzednio nie założyliśmy konta na serwerze, otrzymamy komunikat o błędzie. 2. Aby nadać uprawnienia użytkownikowi, którego konto wymaga podania hasła, należy polecenie GRANT wzbogacić o klauzulę IDENTIFIED BY, po której podajemy w apostrofach, tak jak w przypadku tworzenia użytkownika, hasło logowania. GRANT ALL ON *.* TO wierzba@localhost IDENTIFIED BY drzewa ; 3. Użytkownik, któremu zostało nadane hasło, nie zaloguje się do system bez jego podania. Dopisanie do poprzedniego polecenia klauzuli IDENTIFIED BY da ten sam przywilej użytkownikowi dostępu do wszystkich baz danych. 4. Uprawnienia dla użytkownika mogą dotyczyć również tylko konkretnej bazy danych. Wystarczy w tym przypadku po słowie ON, przed znakiem kropki, podać nazwę bazy danych. Znak gwiazdki podany po znaku kropki oznacza wszystkie tabele w bazie. GRANT ALL ON firma.* TO modrzew@localhost IDENTIFIED BY las ; Taki użytkownik będzie mógł wykonywać wszelkie operacje, ale tylko w ramach podanej bazy. Próba dostania się do innej bazy zakończy się niepowodzeniem. Korzystając z tych opcji, możemy więc precyzyjnie określić zakres uprawnień. 5. Uprawnienia użytkownika można również zawęzić do jednej tabeli z konkretnej bazy danych. GRANT ALL ON hurtownia.towary TO sosna@localhost; 3

Próba pobrania wyników z tabeli zamowienia nie powiedzie się. Użytkownik będzie miał tylko dostęp do tabeli towary. 6. Podając typ obiektu bazy danych, możemy nadać użytkownikowi uprawnienia tylko do tego obiektu. Wpisanie słowa PROCEDURE nada uprawnienia tylko do procedur. GRANT ALL ON PROCEDURE nazwa_bazy_danych.nazwa_tabeli TO nazwa_użytkownika@localhost IDENTIFIED BY hasło ; W tym celu po klauzuli ON, a przed wprowadzeniem nazwy bazy i tabeli, podajemy typ dostępowego obiektu. Wpisanie PROCEDURE umożliwia dostęp tylko do procedur bazy, czyli do wstępnie zdefiniowanych powtarzalnych operacji. Ograniczony do procedur użytkownik otrzyma komunikat o błędzie za każdym razem, gdy na przykład zechce wykonać inne działanie niż te, które są określone w procedurach. 7. Oprócz typu obiektu uprawnienia możemy ograniczyć za pomocą typu przywileju. Do tej pory stosowaliśmy typ ALL. Istnieje jednak więcej ich rodzajów z najważniejszymi z nich możesz się zapoznać w tabeli Przywileje użytkownika. Przywilej ALL ALTER CREATE CREATE TEMPORARY TABLES CREATE USER CREATE VIEW DELETE DROP FILE GRANT OPTION INDEX INSERT LOCK TABLES SELECT SHOW DATABASES SHOW VIEW SUPER TRIGGER UPDATE USAGE PRZYWILEJE UŻYTKOWNIKA Znaczenie Przywilej do wszystkiego, oprócz możliwości nadawania przywilejów innym użytkownikom Umożliwia wykonywanie polecenia ALTER TABLE Umożliwia tworzenie baz danych i tabel Umożliwia tworzenie tabel tymczasowych Umożliwia tworzenie i usuwanie użytkownika, zmianę nazwy użytkownika i usuwanie uprawnienia użytkownikowi Umożliwia tworzenie i aktualizowanie struktury widoku Umożliwia usuwanie danych z obiektów Umożliwia usuwanie baz, danych i widoków Umożliwia odczyt i zapis danych do pliku Umożliwia nadawanie i odbieranie uprawnień innym użytkownikom Umożliwia tworzenie i usuwanie indeksów z tabel Umożliwia wykonywanie polecenia INSERT Umożliwia blokowanie tabel, pod warunkiem posiadania przywileju SELECT Umożliwia wykonywanie polecenia SELECT Umożliwia pobieranie listy baz danych Umożliwia przeglądanie listy widoków Umożliwia wykonywanie wszystkich operacji administratora Umożliwia wykonywanie operacji związanych z triggerami Umożliwia wykonywanie polecenia UPDATE Brak przywilejów 4

8. Polecenie nadające uprawnienia użytkownikowi może również zezwalać mu na nadawanie praw innym użytkownikom. Dla przywileju ALL nie jest to jednak ustawione domyślnie. Żeby aktywować możliwość nadawania uprawnień, musimy rozbudować polecenie poprzez dodanie na jego końcu klauzuli WITH, po której podajemy opcję przywileju. Wstawienie GRANT OPTION pozwoli na nadawanie uprawnień innym użytkownikom. GRANT ALL ON *.* TO wierzba@localhost IDENTIFIED BY drzewa WITH GRANT OPTION; Po dodaniu klauzuli WITH GRANT OPTION użytkownik może nadawać uprawnienia innym użytkownikom. Zaloguj się w drugim oknie konsoli jako użytkownik wierzba. Zmień uprawnienia użytkownikowi modrzew. GRANT SELECT ON hurtownia.towary TO modrzew@localhost; W tym przypadku użytkownikowi modrzew został nadany przywilej pobierania danych z tabeli towary w bazie danych hurtownia. 9. Użytkownik modrzew może więc pobierać dane z tabeli towary, ale nie może wykonywać żadnych operacji na tej tabeli. Zaloguj się w nowym oknie jako użytkownik modrzew i spróbuj usunąć towary o cenie powyżej 15 zł. ODBIERANIE UPRAWNIEŃ UŻYTKOWNIKOWI Tak jak nadajemy, tak również możemy poszczególnym użytkownikom odbierać uprawnienia. Może być to pomocne w sytuacji, kiedy dana osoba zmieniła zakres obowiązków i dostęp tego użytkownika do określonych danych nie jest już potrzebny. 1. Za odbieranie uprawnień użytkownikowi odpowiada polecenie REVOKE. REVOKE ALL ON nazwa_bazy.nazwa_tabeli FROM nazwa_użytkownika@localhost; Użytkownik modrzew miał przywilej do pobierania danych z tabeli towary bazy danych hurtownia. Spróbujmy odebrać mu uprawnienia do bazy danych hurtownia. REVOKE SELECT ON hurtownia.towary FROM modrzew@localhost; 5

Na początku polecenia podajemy słowo REVOKE, a po nim typ przywileju, który chcemy odebrać. Po klauzuli ON podajemy nazwę bazy danych i tabel, do których będzie odbierane uprawnienie. W tym przypadku jest to tabela towary z bazy hurtownia. Następnie po klauzuli FROM podajemy nazwę użytkownika wraz z hostem. Przed odebraniem uprawnienia użytkownik mógł przeglądać dane z tabeli towary bazy hurtownia, a po odebraniu uprawnień otrzymuje komunikat o błędzie. 2. Za pomocą opcji REVOKE OPTION podanej po typie przywileju możemy odebrać wszystkie uprawnienia, także uprawnienie do nadawania i odbierania uprawnień innym użytkownikom. REVOKE ALL, GRANT OPTION FROM wierzba@localhost; Tym razem użytkownik wierzba po zalogowaniu nie ma nawet prawa połączyć się z żadną bazą danych. 3. Aby sprawdzić informacje na temat uprawnień danego użytkownika, wystarczy wykonać polecenie rozpoczynające się od klauzuli SHOW GRANTS FOR, po której podajemy nazwę użytkownika. SHOW GRANTS FOR wierzba@localhost; Użytkownik wierzba nie ma już żadnych uprawnień, co widać w tabeli: Natomiast w przypadku użytkownika brzoza zostaną wyświetlone nadane mu uprawnienia, ponieważ nie zostały mu odebrane. USUWANIE UŻYTKOWNIKA 1. Użytkownika usuwamy za pomocą klauzuli DROP USER, po której podajemy nazwę użytkownika: DROP USER nazwa_użytkownika; W ten sposób usuwa się użytkownika, który nie miał przydzielonego konkretnego hosta. Usuń użytkownika sosna: 2. Próba usunięcia użytkownika, któremu przydzielono konkretny host, bez podania w poleceniu DROP hosta, zakończy się błędem. 6

Tego typu użytkownik zostanie usunięty, gdy po jego nazwie podamy znak @ i nazwę hosta. DROP USER brzoza@localhost; 3. Żeby czasowo zablokować użytkownikowi możliwość zalogowania do bazy danych możemy wykonać polecenie DELETE na tabeli user. DELETE FROM user WHERE user = nazwa_użytkownika ; Jednak jego uprawnienia pozostaną, więc gdy później ponownie dodamy konto tego użytkownika, od razu odzyska uprawnienia. ZMIANA NAZWY UŻYTKOWNIKA Czasem istnieje potrzeba dokonania zmiany nazwy użytkownika. Nie musimy wtedy usuwać i ponownie tworzyć nowego użytkownika, zwłaszcza jeśli ma on już przydzielone określone przywileje. 1. Zmiany nazwy użytkownika dokonujemy za pomocą klauzuli RENAME USER, po której podajemy starą nazwę użytkownika, słowo TO i nową nazwę użytkownika. RENAME USER stara_nazwa_użytkownika TO nowa_nazwa_użytkownika; Załóż konto dla nowego użytkownika o nazwie grab bez konkretnego hosta. CREATE USER grab; Nadaj mu uprawnienia do wszystkich tabel w bazie danych firma. GRANT ALL ON firma.* TO grab; Dokonaj zmiany nazwy użytkownika grab na klon: RENAME USER grab TO klon; Wykonując takie polecenie dla użytkownika grab, powodujemy iż od tej pory będzie musiał logować się jako klon. Zaloguj się w nowym oknie jako użytkownik klon i sprawdź jego uprawnienia. 2. Jeśli użytkownik wcześniej miał przydzielony host, należy go uwzględnić w nazwie użytkownika. Dokonaj zmiany nazwy użytkownika modrzew na cis: RENAME USER modrzew@localhost TO cis@localhost; Zaloguj się w nowym oknie jako użytkownik cis, podaj hasło (las) i sprawdź uprawnienia użytkownika. 7

SKŁADNIA POLECEŃ SQL DO ZARZĄDZANIA UŻYTKOWNIKAMI Składnia polecenia* Znaczenie CREATE USER user[@host] Tworzenie użytkownika user [z przypisanym [IDENTIFIED BY [PASSWORD] password ] hostem host] [identyfikującego się hasłem [password]. DROP USER user[@host] Usuwanie użytkownika user [z przypisanym GRANT przywilej [lista_kolumn] ON [obiekt] dostęp TO user[@host] [IDENTIFIED BY [PASSWORD ] password ] [WITH GRANT OPTION] REVOKE przywilej [lista_kolumn] ON [obiekt] dostęp FROM user[@host] REVOKE ALL PRIVILEGES, GRANT OPTION FROM user[@host] RENAME USER old_user TO new_user hostem host]. Nadawanie uprawnienia użytkownikowi user [z przypisanym hostem host] [identyfikującym się hasłem password] z przywilejem przywilej [do obiektu obiekt] i dostępie do bazy danych nazwa_bazy i tabeli nazwa_tabeli. obiekt: TABLE lub FUNCTION lub PROCEDURE dostęp: * lub *.* lub nazwa_bazy.* lub nazwa_bazy.*nazwa_bazy.nazwa_tabeli lub nazwa_tabeli Odbieranie uprawnienia użytkownikowi user [z przypisanym hostem host] [identyfikującym się hasłem password] z przywilejem przywilej [do obiektu obiekt] i dostępie do bazy danych nazwa_bazy i tabeli nazwa_tabeli. obiekt: TABLE lub FUNCTION lun PROCEDURE dostęp: * lub *.* lub nazwa_bazy.* lub nazwa_bazy.nazwa_tabeli lub nazwa_tabeli Zmiana nazwy użytkownika. * część poleceń w nawiasach kwadratowych [] można pominąć, ponieważ uprawnienia można nadawać także użytkownikowi, który nie ma przypisanego hasła ani hosta, natomiast przywilej nie musi dotyczyć konkretnego obiektu 8