15.2.2015

Tietokannat: Valtuudet


Valtuudet




Valtuudet ja MySQL



MySQL-käyttäjät



mysql> SELECT * FROM mysql.user;
...
...
Näkee kaikki kentät, paljon informaatiota
...


mysql> SELECT user,host,password FROM mysql.user;
+------------------+------------------+-------------------------------------------+
| user | host | password |
+------------------+------------------+-------------------------------------------+
| root | localhost |*D36F00B81C7E8087ADABF47F2FBC71E7F7B30561 |
| root | testi-VirtualBox |*D36F00B81C7E8087ADABF47F2FBC71E7F7B30561 |
| root | 127.0.0.1 |*D36F00B81C7E8087ADABF47F2FBC71E7F7B30561 |
| root | ::1 |*D36F00B81C7E8087ADABF47F2FBC71E7F7B30561 |
| | localhost | |
| | testi-VirtualBox | |
| debian-sys-maint | localhost | *D36F00B81C7E8087ADABF47F2FBC71E7F7B30561 |
+----------+------------+-------------------------------------------+
7 rows in set (0.01 sec)

MySQL-pääkäyttäjien luominen

Uusia käyttäjiä voi luoda (ja valtuuksia muuttaa) vain sellaiset käyttäjät, jotka ovat luotu "WITH GRANT OPTION" eli esim. seuraavalla tavalla:
mysql -u root -p
Enter password:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'tkuser'@'localhost'
IDENTIFIED BY 'sala' WITH GRANT OPTION;

FLUSH PRIVILEGES;
mysql> exit

Pitkät moniriviset mysql-monitorille annettavat komennot (mm. SQL-kyselyt) voidaan kirjoittaa ja halutessa tallentaa millä tahansa tekstieditorilla ja kopioida mysql-ohjelmaan esim. leikepöydän kautta.

MySQL-käyttäjien lisääminen : 3 tapaa



  http://www.databasef1.com/tutorial/mysql-create-user.html

1) CREATE USER

CREATE USER user [IDENTIFIED BY [PASSWORD] 'password']

esim:

CREATE USER 'user1'@'localhost' IDENTIFIED BY 'pass1';
Edellisen komennon seurauksena kaikki oikeudet N, jotta ao. käyttäjä voisi tehdäkin jotakin laitetaan esim:
GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'user1'@'localhost';

Tai kaikki esim. oikeudet:

GRANT ALL ON *.* TO 'user1'@'localhost';

2) GRANT

Käyttäjä voidaan lisätä myös suoraan GRANT-lauseella esim.
GRANT ALL ON *.* TO 'user2'@'localhost' IDENTIFIED BY 'pass1';

3) INSERT INTO

INSERT INTO user (Host,User,Password)
VALUES('localhost','user3',PASSWORD('pass3'));
Samalla voitaisiin antaa myös joitakin oikeuksia:
INSERT INTO user (Host,User,Password,Select_priv,Insert_priv)
VALUES('localhost','user4',PASSWORD('pass3'),'Y','Y');

MySQL-salasanan muuttaminen



1) Kirjaudu halumallasi MySQL-tunnuksella
2)
set password = password("yournewpassword");
Salasanan vaihto onnistuu myös SQL/Update-lauseella
UPDATE user SET password=PASSWORD('newpassword') WHERE user='root';
Huom: Kaikkien root-käyttäjien (jokainen käyttöpaikka) salasana vaihtuu!

MySQL-käyttöpaikat



MySQL-käyttäjätunnus on oikeastaan käyttäjätunnuksen (user) ja käyttöpaikan (host) yhdistelmä. Käyttäjän oikeudet määräytyy sen mukaan, millä käyttäjätunnuksella on kirjauduttu ja mistä käyttöpaikasta (host).
mysql> SELECT user,host,password FROM mysql.user;
+----------+------------+-------------------------------------------+
| user | host | password |
+----------+------------+-------------------------------------------+
| root | localhost | |
| tkuser | localhost | *D36F00B81C7E8087ADABF47F2FBC71E7F7B30561 |
| iproot | 192.168.1.1| *D36F00B81C7E8087ADABF47F2FBC71E7F7B30561 |
| remoroot | % | *D36F00B81C7E8087ADABF47F2FBC71E7F7B30561 |
+----------+------------+-------------------------------------------+
3 rows in set (0.00 sec)
%-merkki host-sarakkeessa tarkoittaa mitä tahansa käyttöpaikkaa. Edellä nähty remoroot voitaisiin luodaq esim. komentamalla:

GRANT ALL PRIVILEGES ON *.* TO 'remoroot'@'%' IDENTIFIED BY 'sala' WITH
GRANT OPTION;



Osa materiaalista on muokattu Jouni Huotarin materiaalista.