Difference between revisions of "Database Schema"

From wikieduonline
Jump to navigation Jump to search
 
(13 intermediate revisions by 4 users not shown)
Line 5: Line 5:
 
* Third-party applications can be put into separate schemas so they do not collide with the names of other objects.
 
* Third-party applications can be put into separate schemas so they do not collide with the names of other objects.
  
== Example ==
+
public or default
* [[CREATE SCHEMA]]
+
 
 +
== Examples ==
 +
* <code>[[CREATE SCHEMA]]</code>
  
 
Grant examples on schemas:  
 
Grant examples on schemas:  
Line 21: Line 23:
  
  
  [[GRANT SELECT]] ON ALL [[TABLES]] IN [[SCHEMA]] [[public]] TO xxx;
+
  [[GRANT SELECT ON ALL TABLES]] IN [[SCHEMA]] [[public]] TO xxx;
 +
 
 +
[[ALTER DEFAULT PRIVILEGES]] IN SCHEMA public GRANT SELECT ON TABLES TO xxx;
 +
 
 +
[[GRANT ALL PRIVILEGES ON SCHEMA]]
 +
 
 +
 
 +
== Errors ==
 +
* [[ERROR: permission denied for schema public]]
  
 
== Related ==
 
== Related ==
Line 30: Line 40:
 
* [[PostgreSQL: catalogs]]
 
* [[PostgreSQL: catalogs]]
 
* <code>[[GRANT SELECT]]</code>
 
* <code>[[GRANT SELECT]]</code>
* [[Index]], [[Table]], [[Schema]], [[Sequence]], [[Views]]
+
* [[Index]], [[Table]], [[Schema]], [[Sequence]], [[Views]], [[PostgreSQL Materialized Views|Materialized Views]]
* <code>SET [[search_path]]</code>, <code>[[SHOW search_path]]</code>
+
* <code>[[SET]] [[search_path]]</code>, <code>[[SHOW search_path]]</code>
 +
* <code>[[GRANT ON ALL TABLES]]</code>
 +
* <code>[[schema_name]]</code>
 +
 
 +
== News ==
 +
* Oct 2022 [[PostgreSQL 15]], revokes the [[CREATE]] permission from all users except a database owner from the [[public]] (or default) schema
  
 
== See also ==
 
== See also ==
 
* {{Schema}}
 
* {{Schema}}
* {{PostgreSQL}}
 
  
 
[[Category:PostgreSQL]]
 
[[Category:PostgreSQL]]

Latest revision as of 08:54, 7 August 2024

wikipedia:Database schema are analogous to directories at the operating system level, except that schemas cannot be nested. [1] Typical schemas usage scenarios [2]:

  • To allow many users to use one database without interfering with each other.
  • To organize database objects into logical groups to make them more manageable.
  • Third-party applications can be put into separate schemas so they do not collide with the names of other objects.
public or default

Examples[edit]

Grant examples on schemas:

PostgreSQL: pg_catalog and public.


GRANT SELECT ON ALL TABLES IN SCHEMA public TO xxx;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO xxx;
GRANT ALL PRIVILEGES ON SCHEMA


Errors[edit]

Related[edit]

News[edit]

  • Oct 2022 PostgreSQL 15, revokes the CREATE permission from all users except a database owner from the public (or default) schema

See also[edit]

  • https://www.postgresql.org/docs/current/ddl-schemas.html
  • https://www.postgresql.org/docs/current/ddl-schemas.html
  • https://stackoverflow.com/a/10353730
  • https://dba.stackexchange.com/questions/40045/how-do-i-list-all-schemas-in-postgresql
  • Advertising: