Prava pristupa mysql

Određena baza podataka hss_db mi se vrtila pod localhost (127.0.0.1). Sada kada bazi treba da se pristupa preko ip adrese 192.168.0.1, mislim da moram da promijenim i dio skripte sa pravima pristupa, koji trenutno izgleda:

# DB access rights
grant delete,insert,select,update on hss_db.* to hss@localhost identified by ‘hss’;

Moje pitanje je da li treba da mijenjam nešto u ovom dijelu skripte i ako da, šta bi trebalo stajati umjesto localhost (ip adresa?).

Možda sam kao i obično glupo formulisala pitanje, ali se nadam da je razumljivo…

kad se kao root nakačiš na bazu, možeš vidjeti koja prava ima koji user

mysql -u root -p mysql

mysql> select Host, User, Password from user;
±----------±-----------------±------------------------------------------+
| Host | User | Password |
±----------±-----------------±------------------------------------------+
| localhost | root | *11D3EEB80EEC2DC01B9C5F7FE130856DAC98D20C |
| localhost | debian-sys-maint | *3C2541CADADF484280F357F0D716FDBE65A67710 |
±----------±-----------------±------------------------------------------+
2 rows in set (0.00 sec)

mysql>

situacija je sljedeća:

  1. moraš naštimati mysql server da sluša na IP adresi koja je na toj serverskoj mašini
  2. moraš u polje Host kod tog usera upisati IP adresu sa koje dolazi, npr ovako
    ±---------------±-----------------±------------------------------------------+
    | Host | User | Password |
    ±---------------±-----------------±------------------------------------------+
    | localhost | root | *11D3EEB80EEC2DC01B9C5F7FE130856DAC98D20C |
    | localhost | debian-sys-maint | *3C2541CADADF484280F357F0D716FDBE65A67710 |
    | 192.168.10.115 | aldin | *26F4D68E975ACBBB97514AE21DE04D1A64FA01DE |
    ±---------------±-----------------±------------------------------------------+
    3 rows in set (0.00 sec)

mysql> select Host, User, Password from user;
±----------±-----------------±------------------------------------------+
| Host | User | Password |
±----------±-----------------±------------------------------------------+
| localhost | root | *11D3EEB80EEC2DC01B9C5F7FE130856DAC98D20C |
| localhost | debian-sys-maint | *3C2541CADADF484280F357F0D716FDBE65A67710 |
| % | aldin | *26F4D68E975ACBBB97514AE21DE04D1A64FA01DE |
±----------±-----------------±------------------------------------------+
3 rows in set (0.00 sec)

mysql> select Host, User, Password from user;
±----------±-----------------±------------------------------------------+
| Host | User | Password |
±----------±-----------------±------------------------------------------+
| localhost | root | *11D3EEB80EEC2DC01B9C5F7FE130856DAC98D20C |
| localhost | debian-sys-maint | *3C2541CADADF484280F357F0D716FDBE65A67710 |
| localhost | aldin | *26F4D68E975ACBBB97514AE21DE04D1A64FA01DE |
±----------±-----------------±------------------------------------------+

a inače to je otprilike ovako kada se radi query

GRANT ALL PRIVILEGES ON aldin . * TO ‘aldin’@‘192.168.10.111’;

uglavnom je to u /etc/my.cnf ili /etc/mysql/my.cnf

bind-address = 192.168.10.31

naravno, poslije toga restart mysql servera

Thx, sve mi je jasno i uradila sam tako, rezultat kverija select Host… se promijenio u skladu s komandom.
Recimo, imam bazu podataka hss_db, korisnika hss, i dodijelila sam sve privilegije korisniku hss@192.168.0.1 nad bazom hss_db.
Međutim dio skripte hss_db.sql koji sam gore navela je i dalje isti, a prema uputstvu za izmjene open source-a koji trenutno modifikujem, potrebno ga je izmijeniti?

Pa dodaj liniju "grant… to hss@192.168.0.1…"
Ali ovdje ne ide IP adresa servera nego IP adresa računara sa kojeg se konektuješ. Ako je u pitanju više računara, možeš koristiti wildcard %

http://dev.mysql.com/doc/refman/5.1/en/grant.html

[quote=nidla]uglavnom je to u /etc/my.cnf ili /etc/mysql/my.cnf

bind-address = 192.168.10.31

naravno, poslije toga restart mysql servera[/quote]
Sumnjam da je ovo dobra ideja. Ako je mysql startan sa TCP/IP networkingom, bind-address služi da se konfiguriše mysql da sluša samo na toj adresi, tako da ako staviš 192.168.10.31, TCP/IP konekcija na “localhost” neće raditi.

Ako je ‘bind-address’ zakomentirana, onda mysql sluša na svim mrežnim interfejsima (niđe veze). Pošto je ovo potencijalno sigurnosni problem, rješenje je ili firewall ili mysql sa podrškom za tcp wrappers, gdje se onda prčka i po /etc/hosts.allow (koliko sam vidio, Debian konfiguriše mysql sa tcp wrapperima, ostali ne).

[quote=adis][quote=nidla]uglavnom je to u /etc/my.cnf ili /etc/mysql/my.cnf

bind-address = 192.168.10.31

naravno, poslije toga restart mysql servera[/quote]
Sumnjam da je ovo dobra ideja. Ako je mysql startan sa TCP/IP networkingom, bind-address služi da se konfiguriše mysql da sluša samo na toj adresi, tako da ako staviš 192.168.10.31, TCP/IP konekcija na “localhost” neće raditi.[/quote]
kada stavim ovako, meni radi i na localhost

debian:~# cat /etc/mysql/my.cnf |grep bind
bind-address = 192.168.10.31
debian:~# mysql -h localhost --port 3306 -u root -p mysql
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 32
Server version: 5.0.51a-19 (Debian)

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql> status

mysql Ver 14.12 Distrib 5.0.51a, for debian-linux-gnu (i486) using readline 5.2

Connection id: 32
Current database: mysql
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ‘’
Using delimiter: ;
Server version: 5.0.51a-19 (Debian)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
UNIX socket: /var/run/mysqld/mysqld.sock
Uptime: 4 min 18 sec

Threads: 1 Questions: 148 Slow queries: 0 Opens: 27 Flush tables: 1 Open tables: 21 Queries per second avg: 0.574

mysql>

jes da je debian, e jel radi toga ili nije ne znam nemam sad kad da istražujem :slight_smile:

možda je ovo je u pitanju :slight_smile:

Connection: Localhost via UNIX socket

al maksuzije sam mu stavio -h localhost --port

hmmm misterija :smiley: