======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 ...