@@ -530,7 +530,8 @@ bool QgsDbSourceSelect::getTableInfo(PGconn *pg, bool searchGeometryColumnsOnly,
530
530
QString sql = " select * from geometry_columns,pg_class,pg_namespace "
531
531
" where relname=f_table_name and f_table_schema=nspname "
532
532
" and pg_namespace.oid = pg_class.relnamespace "
533
- " and has_table_privilege('\" '||pg_namespace.nspname||'\" .\" '||pg_class.relname||'\" ','select')" // user has select privilege
533
+ " and has_schema_privilege(pg_namespace.nspname,'usage') "
534
+ " and has_table_privilege('\" '||pg_namespace.nspname||'\" .\" '||pg_class.relname||'\" ','select') " // user has select privilege
534
535
" order by f_table_schema,f_table_name" ;
535
536
536
537
PGresult *result = PQexec (pg, sql.toUtf8 ());
@@ -587,11 +588,12 @@ bool QgsDbSourceSelect::getTableInfo(PGconn *pg, bool searchGeometryColumnsOnly,
587
588
// geometry_columns table. This code is specific to postgresql,
588
589
// but an equivalent query should be possible in other
589
590
// databases.
590
- sql = " select pg_class.relname, pg_namespace.nspname, pg_attribute.attname, pg_class.relkind "
591
+ sql = " select pg_class.relname,pg_namespace.nspname,pg_attribute.attname,pg_class.relkind "
591
592
" from pg_attribute, pg_class, pg_namespace "
592
593
" where pg_namespace.oid = pg_class.relnamespace "
593
594
" and pg_attribute.atttypid = regtype('geometry') "
594
595
" and pg_attribute.attrelid = pg_class.oid "
596
+ " and has_schema_privilege(pg_namespace.nspname,'usage') "
595
597
" and has_table_privilege('\" '||pg_namespace.nspname||'\" .\" '||pg_class.relname||'\" ','select') " ;
596
598
// user has select privilege
597
599
if (searchPublicOnly)
0 commit comments