2010-01-25 18 views

Respuesta

24

No hay mucha justificación dada, pero véase la sección [5.7.6][1] en el manual, pero creo que las siguientes respuestas a su pregunta:

Si no se crea ningún esquemas a continuación, todos los usuarios acceder al esquema público de manera implícita . Esto simula la situación donde los esquemas no están disponibles en absoluto. Esta configuración se recomienda principalmente cuando solo hay un usuario o unos pocos usuarios que cooperan en una base de datos. Esta configuración también permite una transición suave desde el mundo no consciente de esquemas.

1

Supongo que sería la especificación SQL. Pero, esto es bastante lógico, ¿qué haría create user de lo contrario, requiere que diga explícitamente qué esquema el usuario también tuvo acceso?

Si sus usuarios no tienen acceso a ningún recurso compartido, ¿por qué no crear un nuevo DB para ellos? A diferencia de MySQL, una nueva base de datos es una nueva base de datos, y no un alias para un nuevo esquema.

Solo quería aclarar esto, significa que cada base de datos tiene su propio esquema public..

+0

No creo que sea debido a la especificación de SQL: "no hay ningún concepto de esquema público en el estándar SQL". [Manual de Postgres] (http://www.postgresql.org/docs/8.1/static/ddl-schemas.html) –

+0

@CarlG Pero le permite usar la base de datos sin conocimiento de un esquema, que es cómo funcionan otros motores (porque no tienen esquemas en absoluto). –

+0

@ElliotCameron Oracle tiene esquemas, utiliza esquemas como sinónimo de usuarios; los usuarios obtienen su propio esquema, los esquemas también se pueden compartir. Microsoft SQL Server tiene esquemas (al igual que Sybase), con el valor predeterminado llamado 'dbo' equivalente a' public' en PostgreSQL donde, si no especificas el esquema, el valor predeterminado es 'dbo'. DB2 de IBM también tiene esquemas. MySQL tiene el sinónimo 'schema', intercambiable con' database' por lo que no es realmente un esquema en el sentido de los otros mencionados. – Davos

Cuestiones relacionadas