Torna indietro   Hardware Upgrade Forum > Software > Programmazione

L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint
Abbiamo intervistato Sumit Dhawan, CEO di Proofpoint, per capire come stia cambiando il mondo della sicurezza con l'avvento dell'intelligenza artificiale e con il ritmo sempre più serrato a cui vengono trovate vulnerabilità nel software. Un problema significativo, che richiederà del tempo per essere risolto (o quantomeno arginato)
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026
La parola d'ordine al Nextcloud Summit 2026, che si è tenuto a Monaco, è stata "sovranità". Non come è spesso usato questo termine in politica ma, al contrario, come capacità positiva di decidere il proprio destino tecnologico, con modalità collaborative e aperte. L'Europa dice già molto nel mondo open source, che viene visto come mezzo per ottenere la tanto agognata autonomia digitale
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più
Dreame X60 Pro Ultra Complete implementa due bracci estensibili, per spazzola e moccio, che si spingono ben oltre quanto visto sino ad oggi permettendo una pulizia di casa ancor più capillare e precisa
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-12-2010, 08:51   #1
Herod2k
Senior Member
 
L'Avatar di Herod2k
 
Iscritto dal: Jan 2005
Città: Roma
Messaggi: 4870
[Django] Dubbi su l'utilizzo multidatabase

Ciao ragazzi,

sto valutando l'ipotesi di utilizzare django per un progetto abbastanza grande che devo sviluppare, per ora mi sono letto parecchia documentazione e mi sembra un ottimo framework, peró ho solo un dubbio, e vorrei togliermelo prima di mettermi seriamente a progettare/programmare il sito.

La piattaforma che devo sviluppare è multidominio e si adatta in base al dominio di accesso, e ogni dominio ha i suoi dati.

Pensavo di fare cosi: fare un database, dove mettere i domini in una tabella, nella stessa tabella mettere user, password, host e tipo di database, del relativo database del sito, quindi fare una prima query per vedere quale base di dati deve utilizzare la piattaforma e poi.. connettermi al database "effettivo"

Quindi ricapitolando.
L'utente mette l'indirizzo nel browser, l'utente viene reindirizzato sulla nostra piattaforma, da li come è entrato il sistema vede da che dominio proviene, fa una query al db ed estrae i dati di connessione per il database effettivo, si connette e disegna il sito con i dati del dominio selezionato.

Django puó farlo?
Il dubbio mi è venuto perchè il settings.py mi sembra abbastanza "statico" non vorrei sbattermi per una cosa che o non si puó fare o che mi ci vuole un'enormitá di codice per farla, non vorrei che l'ORM si rifiutasse di collaborare con tutti sti cambi di connessione.

Grazie

H2K
Herod2k è offline   Rispondi citando il messaggio o parte di esso
Old 03-12-2010, 23:23   #2
cdere
Senior Member
 
L'Avatar di cdere
 
Iscritto dal: Feb 2001
Città: Foggia
Messaggi: 2519
ho utilizzato django per un progettino personale, è davvero un ottimo framework.
Ma pensando al tuo quesito non saprei proprio dirti sinceramente, intanto mi iscrivo, se non viene in tuo aiuto qualcuno di più ferrato di me faccio qualche prova io e ti so dire..
__________________
mi sembra di essere tornato adolescente ai bei tempi.. che figata essere di nuovo su questo forum
cdere è offline   Rispondi citando il messaggio o parte di esso
Old 05-12-2010, 20:11   #3
Herod2k
Senior Member
 
L'Avatar di Herod2k
 
Iscritto dal: Jan 2005
Città: Roma
Messaggi: 4870
grazie mille, nel frattempo anche io cerco una soluzione.
Herod2k è offline   Rispondi citando il messaggio o parte di esso
Old 09-12-2010, 15:04   #4
cdere
Senior Member
 
L'Avatar di cdere
 
Iscritto dal: Feb 2001
Città: Foggia
Messaggi: 2519
http://www.google.it/search?q=django...ient=firefox-a è il primo risultato

__________________
mi sembra di essere tornato adolescente ai bei tempi.. che figata essere di nuovo su questo forum
cdere è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2010, 12:52   #5
Herod2k
Senior Member
 
L'Avatar di Herod2k
 
Iscritto dal: Jan 2005
Città: Roma
Messaggi: 4870
Quote:
Originariamente inviato da cdere Guarda i messaggi
vero, avevo dimenticato di dire che avevo letto giá la documentazione del sito ufficiale, il problema è che la documentazione spiega come creare un multidatabase con i parametri preimpostati nel settings.py peró non spiega come farlo con dei parametri dinamici provenienti da db (sempre si puó fare).

Diciamo che avró N clienti, e ogni cliente avrá il suo database, non li voglio unire per questioni di quantitá di dati e di privacy... metti caso che scrivo una query sbagliata non voglio che un utente possa accedere ai dati di altre persone per sbaglio o per altri motivi.
Ogni cliente avrá quindi il suo DB, tutti i db avranno la stessa struttura.

In pratica devo riuscire a cambiare la connessione una volta che il cliente fa il login e reindirizzarla al database del cliente specifico, ovviamente in maniera totalmente trasparente.

H2K
Herod2k è offline   Rispondi citando il messaggio o parte di esso
Old 13-12-2010, 18:43   #6
cdere
Senior Member
 
L'Avatar di cdere
 
Iscritto dal: Feb 2001
Città: Foggia
Messaggi: 2519
ah bhè, così direi che la storia è ben diversa.
Secondo me, se hai queste esigenze così specifiche ti conviene prendere in considerazione un framework più flessibile da questo punto di vista
__________________
mi sembra di essere tornato adolescente ai bei tempi.. che figata essere di nuovo su questo forum
cdere è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2010, 15:53   #7
Herod2k
Senior Member
 
