tablas soporta segundo por optimizar lentas grandes espaciales ejemplos eficientes descargar cuantas consultas complejas postgresql

postgresql - soporta - optimizar tablas grandes mysql



¿Cómo evitar que un usuario pueda ver otras bases de datos y las tablas de otras bases de datos? (3)

Cada usuario puede ver otras bases de datos y roles enumerados, pero nunca debería poder ver tablas en otras bases de datos.

Si revoca el privilegio CONNECT en todas las bases de datos, excepto la asignada, el usuario no podrá acceder al contenido de otras bases de datos.

Los roles y los nombres de las bases de datos son globales y no se pueden bloquear fácilmente. Puede probar la sugerencia de Frank Heikens de revocaciones selectivas en las tablas del sistema, pero se arriesga a hacerlo. Los desarrolladores de PostgreSQL en las listas de correo de usenet han desalentado la manipulación del acceso a los catálogos del sistema.

Psql, entre otras herramientas, asume que estarán disponibles y que funciona mal sin ellas.

¿Por qué es tan malo conocer los nombres de otras bases de datos y roles?

Quiero crear un usuario de Postgres que pueda acceder solo a una base de datos en el servidor de Postgres.

Actualmente mi flujo es:

create database database1; create user user1 with password ''pass''; grant all privileges on database database1 to user1;

pero user1 todavía puede ver una lista de dbs, usuarios, tablas, etc. ¿Hay alguna manera de evitar que ese usuario vea esa información? El usuario debe poder escribir y leer desde esa base de datos.

Muchas gracias.


De forma predeterminada, todos los objetos que cree se crearán en el esquema público. Además, cualquier usuario que cree tiene privilegios CREATE y USAGE en el esquema público. Debe revocar CREATE y USAGE al esquema público para este usuario, o debe cambiar el nivel de acceso predeterminado. También deberá mover la base de datos a la que este usuario tiene acceso al esquema del usuario, o un esquema accesible para el usuario. Ver Esquemas DDL en el manual de Postgres.