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

zio3d

Nuovo Utente
5
0
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.
 

Skills07

Head of Development
Staff Forum
Utente Èlite
35,435
11,501
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
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
 

zio3d

Nuovo Utente
5
0
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.
 

Skills07

Head of Development
Staff Forum
Utente Èlite
35,435
11,501
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
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.
 

zio3d

Nuovo Utente
5
0
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.
 

Skills07

Head of Development
Staff Forum
Utente Èlite
35,435
11,501
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
Io uso semplicemente visual studio code...
vuoi vedere un'applicativo fatto da me in php?
ecco qui:

e se vuoi testare la live demo: https://seateat.altervista.org/demo/index.html

ovviamente dietro c'è un db di prova visto che il prodotto è in fase di sviluppo e prossimo alla vendita
 
  • Mi piace
Reazioni: Moffetta88

Ci sono discussioni simili a riguardo, dai un'occhiata!

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili