MySQL-Zugriff von ausserhalb

MySQL-Zugriff von ausserhalb

am 11.12.2005 19:59:50 von Nick Weisser

Hallo Leute,

ich muss für einen MySQL-User von einer bestimmten IP-Adresse aus
Zugriff von aussen gewähren und habe dazu

1. in meiner my.cnf die Zeile bind-address = 127.0.0.1 auskommentiert

2. GRANT ALL PRIVILEGES ON database TO 'user'@'remote IP' IDENTIFIED BY
'pass' WITH GRANT OPTION; ausgeführt

und

3. MySQL neu gestartet

Dennoch bekomme ich eine Fehlermeldung, wenn ich von extern auf die
Datenbank zugreifen will:

SQL execution error # 1044
Access denied for user 'user'@'remote IP' to database 'database'

Die IP-Adresse ist korrekt - selbst, wenn ich für 'remote IP' ein %
benutze, kommt der Access denied Error.

Hat jemand eine Idee, was ich sonst noch übersehen haben könnte?

Wäre für jeden Tipp dankbar

Gruss
Nick

Re: MySQL-Zugriff von ausserhalb

am 11.12.2005 20:38:54 von Andreas Kretschmer

Andreas
--
Diese Message wurde erstellt mit freundlicher Unterstützung eines freilau-
fenden Pinguins aus artgerechter Freilandhaltung. Er ist garantiert frei
von Micro$oft'schen Viren. (#97922 http://counter.li.org) GPG 7F4584DA
Was, Sie wissen nicht, wo Kaufbach ist? Hier: N 51.05082°, E 13.56889° ;-)

Re: MySQL-Zugriff von ausserhalb

am 11.12.2005 21:09:03 von Nick Weisser

Hallo Andreas,

danke für das schnelle Feedback.

> skip-networking auch?

Ja. Das sieht bei mir jetzt so aus:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address = 127.0.0.1

>>Hat jemand eine Idee, was ich sonst noch übersehen haben könnte?
>
> Daß man MySQL nicht ins Internet prostituiert, sondern statt dessen
> Dinge wie SSH nutzt.

Prostitution wäre, wenn man die Verbindung von überall erlaubt. Bei nur
einer IP kann man nicht von Prostitution reden, denke ich.

Ausserdem ist es in diesem Fall nicht anders möglich.

Hast du sonst noch eine Idee, warum es nicht funzt?

Gruss
Nick

Re: MySQL-Zugriff von ausserhalb

am 11.12.2005 22:27:45 von Andreas Kretschmer

Andreas
--
Diese Message wurde erstellt mit freundlicher Unterstützung eines freilau-
fenden Pinguins aus artgerechter Freilandhaltung. Er ist garantiert frei
von Micro$oft'schen Viren. (#97922 http://counter.li.org) GPG 7F4584DA
Was, Sie wissen nicht, wo Kaufbach ist? Hier: N 51.05082°, E 13.56889° ;-)

Re: MySQL-Zugriff von ausserhalb

am 11.12.2005 22:47:06 von Axel Schwenke

Nick Weisser wrote:

> ich muss für einen MySQL-User von einer bestimmten IP-Adresse aus
> Zugriff von aussen gewähren und habe dazu
>
> 1. in meiner my.cnf die Zeile bind-address = 127.0.0.1 auskommentiert
>
> 2. GRANT ALL PRIVILEGES ON database TO 'user'@'remote IP' IDENTIFIED BY
> 'pass' WITH GRANT OPTION;

Ähem. RTFM: http://dev.mysql.com/doc/refman/5.0/en/grant.html

- Es gibt kein GRANT ... ON TO ... (ABER: .*)
- Ist WITH GRANT OPTION wirklich nötig?
- Eventuell möchtest du über SSL nachdenken. Das MySQL-Protokoll
ist praktisch Klartext.

> 3. MySQL neu gestartet

Das brauchst du bei GRANT nicht. RTFM


XL

Re: MySQL-Zugriff von ausserhalb

am 11.12.2005 22:51:23 von Dirk Brosowski

Andreas Kretschmer schrieb:
>
> Nein. Von Dingen wie zu prüfen, ob MySQL in der Tat am Port lauscht,
> fehlkonfigurierten Tischbrandschutzmauern etc. mal abgesehen...

Das tut es ganz offensichtlich, weil er schließlich eine
Access-denied-Meldung bekommt.

Er sollte mal einen "Ausdruck" der Rechte hier posten, dann wird sein
Problem sicher schnell erkannt.

Grüße

Dirk

Re: MySQL-Zugriff von ausserhalb

am 11.12.2005 23:51:22 von Nick Weisser

Dirk Brosowski wrote:
> Er sollte mal einen "Ausdruck" der Rechte hier posten, dann wird sein
> Problem sicher schnell erkannt.

Ich bin mir nicht ganz sicher, welche Rechte hier ausschlaggebend sind,
doch hier mal ein paar Details zu den relevanten Tabellen:

