Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 27/01/2017 21:40:07
- abuche
- Membre
[php7] - pg_connect()
bonjour,
Je ne comprend pas avec pg_connect() comment des droits sont refusés :
$conn = pg_pconnect("host=localhost port=5432 dbname=yadlajoie user=martin password=martin");
$result = pg_query ($conn, "SELECT * FROM quizz_11");
if (!$result) {
echo "Erreur durant la requête.\n";
exit;
-------------------------------------------------------
Warning: pg_query(): Query failed: ERREUR: droit refusé pour la relation quizz_11 in /media/.......
Erreur durant la requête.
@+
Hors ligne
#2 27/01/2017 22:01:31
- rjuju
- Administrateur
Re : [php7] - pg_connect()
Qu'est-ce que vous ne comprenez pas ? Vous donné le droit de SELECT sur la table quizz_11 à l'utilisateur martin et le problème persiste ?
Julien.
https://rjuju.github.io/
Hors ligne
#3 28/01/2017 00:12:09
- abuche
- Membre
Re : [php7] - pg_connect()
oui, avec pdo martin se connecte
mais avec pg_pconnect et pg_query , martin n'a pas les droits
---------------------------------------------------------------------------
pg_query n'est pas compatible php7.0
comment en avoir la certitude ?
http://php.net/manual/fr/function.pg-query.php
Hors ligne
#4 28/01/2017 01:08:32
- abuche
- Membre
Re : [php7] - pg_connect()
Postgres est ce une bdd qui est faites que pour des traitements SQL ?
J'ai l'impression que avec PHP cela n'est pas adapté
@+
Dernière modification par abuche (28/01/2017 01:08:57)
Hors ligne
#5 28/01/2017 09:03:49
- gleu
- Administrateur
Re : [php7] - pg_connect()
Quel est le propriétaire de la table quizz_11 ? quels sont les droits de l'utilisateur martin associés à cette table ? utilisez psql pour ça avec les commandes \d et \z
Guillaume.
Hors ligne
#6 28/01/2017 11:47:55
- abuche
- Membre
Re : [php7] - pg_connect()
yadlajoie=# \du
martin | Create DB | {}
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
-----------------------------------------------------------------------------------------------
La bdd yadlajoie a été créé par postgres
Ensuite : createuser -d -P martin
-------------------------------------------------------------------
yadlajoie=# \z
Access privileges
Schema | Name | Type | Access privileges | Column privileges | Policies
--------+----------+-------+-------------------+-------------------+----------
public | quizz_11 | table | | |
public | quizz_12 | table | | |
public | quizz_13 | table | | |
(3 rows)
Dernière modification par abuche (28/01/2017 11:51:08)
Hors ligne
#7 28/01/2017 21:46:23
- abuche
- Membre
Re : [php7] - pg_connect()
J'ai réussi avec l'utilisateur 'postgres' qui a tous les droits
Mais pour sortir les colonnes de postgres avec PHP c'est plus long
J'étais parti avec un format booléen, et là il n'y avait que les 1 qui étaient visibles
Avec un format character c'est beaucoup mieux
---------------------------------------------------------------------------
[Resolu]
Pour martin j'aimerai savoir ce qu'il faudrait pour que la connection soit possible
@+
Dernière modification par abuche (28/01/2017 21:47:04)
Hors ligne
#8 28/01/2017 23:50:14
- rjuju
- Administrateur
Re : [php7] - pg_connect()
Vous confondez droit de se connecter et droit de lire le contenu d'une table. Si vous créez un nouvel utilisateur, il ne pourra pas lire le contenu d'une table tant que vous ne l'aurez pas autorisé. Regardez du côté de GRANT (http://docs.postgresql.fr/9.6/sql-grant.html).
Cela marche avec l'utilisateur postgres car il est super-utilisateur, et donc à le droit de lire, écrire, supprimer... n'importe quel objet.
Julien.
https://rjuju.github.io/
Hors ligne
#9 29/01/2017 16:40:00
- abuche
- Membre
Re : [php7] - pg_connect()
J'ai créé un base yadla pour martin
Martin a des droits sur les tables ( insert, select ... )
-------------------------------------------------
Il y a connection de martin, mais les data ne sont tjrs pas visibles
@+
Comment aller plus loin ?
Voir les droits dans la console ..
Dernière modification par abuche (29/01/2017 20:06:44)
Hors ligne
#10 29/01/2017 20:58:27
- rjuju
- Administrateur
Re : [php7] - pg_connect()
yadlajoie=# \z
Access privileges
Schema | Name | Type | Access privileges | Column privileges | Policies
--------+----------+-------+-------------------+-------------------+----------
public | quizz_11 | table | | |
public | quizz_12 | table | | |
public | quizz_13 | table | | |
(3 rows)
Non, aucun droit n'a été positionné, ou alors vous l'avez fait depuis. Que renvoie \z sur la base en question ?
Vous pouvez vérifiez que martin à le droit de lecture sur la table quizz_11 avec la requête suivante :
select has_table_privilege('martin','quizz_11', 'select');
Julien.
https://rjuju.github.io/
Hors ligne
#11 29/01/2017 21:26:46
- abuche
- Membre
Re : [php7] - pg_connect()
yadla=# select has_table_privilege('martin','quizz_11', 'select');
has_table_privilege
---------------------
t
(1 row)
yadla=#
---------------------------------------------------------------
ok, j'ai compris le principe
postgres crée la base avec le nom du proprio
Ensuite il faut se connecter dans la base pour voir ou vérifier les droits
--------------------------------------------------------------
postgres=# depuis une autre base il n'y a pas un oeil de superviseur pour voir les autres bases
Hors ligne
#12 30/01/2017 22:31:44
- gleu
- Administrateur
Re : [php7] - pg_connect()
Non, en effet. Avec PostgreSQL, une base de données est un conteneur hermétique. Vous ne voyez que les objets qui sont dans cette base, pas les objets des autres bases.
Guillaume.
Hors ligne
#13 31/01/2017 00:43:49
- abuche
- Membre
Re : [php7] - pg_connect()
Un dernier point
Qu'est ce qui rend persistant le système Postgres au démarrage du pc ?
Quand je teste des script PHP , un restart est nécessaire :
sudo /etc/init.d/postgresql restart
Hors ligne
#14 31/01/2017 10:07:08
- rjuju
- Administrateur
Re : [php7] - pg_connect()
Normalement, un redémarrage n'est nécessaire que si vous modifiez certains paramètre (port, adresse ip, certains paramètres mémoire ...).
Ou est-ce parce qu'il n'est pas automatiquement lancé au démarrage de votre pc ? Si c'est ça quelle distribution utilisez-vous ?
Julien.
https://rjuju.github.io/
Hors ligne
#15 31/01/2017 11:51:34
- ruizsebastien
- Membre
Re : [php7] - pg_connect()
Bonjour,
selon votre OS, vous devez regarder du côté de chkconfig ou systemctl.
Cordialement,
Sébastien.
Hors ligne
#16 31/01/2017 13:00:11
- abuche
- Membre
Re : [php7] - pg_connect()
Ubuntu récent 16.04
Hors ligne
#17 01/02/2017 19:05:45
- abuche
- Membre
Re : [php7] - pg_connect()
systemctl list-unit-files | grep service | sort accounts-daemon.service
----------------------------------------------------------
postgresql@.service disabled
postgresql.service enabled
---------------------------------------------------------
Mais j'ai une connection refusée :
Connection refusée ...
---------------
Fatal error: Uncaught PDOException: SQLSTATE[08006] [7] could not connect to server:
Connection refused Is the server running on host "localhost" (::1)
and accepting TCP/IP connections on port 5432? could not connect to server:
----------------
sudo /etc/init.d/postgresql restart
[ ok ] Restarting postgresql (via systemctl): postgresql.service.
Connection ok ...
---------------
Bizare cette activation manuelle de Postgres
systemd-analyze blame
5.794s postgresql@9.5-main.service
5.652s postgresql@9.6-main.service
5.568s postgresql@9.4-main.service
Comment savoir celui que je relance avec ? : sudo /etc/init.d/postgresql restart
-------------------------------------------------------------------------------------------------
journalctl
févr. 01 18:03:43 airubuntu-MS-7721 sudo[3686]: air-ubuntu : TTY=pts/1 ; PWD=/home/air-ubuntu ; USER=root ; COMMAND=/etc/init.d/postgresql restart
févr. 01 18:03:43 airubuntu-MS-7721 sudo[3686]: pam_unix(sudo:session): session opened for user root by (uid=0)
févr. 01 18:03:43 airubuntu-MS-7721 systemd[1]: Stopped PostgreSQL RDBMS.
févr. 01 18:03:43 airubuntu-MS-7721 systemd[1]: Stopping PostgreSQL RDBMS...
févr. 01 18:03:43 airubuntu-MS-7721 systemd[1]: Starting PostgreSQL Cluster 9.4-main...
févr. 01 18:03:43 airubuntu-MS-7721 systemd[1]: Starting PostgreSQL Cluster 9.5-main...
févr. 01 18:03:43 airubuntu-MS-7721 systemd[1]: Starting PostgreSQL Cluster 9.6-main...
févr. 01 18:03:48 airubuntu-MS-7721 systemd[1]: Started PostgreSQL Cluster 9.4-main.
févr. 01 18:03:48 airubuntu-MS-7721 systemd[1]: Started PostgreSQL Cluster 9.6-main.
févr. 01 18:03:49 airubuntu-MS-7721 systemd[1]: Started PostgreSQL Cluster 9.5-main.
févr. 01 18:03:49 airubuntu-MS-7721 systemd[1]: Starting PostgreSQL RDBMS...
févr. 01 18:03:49 airubuntu-MS-7721 systemd[1]: Started PostgreSQL RDBMS.
@+
Dernière modification par abuche (01/02/2017 19:25:50)
Hors ligne
Pages : 1