Suite

Impossible de se connecter à une table SQL Server étrangère à partir de PosgreSQL à l'aide de OGR_FDW

Impossible de se connecter à une table SQL Server étrangère à partir de PosgreSQL à l'aide de OGR_FDW


J'utilise Windows 7, avec PostgreSQL 9.3.6 installé et PostGIS 2.1.5. Bien que j'aimerais pouvoir tout obtenir dans PostgreSQL, je ne peux pas et je dois me connecter à un autre serveur exécutant SQL Server. J'ai besoin d'utiliser un wrapper de données étrangères pour cela, et j'ai installé ogr_fdw comme décrit ici. J'essaie de connecter une table non spatiale du serveur SQL étranger à mon PostgreSQL, puis je joindrai cette table étrangère à une table spatiale PostgreSQL.

D'après les instructions, je ne sais pas comment configurer correctement les paramètres pour établir la connexion (en supposant qu'il soit même possible de le faire fonctionner), et je ne comprends pas comment utiliser l'utilitaire ogr_fdw_info. Par exemple, j'ai essayé :

ogr_fdw_info -s dbname="databasename" host="servername" user="SQL-serverusername"

mais cela ne me mène nulle part. Est-ce que n'importe qui sait se relier à une table étrangère de serveur de SQL utilisant cette bibliothèque d'ogr_fdw ?


Avec la suggestion de Paul, j'ai essayé d'utiliser ogrinfo comme ceci :

ogrinfo "MSSQL:server=ServerName;database=DatabaseName;UID=SQLServerUserName;PWD=SQLServerUserNamePassword"

Quand j'ai essayé ça, au moins j'ai eu

Erreur lors de l'initialisation des tables de métadonnées : [Microsoft][Pilote de serveur ODBC][SQL Server]Autorisation CREATE TABLE refusée dans la base de données "DatabaseName".

Pour moi, cela signifie au moins que je suis en quelque sorte connecté, mais pas complètement. L'administrateur de SQL Server m'a donné un nom d'utilisateur avec uniquement des droits de lecture, et cela semble logique puisque je ne veux lire qu'une seule table non spatiale et la mettre en tant que table étrangère dans ma base de données PostgreSQL sur ma propre machine. Je devrai m'assurer que je peux me connecter en utilisant ogrinfo avant de pouvoir commencer à comprendre comment utiliser ogr_fdw. J'ai essayé d'ajouter "estimatedmetadata=true" à la fin de ma déclaration ogrinfo, mais cela n'a fait aucune différence. Je ne comprends pas exactement pourquoi l'erreur serait de créer une table, car je veux seulement me connecter, pas créer. Avez-vous des conseils supplémentaires pour que cette connexion fonctionne ?


Avec la suggestion de Paul, j'ai ajouté la variable d'environnement à ma machine Windows :

MSSQLSPATIAL_USE_GEOMETRY_COLUMNS=Non

et maintenant l'erreur a disparu. Ensuite, j'ai également découvert que je devais ajouter une deuxième variable d'environnement :

MSSQLSPATIAL_LIST_ALL_TABLES=OUI

Cela m'a permis de me connecter correctement au serveur SQL en utilisant OGRINFO et de voir les tables non spatiales. Maintenant cependant, quand j'essaie:

ogr_fdw_info -s "MSSQL:server=ServerName;database=DatabaseName;UID=SQLServerUserName;PWD=SQLServerUserNamePassword"

Il dit qu'il ne peut pas se connecter à cette source de données. Je suis perplexe car la chaîne de connexion fonctionne bien avec OGRINFO, mais pas OGR_FDW_INFO.


L'essentiel est d'obtenir une chaîne de connexion correcte, donc vous faites la bonne chose en jouant avec ogr_fdw_info jusqu'à ce que la connexion fonctionne.

"MSSQL:server=localhostSQL2012Express;database=ProSpatial;trusted_connection=yes;"

Voici une chaîne de connexion OGR que j'ai trouvée en ligne, et il y en a une autre ici sur GIS.SE, Shapefile vers MSSQL avec ogr2ogr ne parvient pas à établir la connexion

Vous pouvez également tester indépendamment en utilisant ogrinfo pour déterminer ce qu'est une bonne chaîne de connexion. Une fois que vous l'avez fait, vous devriez être en mesure de suivre le reste du processus dans FDW.


Jan,

Je ne sais pas quand vous avez téléchargé ce binaire. Dans le premier emballage, j'ai fait une erreur avec la version 9.3 et j'ai omis le pilote ODBC qui est nécessaire pour la connexion MSSQL. Quelqu'un m'a alerté lorsqu'il a essayé de se connecter à MS Access et j'ai depuis résolu le problème.

De plus, si vous avez mis à niveau PostGIS depuis, il peut avoir écrasé le pilote libgdal et celui qui est fourni avec PostGIS n'inclut pas (encore de toute façon) le support ODBC. Dans 2.2, je prévois d'intégrer le support ODBC dans.

Merci Régina


Voir la vidéo: Résolu: Impossible de se connecter au wifi windows 10