db:

Host localhost
Db database_name
User username
Select_priv Y
Insert_priv Y
Update_priv Y
Delete_priv Y
Create_priv Y
Drop_priv Y
Grant_priv N
References_priv Y
Index_priv Y
Alter_priv Y
Create_tmp_table_priv Y
Lock_tables_priv Y



tables_priv:

Host 84.227.200.65
Db database_name
User chitra
Table_name database_name
Grantor root@localhost
Timestamp 2005-12-11 18:54:19
Table_priv Select,Insert,Update,Delete,Create,Drop,Grant,Refe...
Column_priv


user:

Host %
User username
Password ********
Select_priv N
Insert_priv N
Update_priv N
Delete_priv N
Create_priv N
Drop_priv N
Reload_priv N
Shutdown_priv N
Process_priv N
File_priv N
Grant_priv N
References_priv N
Index_priv N
Alter_priv N
Show_db_priv N
Super_priv N
Create_tmp_table_priv N
Lock_tables_priv N
Execute_priv N
Repl_slave_priv N
Repl_client_priv N
ssl_type
ssl_cipher [BLOB - 0 Bytes]
x509_issuer [BLOB - 0 Bytes]
x509_subject [BLOB - 0 Bytes]
max_questions 0
max_updates 0
max_connections 0


Gruss
Nick

Re: MySQL-Zugriff von ausserhalb

am 12.12.2005 00:00:15 von Nick Weisser

Axel Schwenke wrote:
> Ähem. RTFM: http://dev.mysql.com/doc/refman/5.0/en/grant.html
>
> - Es gibt kein GRANT ... ON TO ... (ABER: .*)

Des Rätsels Lösung :-)

mit .* hinter dem Datenbanknamen klappt es wunderbar.

> - Ist WITH GRANT OPTION wirklich nötig?

Sag' du es mir.

> - Eventuell möchtest du über SSL nachdenken. Das MySQL-Protokoll
> ist praktisch Klartext.

Danke für den Hinweis.

Gruss
Nick

Re: MySQL-Zugriff von ausserhalb

am 12.12.2005 00:42:28 von Dirk Brosowski

Nick Weisser schrieb:
> Dirk Brosowski wrote:
>
>> Er sollte mal einen "Ausdruck" der Rechte hier posten, dann wird sein
>> Problem sicher schnell erkannt.
>
>
> Ich bin mir nicht ganz sicher, welche Rechte hier ausschlaggebend sind,
> doch hier mal ein paar Details zu den relevanten Tabellen:
>
> db:
>
> Host localhost
> Db database_name
> User username
> Select_priv Y
> Insert_priv Y
> Update_priv Y
> Delete_priv Y
> Create_priv Y
> Drop_priv Y
> Grant_priv N
> References_priv Y
> Index_priv Y
> Alter_priv Y
> Create_tmp_table_priv Y
> Lock_tables_priv Y
>
>
>
> tables_priv:
>
> Host 84.227.200.65
> Db database_name
> User chitra
> Table_name database_name
> Grantor root@localhost
> Timestamp 2005-12-11 18:54:19
> Table_priv Select,Insert,Update,Delete,Create,Drop,Grant,Refe...
> Column_priv
>
>
> user:
>
> Host %
> User username
> Password ********
> Select_priv N
> Insert_priv N
> Update_priv N
> Delete_priv N
> Create_priv N
> Drop_priv N
> Reload_priv N
> Shutdown_priv N
> Process_priv N
> File_priv N
> Grant_priv N
> References_priv N
> Index_priv N
> Alter_priv N
> Show_db_priv N
> Super_priv N
> Create_tmp_table_priv N
> Lock_tables_priv N
> Execute_priv N
> Repl_slave_priv N
> Repl_client_priv N
> ssl_type
> ssl_cipher [BLOB - 0 Bytes]
> x509_issuer [BLOB - 0 Bytes]
> x509_subject [BLOB - 0 Bytes]
> max_questions 0
> max_updates 0
> max_connections 0

Eine Ausgabe von "SHOW GRANTS FOR root@localhost" bzw. angepasst hätte
mir besser gefallen.

Auf jeden Fall gibst du dem User Rechte zum connect, aber keine Rechte
auf die Datenbank, dort hast du nur auf localhost Rechte eingeräumt.
Wenn du dann direkt mit z.B. "mysql -u username -D database -p"
connectest, dann bekommst du einen access denied.

Grüße

Dirk

Re: MySQL-Zugriff von ausserhalb

am 12.12.2005 00:59:12 von Axel Schwenke

Nick Weisser wrote:
> Axel Schwenke wrote:

>> - Ist WITH GRANT OPTION wirklich nötig?
>
> Sag' du es mir.

Was weiß ich denn, welche Rechte du dem User geben willst?

Allerdings ist "WITH GRANT OPTION" einigermaßen ungewöhnlich
für einen nicht-Superuser-Account, deswegen frage ich lieber
mal nach.


XL