Piccolo portale web per accesso a database MySql (con gestione utenti e relativi ruoli)

Pubblicità

zio3d

Nuovo Utente
Messaggi
5
Reazioni
0
Punteggio
24
Ciao,?‍♂️
devo fare in modo che degli utenti, muniti di login e password, possano accedere a parti del mio database MySql.
Ognuno avrà il suo specifico ruolo, per esempio c'è chi potrà solo leggere, chi potrà solamente modificare, altri potranno anche aggiungere nuovi dati e altri ancora avranno accesso completo, ecc.
Ogni operazione fatta da ogni utente andrà memorizzata, in file di log o in una tabella, in modo che si possa capire "chi ha fatto cosa".

Per fare ciò o mi armo di tanta pazienza e tempo e mi metto a creare da zero un mini sito usando direttamente il PHP o appoggiandomi a framework come CodeIgniter e per il design a Bootstrap.
Oppure usando applicazioni già pronte o programmi PHP pronti all'uso, magari già presente su Softaculous.

A mio avviso, se esiste un applicazione (o "script" PHP) già pronta per questo scopo, gli basterebbe avere le credenziali per l'accesso completo al database MySql e sapere il ruolo di ogni utente. Basta, il resto lo fa l'applicazione. C'è qualcuno che sa se c'è un prodotto (script PHP o programma) già pronto per questo mio scopo o devo mettermi l'anima in pace ed iniziare a programmare di brutto da zero?

Piccolo problema, il database MySql è su Aruba e non è utilizzabile da codice/programmi posti al di fuori dello spazio web del dominio. Era per questo che chiedevo "script"/"programmi" PHP, in modo da inserirli direttamente nello spazio web del sito ospitato da Aruba.
Altrimenti se è un app/programma a sé stante (per esempio un eseguibile Windows vero e proprio) dovrei utilizzare un server dedicato (soluzione ostica ma comunque fattibile) per ospitare il database MySql e renderlo così raggiungibile anche al di fuori dello spazio web del sito.

Grazie.
Davide.
 
Non ha molto senso quello che chiedi.
E' molto piu' semplice e corretto creare il tuo applicativo web in php che si connette direttamente tramite PDO o MySQLI a mysql e faccia tutto quello che gli serve.

Semplicemente una connessione cosi:

PHP:
      $dbhost = "localhost";
      $dbuser = "root";
      $dbpass = "";
      $dbname = "dbname";

      $mysqli = new mysqli($dbhost, $dbuser, $dbpass, $dbname);

      $pdo = new PDO("mysql:host=$dbhost;dbname=$dbname", $dbuser, $dbpass);

      $sql = $pdo->query("SELECT * FROM dbname.table where campo = 1");


Nulla di complicato ti fai una classe db e la richiami in ogni pagina php dove ti serve fare qualcosa col db
 
Ciao.
Grazie della veloce risposta.
Purtroppo la soluzione da te proposta è, come ho scritto nella domanda, "mettermi l'anima in pace ed iniziare a programmare di brutto da zero" ?
Non ho capito cosa intendi per "Non ha molto senso quello che chiedi."...

Ho già implementato soluzioni su miniportali sia tramite PHP e in altri usando CodeIgniter ma i tempi per l'implementazione sono comunque onerosi. Gestione utenti e relativi accessi, gestire la visualizzazione dei dati delle tabelle e loro modifica (stile PhpMyAdmin) mantenendo anche un log o storico delle modifiche. Inoltre ogni pagina avrà le sue immagini/pulsanti per gestire i vari eventi (inserimento, modifica e cancellazione), ecc. Il tutto stando attenti a scrivere codice protetto da attacchi di tipo "php injection" e "sql injection".

Avevo valutato l'ipotesi di farlo con "October CMS", ma non mi convince (anche perché ora è passato commerciale e c'è il nuovo fork Winter cms, troppo giovane a mio avviso).

Avevo valutato anche il buon vecchio Microsoft Access, ma ora i dati sono sul Web e non in locale... L'opzione ODBC su MySql non mi convince per la sicurezza...

Tempo fa avevo trovato prodotti come "phpGrid" che mi permettono di visualizzare e gestire con poche righe la visualizzazione e modifica dei dati delle tabelle, fare filtri, ricerche, ecc. avendo a disposizione anche il codice sorgente con la possibilità di integrarlo nel mio spazio web. Molto interessante, però anche qui manca comunque il sistema di gestione degli utenti e lo storico modifiche.

Quello che mi domando continuamente è: come può non esistere un prodotto che, molto similmente a PhpMyAdmin, permetta attraverso un sito internet, l'accesso ad alcune tabelle (e magari anche viste), con ruoli differenti a seconda dell'utente, dati di log, ecc... A mio avviso esiste, ma non riesco a trovarlo ?

Grazie.
 
molto semplice su quel dominio Aruba hai su un dbmysql?
quindi deduco che tu abbia su la parte di interrogazione con php myadmin, oppure l'opportunità di collegarti a quel db con mysql workbench.

Semplicemente come ti ho detto sopra crei una classe DB in php che si connette come da script che ti ho mandato sopra e sviluppi tutto quello che ti serve.
Verrà creato un applicativo web in php che saprà dialogare con il db per farti fare tutto quello che serve.
Di complicato ha pochissimo.

Gli utenti li gestisci in una tabella del tuo db, ti crei una tabella permissions, a cui ad ogni utente è associ che tipo di permission ha(lettura, scrittura, admin etc)

e ti fai una tabella log, dove scrivi ogni operazione che ogni utente fa.
 
Come dici tu "di complicato ha pochissimo" è vero, non è complicato. Ma è abbastanza oneroso di tempo e delicato (alla fine scrivo il motivo). A mio avviso non si riesce a fare in qualche giorno di lavoro, bensì minimo in qualche settimana di lavoro.

Probabilmente mi mancano alcuni strumenti, attualmente io sono armato solamente di notepad++ con il quale creo uno per uno i file php. Al massimo mi appoggio a Bootstrap per il layout e CodeIgniter per la struttura.
Per curiosità, che strumenti useresti per fare il sito web? Ti appoggi a delle librerie che aiutano a questo scopo o tutto a mano da zero?

Secondo me c'è parecchio lavoro da fare.
Creazione delle form per l'inserimento dei dati di ogni tabella in questione (ne avrò una decina) con naturalmente la validazione dei dati e la possibilità di modifica (la quale richiamerà le stesse form).
Per ogni tabella dovrò inoltre preparare una visualizzazione tabellare per la lettura d'insieme dei dati dove dovrò gestire la visualizzazione in pagine in modo da non far vedere tutti i dati in un unica volta. Dovrò aggiungere la possibilità di filtrare i record (anche multicolonna), possibilità di ordinare i campi, ecc.
Se non ho strumenti a disposizione, non vedo come possa essere fatto tutto questo in poco tempo.
Sicuramente non è diffcile farlo, non discuto, ma oneroso di tempo sì.

Ho aperto questa discussione con la speranza che qualcuno conosca un tool, uno script, un sito internet che permetta di fare quanto da me richiesto senza doverlo implemenatre autonomamente.

C'è da tener conto anche il livello sicurezza. Al giorno d'oggi, tra hacker, GDPR e dati sensibili, è difficile provvedere ad implementare con un buon livello di sicurezza, il bug è sempre dietro l'angolo.
 
Pubblicità
Pubblicità
Indietro
Top