======structure de la base de données openstock======
=====les roles=====
openstock=> \du
Liste des rôles
Nom du rôle | Attributs | Membre
-------------+---------------------------------------------------------------------------------+-------
deb | Superutilisateur, Créer un rôle, Créer une base | {}
deb_asso | | {}
postgres | Superutilisateur, Créer un rôle, Créer une base, Réplication, Contournement RLS | {}
===Les droits===
openstock=> \dp openstock_association.*
Droits d'accès
Schéma | Nom | Type | Droits d'accès | Droits d'accès à la colonne | Politiques
-----------------------+---------------------------+----------+---------------------------+------------ openstock_association | archive_entre | table | postgres=arwdDxt/postgres+|
| | | deb_asso=arwd/postgres |
openstock_association | archive_entre_seq | séquence | postgres=rwU/postgres +|
| | | deb_asso=rw/postgres |
===les privilèges===
openstock=> SELECT GRANTOR, GRANTEE, TABLE_NAME, ' ' AS COLUMN_NAME, PRIVILEGE_TYPE, IS_GRANTABLE FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES
WHERE GRANTEE IN ('deb_asso');
grantor | grantee | table_name | column_name | privilege_type | is_grantable
----------+----------+-------------------------+-------------+----------------+--------------
postgres | deb_asso | om_permission | | INSERT | NO
postgres | deb_asso | om_permission | | SELECT | NO
postgres | deb_asso | om_permission | | UPDATE | NO
postgres | deb_asso | om_permission | | DELETE | NO
postgres | deb_asso | om_lettretype | | INSERT | NO
postgres | deb_asso | om_lettretype | | SELECT | NO
postgres | deb_asso | om_lettretype | | UPDATE | NO
...
=====la base de données=====
Toute création de base se fait à partir d’un modèle. Par défaut, PostgreSQL utilise le modèle template1.
\l
Liste des bases de données
Nom | Propriétaire | Encodage | Collationnement | Type caract. | Droits d'accès
-----------+--------------+----------+-----------------+--------------+-----------------------
openstock | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 |
postgres | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 |
template0 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
Il est possible de personnaliser les templates et de créer un template avec l'extension postgis et une table jpa par exemple.
template1=# create table jpa (id integer);
CREATE TABLE
template1=# create extension postgis
template1-# ;
CREATE EXTENSION
template1=# create database exemple;
CREATE DATABASE
template1=# \c exemple
Vous êtes maintenant connecté à la base de données « exemple » en tant qu'utilisateur « deb ».
exemple=# \d
Liste des relations
Schéma|Nom|Type|Propriétaire
public|geography_columns|vue|deb
public|geometry_columns|vue|deb
public|jpa|table|deb
public|raster_columns|vue|deb
public|raster_overviews|vue|deb
public|spatial_ref_sys|table|deb
=====les schémas=====
Les schémas sont comparables aux répertoires du système d'exploitation.
Ils permettent:
* l'indépendance des utilisateurs sur une même base de données (pas d'interférence)
* organiser la base de données en groupe logique
* d'éviter les mêmes noms d'objet (exemple: plusieurs instances d'openAssociation)
openstock contient les schémas suivants
\dn
Nom | Propriétaire
-----------------------+--------------
openstock_association | postgres
public | postgres
et deux schémas non visibles qui contient les objets de la base de données
* information_schema au standart sql
\dt information_schema.*
Liste des relations
Schéma | Nom | Type | Propriétaire
--------------------+-------------------------+-------+--------------
information_schema | sql_features | table | postgres
information_schema | sql_implementation_info | table | postgres
information_schema | sql_languages | table | postgres
information_schema | sql_packages | table | postgres
information_schema | sql_parts | table | postgres
information_schema | sql_sizing | table | postgres
information_schema | sql_sizing_profiles | table | postgres
\dv information_schema.*
information_schema | _pg_foreign_table_columns | vue | postgres
information_schema | _pg_foreign_tables | vue | postgres
information_schema | column_domain_usage | vue | postgres
information_schema | column_options | vue | postgres
information_schema | column_privileges | vue | postgres
information_schema | column_udt_usage | vue | postgres
information_schema | columns | vue | postgres
information_schema | constraint_column_usage | vue | postgres
information_schema | constraint_table_usage | vue | postgres
information_schema | data_type_privileges | vue | postgres
information_schema | schemata | vue | postgres
information_schema | sequences | vue | postgres
information_schema | table_constraints | vue | postgres
information_schema | table_privileges | vue | postgres
information_schema | tables | vue | postgres
information_schema | triggers | vue | postgres
information_schema | views | vue | postgres
...
* pg_catalog spécifique à postgres
\dt pg_catalog
Liste des relations
Schéma | Nom | Type | Propriétaire
------------+-------------------------+-------+--------------
pg_catalog | pg_aggregate | table | postgres
pg_catalog | pg_am | table | postgres
...