L'Avatar di Herod2k
 
Iscritto dal: Jan 2005
Città: Roma
Messaggi: 4870
Fatto!

Ce l'ho fatta!

Scrivo come, magari puó tornare comodo a qualcuno.

Ho impostato nel settings.py due database (per ora ho fatto le prove sono sqlite3 peró non vedo perchè non dovrebbe funzionare anche con gli altri tipi di db)
ho creato 2 models.py con le strutture del db in 2 applicazioni differenti.
1. Databaseclienti (db di default)
2. DBClientSingolo

ho seguito la guida ufficiale sul multidb in Django e ho creato un DBRouter (la guida è abbastanza criptica in questo senso, ho dovuto faticare un po')

ho generato entrambi i db con syncdb e ho riempito il primo con alcuni clienti e con le indicazioni sul db di ogni cliente.
Il secondo l'ho lasciato vuoto, ho clonato il secondo db in piu copie e l'ho riempito con i dati del cliente specifico.

Nel settings.py quindi come ho giá detto inzialmente chiamo 2 db il primo è pieno di dati e l'altro è un db vuoto, al login faccio la query (con l'ORM di Django) e mi vado a prendere i dati del db specifico del client, con i dati caricati sovrascrivo i dati del secondo db

Codice:
from django.conf import settings
settings.DATABASES['DBClientSingolo']['NAME']=dati.database.name
e inizio a fare le query al DB effettivo del cliente e Django risponde perfettamente.
query che si scrive specificando il db in questo modo:
Codice:
Anagrafe.objects.using('DBClientSingolo').all()
Nel codice soprariportato cambio solo il name del db perchè è sqlite3 nel caso fosse un'altro tipo di database si dovrebbero cambiare tutti i dati di connessione.

Non so se è il metodo piu pulito per fare quello di cui ho bisogno peró è l'unico che ho trovato fin'ora, vi tengo aggiornati nel caso di sviluppi.

Grazie per l'aiuto

H2K
Herod2k è offline   Rispondi citando il messaggio o parte di esso
Old 14-12-2010, 16:02   #8
cdere
Senior Member
 
L'Avatar di cdere
 
Iscritto dal: Feb 2001
Città: Foggia
Messaggi: 2519
ottimo lavoro! E grazie per la condivisione
__________________
mi sembra di essere tornato adolescente ai bei tempi.. che figata essere di nuovo su questo forum
cdere è offline   Rispondi citando il messaggio o parte di esso
Old 16-12-2010, 22:29   #9
Johnn
Senior Member
 
Iscritto dal: May 2004
Messaggi: 1136
Penso si possa approcciare al problema anche in modo differente, cioè utilizzando i permessi a livello esculsivamente del db: ogni utente può fare query solo dove ha i permessi. Potrebbe essere comodo a tal proposito creare uno schema all'interno di uno stesso db per ciascun utente. So che si può fare con Posgresql. Che db usi?

Django, o chi per esso, non si dovrebbe più preoccupare della questione.
Johnn è offline   Rispondi citando il messaggio o parte di esso
Old 17-12-2010, 08:44   #10
Herod2k
Senior Member
 
L'Avatar di Herod2k
 
Iscritto dal: Jan 2005
Città: Roma
Messaggi: 4870
Quote:
Originariamente inviato da Johnn Guarda i messaggi
Penso si possa approcciare al problema anche in modo differente, cioè utilizzando i permessi a livello esculsivamente del db: ogni utente può fare query solo dove ha i permessi. Potrebbe essere comodo a tal proposito creare uno schema all'interno di uno stesso db per ciascun utente. So che si può fare con Posgresql. Che db usi?

Django, o chi per esso, non si dovrebbe più preoccupare della questione.
la tua idea mi pare ottima dovrei studiarmela meglio, ora in sviluppo sto usando sqlite3 che comodo, specialmente perchè lo posso mettere in un repository svn, dopo in produzione useró un db piu potente sicuramente, peró ancora non ho scelto pensavo mysql, pero anche postgree non lo scarterei.
Herod2k è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


L'IA cambia tutte le regole della sicurezza tra vulnerabilità e sorveglianza. Intervista al CEO di Proofpoint L'IA cambia tutte le regole della sicurezza tra ...
L'Europa conta nella tecnologia e può essere autonoma. Cosa si è detto al Nextcloud Summit 2026 L'Europa conta nella tecnologia e può ess...
Dreame X60 Pro Ultra Complete: i bracci si estendono sempre di più Dreame X60 Pro Ultra Complete: i bracci si esten...
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
Nuovi robot aspirapolvere con funzioni t...
Cloudflare taglia un quinto del personal...
Snapdragon 8 Elite Gen 6: poche differen...
Hai una GPU NVIDIA e perdi fino al 10% d...
Una Game Boy Camera del 1998 sul telesco...
La crisi delle memorie è colpa di...
Lexar ARES, SSD da 2TB Gen4 a prezzo ott...
Crisi della RAM: Apple punta su un forni...
DJI Osmo Mobile 7 scende a 58,99€: stabi...
REDMI Buds 8 in prova: il suono che non ...
OPPO aggiorna la sua gamma di auricolari...
Xbox non ha chiuso Ninja Theory e Compul...
Mythos 5, gli USA riaprono parzialmente ...
Le nuove cuffie TWS di OnePlus costano p...
GTA 6, un'edizione fisica con disco potr...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:03.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v