Postgresql : gestion multi-utilisateurs
Gestion des Droits
Rôle de Connexion Rôle de Groupe Objets
Appartient A des droits sur {Tables
Vues
Les Rôles
Les Rôles
Un rôle correspond à un utilisateur et/ou à un groupe. Un rôle a des droits et il peut être membre d'un
ou plusieurs autres rôles.
Le concept des utilisateurs et des groupes est facile à appréhender. Malheureusement, il ne donne
pas beaucoup de liberté dans son utilisation. Un utilisateur fait partie d'un ou plusieurs groupes. Il
hérite en cela des droits de ces groupes. À partir du momentun utilisateur fait partie d'un groupe, il
dispose des droits de ce groupe. Il lui est impossible de masquer les droits du groupe pour ne voir que
les siens. Il lui est aussi impossible de masquer ses droits par ceux du groupe. Les rôles permettent
tout cela.
À sa création, un rôle peut avoir plusieurs options :
login le rôle est autorisé à se connecter sur une base
createdb le rôle est autorisé à créer une base de données
createrole le rôle est autorisé à créer un autre rôle
superuser le rôle a tous les droits car il est un superutilisateur
Un rôle pouvant créer un autre rôle n'est pas forcément un superutilisateur. Pour qu'un rôle soit
superutilisateur, il doit avoir été créé avec l'option superuser par un superutilisateur.
Il est donc possible de nommer un administrateur, chargé de la création des bases et des rôles, qui
ne soit pas le maître absolu du SGBD. Certes, il pourra créer des bases mais cela ne lui donnera pas
le droit de supprimer objets et données dans cette base (en supposant qu'un autre rôle soit le
propriétaire de la base).
Les rôles sont définis pour l'ensemble des bases de données. Par il existe un rôle « postgres » à qui
est attribué le droit « superutilisateur ».
© Jacques Chambon 1/7
Postgresql : gestion multi-utilisateurs
Vision Interface PgAdmin
Vision Interface PgAdmin
Pour créer un rôle avec l'interface, il suffit de sélectionner l'objet, de cliquer bouton droit de la souris, et
de sélectionner la commande « ajouter un rôle ».
Première étape : ajouter un
groupe
Deuxième étape : ajouter un
utilisateur
Troisième étape : affecter
l'utilisateur au groupe.
Vision SQL
Vision SQL
Création des Rôles de connexion
CREATE ROLE "dupont" LOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
CREATE ROLE "durant" LOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
CREATE ROLE "duchmuc" LOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
CREATE ROLE "dudule" LOGIN NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
Création des Rôles de groupe
CREATE ROLE "Acheteur" NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
CREATE ROLE "Cadastre" NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
CREATE ROLE "Cadastre_centre" NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
CREATE ROLE "Cadastre_fleuve" NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
CREATE ROLE "Service_Technique" NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE;
Affectation des Rôles de connexion aux rôles de groupe
GRANT "Acheteur" TO "dupont";
GRANT "Cadastre_fleuve" TO "durant";
GRANT "Cadastre_centre" TO "duchmuc";
GRANT "Service_Technique" TO "dudule";
Les VUES (Views)
Les vues sont dérivées des tables, contrairement à une table, une vue ne contient pas de données,
elle n'a pas d'existence permanente. Elle ne peut donc être utilisée pour réaliser des mises à jour ou
© Jacques Chambon 2/7
Postgresql : gestion multi-utilisateurs
des destructions de données. Chaque fois qu'une vue est utilisée dans une requête, la table
correspondant a cette vue est créée.
Une vue ne correspond pas obligatoirement à une table dans sa totalité. Elle peut être composée
d'éléments d'une tables ( par projection ou sélection) ou de plusieurs tables ( par jointure).
En général on crée une vue pour deux raisons:
Afin de réaliser des accès restreints. L'utilisateur ne voit qu'une partie des données de la table
dont est issue la vue.
Améliorer l'interface utilisateur en construisant des vues qui sont des jointures entre plusieurs
tables. Par exemple on renseigne une table issue d'une association en insérant les libellés
correspondant aux clés présentes dans la table "association"
Création de vues
Création de vues
Avec contrôle dépendant du contenant : mode Sélection
Nous allons créer la Vue « Luminaire_fleuve_vue », qui permettra la restriction associée au salarié
« Durant ».
Pour créer une vue il faut cliquer
bouton droit sur la rubrique Vue.
Choisir « Ajouter une vue »
Il faut commencer par donner un nom et préciser le
propriétaire dans dans l'onglet « Propriétés ».
Définir ensuite la
requête correspondant à
la vue adéquate.
La dernière étape consiste à déterminer les droits d'accès sur
cette vue.
Le propriétaire a tous les droits : l'interface le détermine
automatiquement.
Il suffit d'ajouter que le rôle « Cadastre fleuve » disponible dans la
liste déroulante, aura le droit SELECT (cochez la zone
correspondante) et valider en cliquant sur le bouton « Ajou/Modif)
Validation générale par le bouton OK
Avec contrôle dépendant du contenant : mode Projection
Dans l'exemple proposé, des attributs de service ont été ajoutés
à certaines tables. C'est le cas pour la table « changer » dont la
colonne offset_ n'est qu'une colonne de service.
La vue « changer_vue » ne présentera aux utilisateurs que les trois premières colonnes.
Syntaxe SQL
Syntaxe SQL
CREATE OR REPLACE VIEW changer_vue AS
SELECT changer.cha_date, changer.lum_code_, changer.amp_numero
FROM changer;
© Jacques Chambon 3/7
Postgresql : gestion multi-utilisateurs
ALTER TABLE changer_vue OWNER TO postgres;
GRANT ALL ON TABLE changer_vue TO postgres;
GRANT SELECT ON TABLE changer_vue TO public;
Test des connexions
Le test de la connexion se fait au niveau du middleware dans lequel on précise le nom de connexion
de l'utilisateur et son mot de passe associé.
Vision ODBC
Vision ODBC
C'est à partir des outils d'administration /
Source de Données ODBC, que se
configure la liaison middleware.
Il est important de préciser le user name
et le Password.
Cette liaison doit être configurée sur le
poste de travail de Durant. C'est une
vision « poste à poste » de l'usage d'un
poste de travail.
Un poste de travail est associé à un seul
utilisateur.
Dans Access, il faut ensuite utiliser la commande « Fichier / Données externes / Lier des tables» pour
accéder aux données via ODBC.
Seules les tables autorisées pourront être ouvertes par Durant. Si vous établissez un lien avec la table
Type_ampoule, cette liaison apparaîtra, mais une tentative de lecture se traduira par un échec.
La requête suivante pourra alors être réalisée, afin d'offrir à Durant une vision globale sur les
luminaires présents dans sa zone de compétence.
Remarques : 1 - l'attribut « offset_ » n'apparaît pas dans la « table » luminaire_fleuve.
© Jacques Chambon 4/7
Postgresql : gestion multi-utilisateurs
2 - cette vision en lecture seule pourrait être remplacée par une Vue au niveau de la base de
données.
Dans la base proposée en exemple, une vue a été créée pour avoir la liste des Luminaires des
secteurs 3 et 4.
Vision JDBC
Vision JDBC
Avec OoBase il faut créer une nouvelle base de Données en utilisant une connexion JDBC. Les étapes
sont les suivantes :
Dans la première ligne suivante, il faut indiquer le nom ou l'adresse du serveur et le nom de la base.
Attention, dans l'environnement Open office la casse a son importance!
Localhost désigne la machine locale.
Il faut ensuite donner le nom et le mot de passe de l'utilisateur définit dans la base de Données
© Jacques Chambon 5/7
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !