Gestione MySQL da remoto

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
Trotto@81
Iper Master
Iper Master
Messaggi: 3559
Iscritto il: sab 26 giu 2004, 0:00
Nome Cognome: Andrea
Slackware: Slackware64 14.2 bet
Kernel: default
Desktop: KDE 4.14.14
Località: Monasterace M. (RC)
Contatta:

Gestione MySQL da remoto

Messaggio da Trotto@81 »

Vi espongo il problema che ho risolto in parte.
Un'azienda delle mie parti ha un server con OpenSuse che fa da database ad un gestionale, il titolare
mi chiama spesso per piccoli interventi sul sistema, me la cavo abbastanza bene con la distribuzione
pur non conoscendola, ma ieri si è presentato un problema che non riguarda proprio la distro.
L'azienda che fornisce il gestionale lo chiama perchè avevano un aggiornamento a disposizione,
questo upgrade comprendeva l'aggiunta al database di una tabella chiamata aziende.
Loro tramite una postazione windows con un programma per la gestione grafica del db
volevano aggiungere la tabella in questione, ma pur avendo inserito tutte le giuste credenziali
non riuscivano perchè gli veniva negato l'accesso, l'utente era root.
Ho creato la tabella tramite query dal server fisico, e sempre tramite il programma non
riuscivano a visualizzarla.
Successivamente ho dato tutti i provilegi alla tabella e i problemi sono scomparsi.
Il software per gestire il db ora non lo ricordo, ma si trova su una macchina win in rete con il server naturalmente.

La mia domanda è, perchè se le credenziali erano tutte corrette non riuscivano a creare la tabella o a visualizzarla se
creata tramite query sul server fisico?

Di database non ci capisco una mazza, a dire il vero nemmeno quelli della software house che non sapevano nemmeno
dirmi se andavano assegnati determinati privilegi (si giustificano dicendo che non sanno usare Linux, bah), ma sarei
curioso di capire dove sta il problema e se può essere risolto per evitare fastidi in futuro.

Il titolare è un tipo ostinato e nonostante gli vogliano installare Windows Server lui insiste nel tenere Suse.

Avatar utente
Naitso
Linux 2.x
Linux 2.x
Messaggi: 208
Iscritto il: lun 10 nov 2008, 15:09

Re: Gestione MySQL da remoto

Messaggio da Naitso »

mysql per essere gestito da remoto (via TCP) usa la porta 3306/tcp open mysql che per essere abilitata in slackware basta leggere /etc/rc.d/rc.mysql

Codice: Seleziona tutto

# To allow outside connections to the database comment out the next line.
# If you don't need incoming network connections, then leave the line
# uncommented to improve system security.
#SKIP="--skip-networking"
nel tuo caso potresti verificare direttamente da una shell del server se la porta è aperta (nmap localhost), se lo è,verifica se SELinux è attivo e se ti blocca la connessione, altrimenti apri la porta (che non no idea di come si faccia in OpenSuse ma penso che google ti possa aiutare), e poi passi alle conf di SELinux (anceh qui San Google)

Per verificare il tutto puoi usare mysql-workbench o una shell da un altro pc se preferisci la riga di comando.
P.S. Attenzione che per gestire il DB con tools di questo tipo ci deve essere un anche un utente abilitato per farlo, mi spiego, tu usi root ma da remoto sarà root@nomepc.dominio.local (se è una macchina Win di una rete aziendale)

Avatar utente
Trotto@81
Iper Master
Iper Master
Messaggi: 3559
Iscritto il: sab 26 giu 2004, 0:00
Nome Cognome: Andrea
Slackware: Slackware64 14.2 bet
Kernel: default
Desktop: KDE 4.14.14
Località: Monasterace M. (RC)
Contatta:

Re: Gestione MySQL da remoto

Messaggio da Trotto@81 »

