Droits sur les données

Les droits sur les données permettent de définir, pour un ensemble de tuple, si un utilisateur peut les supprimer, les masquer, les historiser, les mettre à jour, les lire ou attribuer à d'autres utilisateurs ces mêmes droits.

Cette fonctionnalité nécessite de désigner une colonne source qui servira par la suite à identifier quelle ligne est concernée par des droits.

Déploiement des droits sur une table

Le déploiement de la suppression s'effectuera automatiquement si la base de données est générée par l'application pgSQLPlus. Sinon, un déploiement manuel est possible en utilisant la fonction create_delete_table:

create_right_table( _schema TEXT, _table TEXT, _column TEXT, _column_type_def TEXT DEFAULT NULL );
_schema
Nom du schéma dans lequel la table sur laquelle la fonctionnalité des droits doit être initiée est située.
_table
Nom de la table sur laquelle la fonctionnalité des droits doit être déployée.
_column
Nom de la colonne source.
_column_type_def
Indique le type de la colonne. Cette option peut être omise si la colonne source visée existe déjà en base de données.

Le déploiement de la fonctionnalité des droits crée automatiquement deux nouvelles fonctions dans le schéma parent de la table visée :syst_set_right_from_[Nom de la table] et syst_delete_right_from_[Nom de la table]. Ces fonctions permettent d'ajouter ou de supprimer des droits sur les données de la table.

Attribution de droits

Le masquage s'effectue avec la fonction syst_set_right_from_[Nom de la table]:

syst_set_right_from_[Nom de la table]( _user TEXT, _user_target TEXT, _value DATATYPE[], _delete BOOLEAN, _mask BOOLEAN, _history BOOLEAN, _update BOOLEAN, _read BOOLEAN, _right BOOLEAN );
_user
Identifiant de l'utilisateur attribuant ces droits.
_user_target
Identifiant de l'utilisateur à qui seront attribués ces droits.
_value
Tableau de valeur identifiant les lignes sur lesquelles s'applique ces droits.
_delete
Indique si l'utilisateur ciblé peut supprimer les lignes désignées (true) ou non (false).
_mask
Indique si l'utilisateur ciblé peut masquer les lignes désignées (true) ou non (false).
_history
Indique si l'utilisateur ciblé peut historiser les lignes désignées (true) ou non (false).
_update
Indique si l'utilisateur ciblé peut mettre à jour les lignes désignées (true) ou non (false).
_read
Indique si l'utilisateur ciblé peut lire les lignes désignées (true) ou non (false).
_right
Indique si l'utilisateur ciblé peut lui-même attribuer des droits (true) ou non (false).

Suppression de droits

Le supression de droits sur des données s'effectue avec la fonction syst_drop_delete_from_[Nom de la table]:

syst_delete_right_from_[Nom de la table]( _user TEXT, _user_target TEXT, _value DATATYPE[] );