Rôles et utilisateurs

Les bases de données PostgreSQL définissent déjà la notion de rôle. Ils permettent, entre autres, de se connecter et d'exploiter une base de données en fonction de droits qui leur ont été précédemment attribués.

L'exploitation des fonctionnalités de masquage, historisation, suppression et des droits sur les données de l'extension pgSQLPlus nécessite la création d'utilisateurs.

Ces utilisateurs ne sont pas comparables aux rôles PostgreSQL. Ils doivent être considérés comme étant à un niveau applicatif supérieur aux rôles PostgreSQL mais inférieur à la couche applicative réelle de la solution mise en place.

Les utilisateurs sont stockés dans la table user du schéma spécifié pour déployer l'extension pgSQLPluset les droits entre ces utilisateurs et les tables de la base de données sont stockés dans la table table_user_right de ce même schéma.

Toutes les fonctions utilisées pour gérer les utilisateurs sont dans le schéma spécifié pour déployer l'extension pgSQLPlus.


Ajout d'un nouvel utilisateur

L'ajout d'un nouvel utilisateur se fait en utilisant la fonction create_user.

create_user( _id BIGINT, _name TEXT, _index SMALLINT, _delete BOOLEAN, _mask BOOLEAN, _history BOOLEAN, _right BOOLEAN );
_id
Défini l'identifiant de l'utilisateur. L'identifiant doit être unique pour l'ensemble des utilisateurs.
_name
Nom de l'utilisateur. Le nom de l'utilisateur doit être unique pour l'ensemble des utilisateurs.
_index
_delete
Indique si l'utilisateur peut utiliser les fonctionnalités liées à la suppression des données.
_mask
Indique si l'utilisateur peut utiliser les fonctionnalités liées au masquage des données.
_history
Indique si l'utilisateur peut utiliser les fonctionnalités liées à l'historisation des données.
_right
Indique si l'utilisateur peut utiliser les fonctionnalités liées aux droits sur les données.

Exemple

@extschema@.create_user(1, 'user_name', 0, TRUE, TRUE, TRUE, TRUE);

Suppression d'un utilisateur

La suppression d'un utilisateur se fait en utilisant la fonction delete_user.

delete_user( _id BIGINT );
_id
Identifiant de l'utilisateur devant être supprimé.

Exemple

@extschema@.delete_user(1);

Modification des droits d'un utilisateur

La modification des droits d'un utilisateur se fait en utilisant la fonction set_user_right.

set_user_right( _id BIGINT, _delete BOOLEAN, _mask BOOLEAN, _history BOOLEAN, _right BOOLEAN );
_id
Identifiant de l'utilisateur devant être supprimé.
_delete
Indique si l'utilisateur peut utiliser les fonctionnalités liées à la suppression des données.
_mask
Indique si l'utilisateur peut utiliser les fonctionnalités liées au masquage des données.
_history
Indique si l'utilisateur peut utiliser les fonctionnalités liées à l'historisation des données.
_right
Indique si l'utilisateur peut utiliser les fonctionnalités liées aux droits sur les données.

Exemple

@extschema@.set_user_right(1, TRUE, FALSE, FALSE, FALSE);

Modification des droits d'un utilisateur sur une table

La modification des droits d'un utilisateur sur une table se fait en utilisant la fonction set_user_table_right.

set_user_table_right( _id_user BIGINT, _schema TEXT, _table TEXT, _delete BOOLEAN, _mask BOOLEAN, _history BOOLEAN, _right BOOLEAN );

Exemple

@extschema@.set_user_table_right(1, 'schema_1', 'table_1', TRUE, TRUE, FALSE, FALSE);