Intanto grazie per la risposta.
La porta in ascolto è proprio quella, verificata con netstat e in OpenSuse la configurazione del db si trova in /etc/my.conf.
Il programma in questione è SQL Manager, ma ti volevo chiedere una precisazione, perchè dopo aver dato tutti i privilegi da remoto è riuscito a fare tutto?

Giusto per essere precisi, io voglio che la software house possa creare da remoto nuove tabelle tramite
SQL Manager, cosa che ora non può fare, e perchè dopo aver dato i privilegi loro con la tabella creata da me è riuscito a fare tutto il lavoro che c'era da fare?

Scusami se ti stresso, ma ieri al volo ho dovuto imparare le cose più basilari di mysql perchè l'azienda doveva lavorare e per colpa
dell'assistenza sono rimasti bloccati e non poteva consegnare i lavori ultimati.

roberto67
Packager
Packager
Messaggi: 372
Iscritto il: lun 14 set 2009, 18:55
Slackware: 15.0 multilib
Desktop: plasma 5
Contatta:

Re: Gestione MySQL da remoto

Messaggio da roberto67 »

Ciao,
evidentemente l'utente root di mysql ha i privilegi solo per collegarsi da localhost. E cosi dovrebbe essere.
Ma perchè i tuoi clienti usano root per gestire le tabelle anzichè un'utenza con privilegi limitati al DB in uso? Inlotre. se non vogliono mettere a repentaglio la sicurezza del server mysql, consiglia loro di non aprire porte 3306 verso l'esterno. Se c'è un http server installaci phpmyadmin e gestisci tutto in remoto con quello, che è tra l'altro uno strumento potentissimo.

ciao
Roberto

Avatar utente
Trotto@81
Iper Master
Iper Master
Messaggi: 3559
Iscritto il: sab 26 giu 2004, 0:00
Nome Cognome: Andrea
Slackware: Slackware64 14.2 bet
Kernel: default
Desktop: KDE 4.14.14
Località: Monasterace M. (RC)
Contatta:

Re: Gestione MySQL da remoto

Messaggio da Trotto@81 »

roberto67 ha scritto:Ciao,
evidentemente l'utente root di mysql ha i privilegi solo per collegarsi da localhost. E cosi dovrebbe essere.
Ma perchè i tuoi clienti usano root per gestire le tabelle anzichè un'utenza con privilegi limitati al DB in uso? Inlotre. se non vogliono mettere a repentaglio la sicurezza del server mysql, consiglia loro di non aprire porte 3306 verso l'esterno. Se c'è un http server installaci phpmyadmin e gestisci tutto in remoto con quello, che è tra l'altro uno strumento potentissimo.

ciao
Roberto
Solo l'assistenza viene fatta da remoto, perchè tra la Calabria e la Lombardia sarebbe difficile il contrario, l'utilizzo è esclusivamente tramite rete locale.
Anche io avevo pensato di installare phpmyadmin, ma prima dovrei chiedere ai tecnici dell'assistenza se siano in grado di usarlo :lol:
Qual'è insomma la soluzione più elegante e sicura?
Abilitare la gestione da remoto oppure apache + phpmyadmin? Sempre concesso che accettino di usarlo.

roberto67
Packager
Packager
Messaggi: 372
Iscritto il: lun 14 set 2009, 18:55
Slackware: 15.0 multilib
Desktop: plasma 5
Contatta:

Re: Gestione MySQL da remoto

Messaggio da roberto67 »

Trotto@81 ha scritto: Anche io avevo pensato di installare phpmyadmin, ma prima dovrei chiedere ai tecnici dell'assistenza se siano in grado di usarlo :lol:
Beh, un assistente tecnico che avesse problemi a maneggiare un semplice strumento del genere, che tra l'altro non ha bisogno di manuali nè di conoscenze sql, mi farebbe un po' sorridere... :)
Trotto@81 ha scritto: Qual'è insomma la soluzione più elegante e sicura?
Abilitare la gestione da remoto oppure apache + phpmyadmin? Sempre concesso che accettino di usarlo.
I termini di sicurezza aprire porte alla rete internet per fare assistenza mi sembrerebbe deprecabile...
Ah, se opti per phpmyadmin assicurati che abbiano una connessione https...

