2011-09-26 2 views
0

Nous avons l'application .Net basée sur le LAN avec Postgresql 8.1, maintenant j'ai la tâche de fournir l'interface sur le site Web pour lire et écrire deux tables sur la base de données LAN Je ne sais pas où pour commencer S'il vous plaît aidez-moi à résoudre ce problème.comment accéder à mon db postgresql db basé sur mon site Web

Lan: Windows NT 2003 .Net Postgresql 8.1

Site Web: PHP 5.3 Mysql

+0

@MarcB que diriez-vous de rendre le lien un peu plus spécifique à la question en cours oui? –

+0

Vous devriez également considérer la mise à niveau vers une version PostgreSQL supportée dès que possible. 8.1 est définitivement mort. 8.2 est la version la plus ancienne en cours de maintenance mais sera supprimée à la fin de cette année. De plus, il y a eu d'importantes améliorations de performance depuis lors. Je recommande fortement d'aller directement à 9.1 –

+0

Si vous êtes déjà en production, je maintiendrais le 9.1 jusqu'à ce qu'il soit sorti depuis environ 6 mois. 9.0 a été sur un an et est stable solide comme le roc. Il y a toujours le moment wtf occasionnel sur les listes avec 9.1 –

Répondre

1

Vous devez activer les connexions à distance sur Postgres. Mais méfiez-vous des implications de sécurité.

N'avez pas tout lu, mais this devrait vous donner une idée sur les mesures à prendre sur le serveur. Pour le connecteur, il suffit généralement de pointer la fonction de connexion sur l'adresse IP distante.

1

Voici comment faire l'affaire. Copié de here:

<?php 
// Connecting, selecting database 
$dbconn = pg_connect("host=localhost dbname=publishing user=www password=foo") 
    or die('Could not connect: ' . pg_last_error()); 

// Performing SQL query 
$query = 'SELECT * FROM authors'; 
$result = pg_query($query) or die('Query failed: ' . pg_last_error()); 

// Printing results in HTML 
echo "<table>\n"; 
while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) { 
    echo "\t<tr>\n"; 
    foreach ($line as $col_value) { 
     echo "\t\t<td>$col_value</td>\n"; 
    } 
    echo "\t</tr>\n"; 
} 
echo "</table>\n"; 

// Free resultset 
pg_free_result($result); 

// Closing connection 
pg_close($dbconn); 
?> 

dans le code ci-dessus, remplacez localhost par l'adresse IP de votre hôte Postgres.

0

Sur Linux, deux fichiers doivent être modifiés pour autoriser les connexions autres que localhost: postgresql.conf, changez les listen_addresses = "*" pour accepter les connexions de n'importe où. Ajoutez ensuite une ligne au fichier pg_hba.conf pour autoriser l'accès à la base de données à partir d'une adresse IP ou d'un réseau particulier. Si vous n'êtes pas préoccupé par la sécurité, entrée:

hôte tous les 192.168.1.0/24 confiance

permettra à quiconque sur l'accès au réseau 192.168.1.0/24 à une base de données. Évidemment, cela ne devrait être utilisé pour tester que vous pouvez atteindre la base de données. Limitez-la à l'adresse IP des serveurs Web et utilisez md5 pour que l'authentification par mot de passe chiffrée soit utilisée.

Questions connexes