Outils pour utilisateurs

Outils du site


structure_postgres

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, ' <TABLE>' 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           |  <TABLE>    | INSERT         | NO
 postgres | deb_asso | om_permission           |  <TABLE>    | SELECT         | NO
 postgres | deb_asso | om_permission           |  <TABLE>    | UPDATE         | NO
 postgres | deb_asso | om_permission           |  <TABLE>    | DELETE         | NO
 postgres | deb_asso | om_lettretype           |  <TABLE>    | INSERT         | NO
 postgres | deb_asso | om_lettretype           |  <TABLE>    | SELECT         | NO
 postgres | deb_asso | om_lettretype           |  <TABLE>    | 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

...
structure_postgres.txt · Dernière modification : 2020/05/08 19:00 de fraynaud