Avatar utente
Trotto@81
Iper Master
Iper Master
Messaggi: 3559
Iscritto il: sab 26 giu 2004, 0:00
Nome Cognome: Andrea
Slackware: Slackware64 14.2 bet
Kernel: default
Desktop: KDE 4.14.14
Località: Monasterace M. (RC)
Contatta:

Re: Gestione MySQL da remoto

Messaggio da Trotto@81 »

roberto67 ha scritto: Beh, un assistente tecnico che avesse problemi a maneggiare un semplice strumento del genere, che tra l'altro non ha bisogno di manuali nè di conoscenze sql, mi farebbe un po' sorridere... :)
I termini di sicurezza aprire porte alla rete internet per fare assistenza mi sembrerebbe deprecabile...
Ah, se opti per phpmyadmin assicurati che abbiano una connessione https...
Non sapevano spiegarsiperchè da remoto non riuscivano ad accedere al db, questa gente scrive un software non conoscendo
gli strumenti che usano. :shock:

Avatar utente
Naitso
Linux 2.x
Linux 2.x
Messaggi: 208
Iscritto il: lun 10 nov 2008, 15:09

Re: Gestione MySQL da remoto

Messaggio da Naitso »

Ora non so che comandi/permessi hai impostato nella tabella per permettere all'azienda di caricare il tutto, ma di solito (non sono un esperto di mysql) creo l'utente in mysql.users e poi associo il/i db che dovrà utilizzare in modo che l'utente "PIPPO" vedrà solo i db a lui associati, e root non lo faccio usare a nessuno.
Per chiarire puoi leggere dal db mysql la tabella users

Codice: Seleziona tutto

use mysql
select users, host from user;

Avatar utente
Trotto@81
Iper Master
Iper Master
Messaggi: 3559
Iscritto il: sab 26 giu 2004, 0:00
Nome Cognome: Andrea
Slackware: Slackware64 14.2 bet
Kernel: default
Desktop: KDE 4.14.14
Località: Monasterace M. (RC)
Contatta:

Re: Gestione MySQL da remoto

Messaggio da Trotto@81 »

Naitso ha scritto:Ora non so che comandi/permessi hai impostato nella tabella per permettere all'azienda di caricare il tutto, ma di solito (non sono un esperto di mysql) creo l'utente in mysql.users e poi associo il/i db che dovrà utilizzare in modo che l'utente "PIPPO" vedrà solo i db a lui associati, e root non lo faccio usare a nessuno.
Per chiarire puoi leggere dal db mysql la tabella users

Codice: Seleziona tutto

use mysql
select users, host from user;
La tabella è di root e ho dato tutti i privilegi affinchè dalla postazione windows la riuscissero a vedere tramite SQL Manager.
Ho deciso che se mi richiameranno in futuro gli configuro apache con phpmaydmin così sempre da windows tramite browser lanciano tutte le
query che vogliono, se poi non gli va bene fatti loro, questi lavori li faccio gratis in amicizia e quando mi mettono sotto pressione
perchè sono fermi con le consegne perchè l'aggiornamento del gestionale non è andato a buon fine non è piacevole, specie se
quelli dell'assistenza del software ti dicono che non conoscono linux anche quando gli fai domande prettamente inerenti al database.

Mi sono deciso a fare così perchè mi pare di capire che abilitare la gestione da remoto non è la soluzione migliore dal punto di vista della sicurezza.
In pratica dalla lan possono usare il gestionale, ma tramite SQL Manager sempre dalla lan non possono intervenire sul database se non direttamente
dal server che lo ospita.
Ultima modifica di Trotto@81 il ven 24 set 2010, 16:55, modificato 1 volta in totale.

