Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Je travail sur postgresql 9.3 et python 2.7.
J'ai une application/interface en python qui insert des données dans ma base de données via un fichier excel et d'autres informations directement donnés par l'utilisateur, en particulier un code 'srid'.
Je travail sur la création de points (x,y,z) via postgis. Les colonnes où les points sont créé sont de ce type : geometry('POINT',srid). Le srid est un chiffre spécifique à la colonne et référe à un système de coordonnée. Pour faire simple j'ai besoin d'une table par srid.
j'auto génère mes tables de types geometry comme ceci :
Code :
Sélectionner tout - Visualiser dans une fenêtre à part
CREATE OR REPLACE FUNCTION add_colsrid()
RETURNS void AS
$BODY$
DECLARE
srid integer;
requete text;
BEGIN
SELECT srid_py INTO srid FROM srid WHERE NOT EXISTS ( SELECT * FROM project WHERE project.proj_srid = srid.srid_py) ;
RAISE notice 'verif (%)', srid ;
IF srid IS NOT NULL THEN
requete := 'ALTER TABLE point ADD COLUMN' || srid || ' geometry;';
EXECUTE requete;
END IF;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
Pour résultat j'ai une nouvelle colonne dans ma table point qui porte le nom columnXXX où XXX est le code srid (srid ='1420' alors le nom de la colonne est colunm1420).
Le soucie est que la colonne est au format geometry et non geometry('POINT',srid). Je ne peut pas préciser le srid directement dans ce code car il est de type varchar pour pouvoir créer le nom de la colonne et que dans geometry('POINT',srid) il est de type int.
Je doit donc modifier le type de la colonne en précisant le srid à utiliser. j'ai eu l'idée de passer par mon interface python pour cela. J'ai essayé :
Code :
"ALTER TABLE point ALTER COLUMN column||%s|| TYPE geometry('POINT',SELECT srid_conv FROM srid WHERE srid_projnum = %s)USING column||%s||::geometry")%(srid,projNum,srid)
Explication :
srid est de type varchar et est directement fourni par le code python. column||%s|| est sencé donnée colunm120 par exemple si le srid ='120'.
SELECT srid_int FROM srid WHERE srid_projnum = %s est sencée retournée le srid en chiffre, qui est stockée dans la base de donnée dans le champ srid_int de la table srid.
Le problème est que cette syntaxe ne fonctionne pas et que je n'ai qucune idée de ce qui pourrait fonctionner. Je débute dans les deux languages, j'ai donc des soucies de syntaxe et aussi d'optimisation du code. Je prend toute remarque pour optimiser mon code car il est relativement complexe pour le moment et je pense qu'il y a des choses plus stables et plus simple qui existe.
Merci d'avance
En effet si je run entant que administrateur, je peux importer mes fichiers. Mais je ne peux pas utiliser mon interface python.
MErci pour les conseils
La réponse est peu-être un peu trop rapide pour moi.
Lorsque vous parlez de session ? C'est une session windows ?
Lorsque vous parlew de explorateur c'est une fenetre de recherche de fichier ?
Comment faire pour être utilisateur postgres et non moi même lors de l'ouverture de ceux-ci ?
Cordialement,
Lorsque je vais dans les propriétés du dossier GL,j'ai ceci pour postgres :
GL Properties permissions for postgres :
Full control : Allow icone check noir
Modify: Allow icone check noir
Read and execute : Allow icone check grise
List folder contents Allow icone check grise
Read : Allow icone check grise
Whrite : Allow icone check noire
Special permissions : --
Si je vais dans les paramètres avancés j'ai pour postgres 2 choses :
Ligne 1 :
Type : Allow
Name : Postgres (HHBD40428\postgres)
Permission : Full control
Inherited From : <not inherited>
Apply to : This folder, subfolders and files
Ligne 2 :
Type : Allow
Name : Postgres (HHBD40428\postgres)
Permission : REad and execute
Inherited From : C:\Users\AUGU\Documents\
Apply to : This folder, subfolders and files
Bonjour ruizsebastien,
Si je vais dans les propriétés onglet securité de mon fichier STG_Ahrensboek.csv,j'ai ceci :
Object nane : C:\Users\AUGU\Documents\GL\DATA\STG_Ahrensboek.csv
USERS:
SYSTEM :
postgres(HHBD404281\postgres) : Le code est le nom du PC
Guegan,Aurélie : Moi même
Administrators(HHBD404281\Administrators)
Permissions for postgres :
Full control : Allow
Modify Allow
Read and execute : allow
Read : Allow
Write : Allow
Special permissions : --
Je ne vois vraimement pas ou est mon problème de permission.
Ma question n'était peu-être pas très claire, désolé. En effet le message dit clairement que je peut pas me connecter entant que utilisateur postgresql, je l'ai bien compris. Je reformule :
Ma permière question est pourquoi cela alors que dans les propriétés de mes fichiers à importer postgres à tous les droits?
Ma seconde question est comment faire pour pouvoir lire mes fichiers et importer mes données ?
Je suis en allemagne postgres est donc en allemand. Le message d'erreur est le suivant, et dit simplement qu'il ne peut pas lire le fichier car la permission est refusé:
FEHLER: konnte Datei „C:/Users/AUGU/Documents/GL/DATA/STG_Ahrensboek.csv“ nicht zum Lesen öffnen: Permission denied
SQL Status:42501
Merci d'avance pour tous les conseils et remarques
Cordialement,
Aurélie
Bonjour,
Je travaille sur la création d'une base de donnée PostGIS.
Lorsque je veux remplir une table avec COPY FROM, j'ai une erreur SQL Status 4201 qui me dit que je n'ai pas les permissions nécessaires et/ou suffisantes. Pourtant, le propriétaire de ma table est postgresql donc superuser et j'ai bien modifié dans les propriétés de mon fichier (et même de tout les dossiers du chemin d'accès) les droits d'accès pour l'utilisateur postgresql.
J'ai voulu ruser et remplir mes tables via un script en python en ouvrant mon excel et remplissant ma table ensuite avec un INSERT INTO, mais là aussi j'ai rencontré d'autres problèmes et cette solution n'est vraiment pas optimal.
Sur mon PC personnel, j'ai fait les mêmes manipulations et je ne n'ai pas d'erreur, alors que sur le PC du travail, j'ai cette erreur. Une idée sur comment régler ce problème ?
Pages : 1