2011-09-26 2 views
0

우리는 LAN 기반 데이터베이스에서 두 테이블을 읽고 쓰는 인터페이스를 제공하기 위해 Postgresql 8.1과 함께 LAN 기반 .Net 응용 프로그램을 제공합니다. 시작이 문제를 해결할 수 있도록 도와주세요.내 웹 사이트에서 내 LAN 기반 postgresql db에 액세스하는 방법

란 : 윈도우 NT 2003 닷넷 PostgreSQL을 8.1

웹 사이트 : PHP 5.3 MySQL의

+0

@MarcB 예를 들어 문제의 링크를 좀 더 구체적으로 작성하는 방법은 무엇입니까? –

+0

가능한 한 빨리 지원되는 PostgreSQL 버전으로 업그레이드하는 것도 고려해야합니다. 8.1은 확실히 죽었습니다. 8.2는 여전히 유지 관리되고 있지만 올해 말에 삭제 될 가장 오래된 버전입니다. 또한 그 이후로도 중요한 성능 향상이있었습니다. 나는 9.1을 위해 곧장 갈 것을 강력히 권고했다. –

+0

만약 당신이 이미 프로덕션에 참여했다면 6 개월 정도 밖에 쉬지 않을 때까지 9.1을 연기 할 것이다. 9.0은 1 년이 넘었으며 안정적인 견고한 상태입니다. 9.1과 함께 목록에 가끔은 가끔씩의 순간이 있습니다. –

답변

1

당신은 포스트 그레스에 원격 연결을 활성화해야합니다. 그러나 보안 관련 사항에주의하십시오.

모두 읽지는 않았지만 this은 서버를 사용하는 단계에 대한 아이디어를 제공합니다. 커넥터의 경우 일반적으로 원격 IP에서 연결 기능을 가리 키기 만하면됩니다.

1

트릭을 수행하는 방법은 다음과 같습니다. 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); 
?> 

을 위의 코드에서, 당신의 포스트 그레스 호스트의 IP 주소에 의해 로컬 호스트를 교체합니다.

0

Linux의 경우 localhost : postgresql.conf 이외의 연결을 허용하기 위해 두 파일을 수정해야하며 listen_addresses = "*"를 변경하여 어디서나 연결을 허용합니다. 그런 다음 특정 IP 또는 네트워크에서 데이터베이스에 액세스 할 수 있도록 pg_hba.conf 파일에 행을 추가하십시오. 보안, 진입에 대해 걱정하지 않은 경우 :

호스트는 모든 모든 192.168.1.0/24 신뢰

는 데이터베이스에 192.168.1.0/24 네트워크 액세스에 사람을 수 있습니다. 분명히 이것은 데이터베이스에 도달 할 수 있는지 테스트하는 데에만 사용해야합니다. 이것을 웹 서버 IP 주소로 제한하고 md5를 사용하여 암호화 된 비밀번호 인증이 사용됩니다.

관련 문제