roberto67
Packager
Packager
Messaggi: 372
Iscritto il: lun 14 set 2009, 18:55
Slackware: 15.0 multilib
Desktop: plasma 5
Contatta:

Re: Gestione MySQL da remoto

Messaggio da roberto67 »

Trotto@81 ha scritto: Le tabelle sono di root e ho dato tutti i privilegi affinchè dalla postazione windows le riuscissero a vedere tramite SQL Manager.
Se intendi che root viene usato per le query normali oltre che per l'amministrazione, credo che non sia una buona idea, sempre per motivi di sicurezza, visgto che root vede anche i db di sistema . Perchè non crei una utenza apposita che ha privilegi solo sul database in questione? :p

Avatar utente
Trotto@81
Iper Master
Iper Master
Messaggi: 3559
Iscritto il: sab 26 giu 2004, 0:00
Nome Cognome: Andrea
Slackware: Slackware64 14.2 bet
Kernel: default
Desktop: KDE 4.14.14
Località: Monasterace M. (RC)
Contatta:

Re: Gestione MySQL da remoto

Messaggio da Trotto@81 »

roberto67 ha scritto:
Trotto@81 ha scritto: Le tabelle sono di root e ho dato tutti i privilegi affinchè dalla postazione windows le riuscissero a vedere tramite SQL Manager.
Se intendi che root viene usato per le query normali oltre che per l'amministrazione, credo che non sia una buona idea, sempre per motivi di sicurezza, visgto che root vede anche i db di sistema . Perchè non crei una utenza apposita che ha privilegi solo sul database in questione? :p
Mi spiego meglio. :)
Mi loggo dal server fisico su cui gira il db con,

Codice: Seleziona tutto

mysql -u root -p
con la query,

Codice: Seleziona tutto

CREATE DATABASE aziende;
creo la tabella bella linda e pulita. :D
Bene, questa tabella dalla postazione Windows tramite SQL Manager non viene vista anche se presente, mentre le altre in uso dal gestionale si.
Se provo a crearla da SQL Manager con le credenziali di root e l'indirizzo ip corretto con la giusta porta mi dice che non ho i permessi necessari.
Ma se dal server con GRANT assegno tutte le credenziali a root per la tabella 'aziende' prima creata, da SQL Manager sulla tabella in questione si può effettuare qualsiasi
operazione, come successivamente fatto dall'assistenza.
I tecnici dell'assistenza del gestionale avrebbero voluto creare loro tramite SQL Manager da una postazione Windows nella lan la tabella, ma il database non glielo permetteva.
Se io creo un user a cui assegno le credenziali per lavorare sulle tabelle in questione, nel momento in cui ci fosse la necessità di crearne delle nuove sempre da remoto, potrebbe farlo?

Aggiungo anche che il gestionale gira solo su Win, il server Linux fa solo da database.

roberto67
Packager
Packager
Messaggi: 372
Iscritto il: lun 14 set 2009, 18:55
Slackware: 15.0 multilib
Desktop: plasma 5
Contatta:

Re: Gestione MySQL da remoto

Messaggio da roberto67 »

Trotto@81 ha scritto: Mi loggo dal server fisico su cui gira il db con,

Codice: Seleziona tutto

mysql -u root -p
con la query,

Codice: Seleziona tutto

