2013-08-01 26 views
9

にリンクされているサーバーを追加します。私は、私は別のフォーラムでいくつかのアドバイスを発見し、それに続くリンクサーバーSQL Server 2012の:PostgreSQLの

としてSQL Server 2012のサーバーへのPostgreSQLを接続してみてください。しかし、私は認証の問題に悩まされています。

私が説明します

SQL Server上で、私は、PostgreSQL(psqlodbc_09_02_0100-x64)のためにODBCドライバをインストールしています。 PostgreSQLの特定のデータベースにシステムDSNを作成しました。このDSNは正しく動作します。 SSMSを使用して

、私は、このコマンドは、リンクサーバーを追加するために実行します。

EXEC master.dbo.sp_addlinkedserver 
@server = N'lnk_test', 
@srvproduct=N'PostgreSQL Unicode(x64)', 
@provider=N'MSDASQL', 
@provstr=N'Driver=PostgreSQL Unicode(x64);uid=postgres;Server=test1;database=accueil;pwd=MyPassword;SSLmode=disable;PORT=5432' 

EXEC master.dbo.sp_addlinkedsrvlogin 
@rmtsrvname=N'lnk_test', 
@useself=N'True', 
@locallogin=NULL, 
@rmtuser=NULL, 
@rmtpassword=NULL 

実行した後、私は「lnk_test」と呼ばれる新しいリンクサーバーを持っています。私は次のエラーメッセージが表示された場合:

Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "pgTest1_accueil". 
OLE DB provider "MSDASQL" for linked server "pgTest1_accueil" returned message "[Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed". 
OLE DB provider "MSDASQL" for linked server "pgTest1_accueil" returned message "FATAL: authentification par mot de passe échouée pour l'utilisateur « postgres »". (Microsoft SQL Server, Error: 7303) 

エラーメッセージがフランス語であるが、traductionは以下のとおりです。私は、PostgreSQLサーバのログに同じエラーメッセージを見つける 『postgresの「パスワードによる認証は、ユーザーのために失敗しました』 。

誰かがこの問題を解決するためのアイデアを持っていますか?事前に

感謝。

ジェローム

[更新2013年2月8日] 私は、私が今日実現し、テストの結果でこの記事を完了します。

パケットスニッファを使用するときは、ODBSデータソース管理者(64ビット)とSMSSの下のリンクサーバーを介して接続をテストするときに送信されるパケットをチェックします。

データのための2システムの間で同じである。

  • (全てのパラメータが同じである)接続文字列を送信PostgreSQLの

  • の接続を開く

    • パスワードを尋ねるPostgreSQLの応答(塩の値は違いますが、それは正常ですが)

    • パスワードが同じ方法(MD5で暗号化された)

    しかし、後にsendedではされ、サーバーの応答が異なります

    ODBCデータソースの場合は、すべてが正常に動作します。私は認証を受け取り、テストクエリを送信することができます。 SMSSについて

    、私は(上記述されるように)エラーメッセージを表示します。

  • 答えて

    7

    [OK]を、私は解決策を見つけました。 pg_hba.confファイルで

    、私が信頼するMD5からパスワードを送信するための方法を変更します。サーバーをリロードした後、リンクされたサーバー接続が機能します。

    エントリは以下のようになります。他の人々を助ける希望で

    Type Database User Address Method 
    
    host all  all x.x.x.x/x trust 
    

    関連する問題