CREATE DATABASE aziende;
creo la tabella bella linda e pulita. :D
Ecco è qui il punto. Non dovrebbe essere root a creare le tabelle (ti immagini il lavoraccio di un amministratore sql che dovesse essere interpellato per creare le tabelle agli utenti? :shock: ).
Lo schema sarebbe questo: root crea il DB, crea poi una utenza generica ("user" ad esempio) e gli dà i privilegi completi su quel DB, GRANT a parte. A questo punto user può creare le tabelle che vuole sul proprio DB.
In realtà, quando crei l'utente user, su mysql la cosa è un po' ambigua. E' necessario avere un user@192.168.x.x e un altro user@x.x.x.x per l'accesso da remoto. Insomma sono due utenti che hanno la stessa password, gli stessi privilegi, ma ip di accesso diversi. Ma se non hai un ip statico per fare l'accesso da remoto la vedo un po' difficile, e anche per questo consigliavo phpmyadmin, anche per motivi di sicurezza.
Se io creo un user a cui assegno le credenziali per lavorare sulle tabelle in questione, nel momento in cui ci fosse la necessità di crearne delle nuove sempre da remoto, potrebbe farlo?
Ti ho risposto sopra. Dai i privilegi a "user" sull'intero DB e hai risolto il problema. A quel punto non hai più bisogno di fare connessioni superflue con root, del quale non sei tenuto nemmeno a dare la pwd a chicchessia. :p

Avatar utente
Trotto@81
Iper Master
Iper Master
Messaggi: 3559
Iscritto il: sab 26 giu 2004, 0:00
Nome Cognome: Andrea
Slackware: Slackware64 14.2 bet
Kernel: default
Desktop: KDE 4.14.14
Località: Monasterace M. (RC)
Contatta:

Re: Gestione MySQL da remoto

Messaggio da Trotto@81 »

A questo punto mi conviene creare un altro db con un utente e poi farsi trasportare tutto sul nuovo database da quelli dell'assistenza?
Vorrei evitare di fare esperimenti con i dati altrui perchè non sono in grado di garantire il lavoro.
Se mi dai le indicazioni provo a proporre questa soluzione visto che sono legati a SQL Manager.
Attualmente hanno tre taballe io dovrei creare un altro db e poi fargliele ricreare loro all'interno.

Ma da come ho capito, loro hanno tre db distinti, tipo aziende, gestionale, test.
Loro potrebbero trasportarle all'interno di tre tabelle distinte omonime?

roberto67
Packager
Packager
Messaggi: 372
Iscritto il: lun 14 set 2009, 18:55
Slackware: 15.0 multilib
Desktop: plasma 5
Contatta:

Re: Gestione MySQL da remoto

Messaggio da roberto67 »

no, basta creare l'utenza che ti ho detto e dare i tutti i privilegi sul db in questione. Il codice dovrebbe essere (fai delle prove su un db di test prima :| )

Codice: Seleziona tutto

CREATE USER 'testuser'@'123.123.123.123' IDENTIFIED BY '***';

GRANT USAGE ON * . * TO 'testuser'@'123.123.123.123' IDENTIFIED BY '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

GRANT ALL PRIVILEGES ON `nometuodb` . * TO 'testuser'@'123.123.123.123';
Questo dopo aver selezionato il db in questione. Poi fai lo stesso creando un altro utente con pwd identica, ma testuser@127.0.0.1 oppure testuser@192.168.x.x

hashbang
Packager
Packager
Messaggi: 2034
Iscritto il: ven 4 giu 2010, 10:27

Re: Gestione MySQL da remoto

Messaggio da hashbang »

nel tuo caso potresti verificare direttamente da una shell del server se la porta è aperta (nmap localhost), se lo è,verifica se SELinux è attivo e se ti blocca la connessione, altrimenti apri la porta (che non no idea di come si faccia in OpenSuse ma penso che google ti possa aiutare), e poi passi alle conf di SELinux (anceh qui San Google)
Se non ricordo male, solo le distribuzioni Red Hat based usano SELinux di default. Di sicuro dai un'occhiata alle configurazioni di AppArmor, che come su Ubuntu è installato e avviato di default (su SUSE si configura facilmente grazie ai tool grafici della distro).

Offtopic: IMHO, usare su un server aziendale OpenSuSE è un vero e proprio suicidio. È proprio come usare una Fedora. A quel punto è meglio affidarsi a soluzioni commerciali stabili e con un supporto come SUSE Linux Enterprise o Red Hat Enterprise Linux

Rispondi