J’ai créé une base de données qui contient des données personnelles (cent personnes pour l’instant, trois tables liées, cinq à quinze champs par table, trente champs en tout).
Je voudrais pouvoir la partager avec des collègues en protégeant ces données de tout accès indiscret. Comment créer un ou des administrateurs et des utilisateurs n’ayant pas tous les mêmes permissions ?
Remarque : ceci est peut-être dans la documentation en anglais mais je ne maîtrise pas assez de langage technique pour pouvoir en tirer profit.
Bonjour @Sansonnet
En l’absence rapide d’autre proposition, voici une piste de résolution.
Base utilise un moteur HSQL qui gère l’administration des utilisateurs avec des commandes SQL :
CREATE USER PASSWORD [ ADMIN ]
DROP USER
ALTER USER … SET PASSWORD
Maintenant, je n’ai pas essayé de voir si ces commandes peuvent être passées dans la console SQL par Outils > SQL ni ne saurais garantir la correspondance entre les identifiant des utilisateurs dans leur cession de leur système d’exploitation et les utilisateurs gérés par HSQL.
Pouvez-vous essayer et nous en dire plus ?
EDITION DU 08/09/2020
D’après cette réponse, il n’est pas possible de gérer plusieurs utilisateurs avec une base mue par HSQLDB intégré. Il faut créer une base de donnée scindée dont voici un modèle, à télécharger dans un répertoire vide et à ouvrir en autorisant l’exécution des macros. Ensuite, les commandes évoquées précédemment devraient fonctionner.
Belle journée, Michel
J’ai travaillé la question avec Split-DB et mis mes démarches dans un fichier texte que je tiens à disposition.
Pour les utilisateurs avec mdp et permissions, ça peut fonctionner, c’est encourageant.
Ii reste bien sûr des questions à résoudre, notamment que je n’aimerais pas devoir refaire ma base (120 sujets enregistrés, 3 tables, une trentaine de colonnes) “à la main”.
Si vous connaissez le moyen de la dupliquer dans le modèle Split-DB, merci de me l’indiquer, ce serait formidable.
J’espère que vos démarches et mon petit rapport (un petit fichier texte de 2,5 ko) vont permettre de rendre service à d’autres utilisateurs de LO, faites-moi savoir si je peux contribuer un peu plus.
Bien à vous,
Sansonnet
Bonsoir @Sansonnet
L’export de données depuis Base peut être réalisé de plusieurs façons.
1- Ouvrir la base de données. Afficher l’onglet Tables
. Sélectionner la première table. La copier dans le presse-papier par Ctrl
+C
. Ouvrir un classeur Calc
et sélectionner la cellule A1 de la première feuille. Y coller le contenu du presse-papier par Ctrl
+V
. Vérifier que les données se présentent bien. Sauvegarder ce classeur au format csv, avec le nom de la table. Fermer ce classeur. Recommencer pour toutes les tables.
2- Utiliser la commande SCRIPT 'Nom_de_la_base.sql'
depuis la console d’exécution de commande SQL : Outils
>SQL
pour obtenir le fichier de commandes SQL
‘Nom_de_la_base.sql’` dans votre répertoire par défaut.
Ensuite, se reporter à l’interface Split-DB pour importer ces données soit depuis les fichiers csv, soit pa exécution des commandes du fichier sql.
Ces méthodes ne préservent que les données mais pas les relations entre tables, les requêtes…
Michel
Bonsoir Michel,
J’ai passé une bonne partie de la journée sur l’importation de la base.
Dans ma base originale j’ai copié chaque table, chaque requête et chaque formulaire d
Bonsoir Michel,
J’ai procédé ainsi :
J’ai copié dans la base originale chaque table, chaque requête et chaque formulaire que j’ai collés un par un dans le Template.
J’ai créé un utilisateur ADMIN, rétabli les relations entre tables puis créé d’autres utilisateurs à qui j’ai accordé des permissions.
J’ai supprimé la table qui existait dans le Template et vérifié et au besoin corrigé les requêtes.
Tout fonctionne.
Merci grandement pour vos indications qui m’ont été très utiles.
À charge de revanche,
Sansonnet
Bonsoir @Sansonnet
Pourriez-vous cocher le rond, à gauche du titre de la réponse ?
Merci d’avance, Michel
Bonjour Michel, Mes excuses pour le délai mis à répondre et merci pour votre aide.
J’ai appelé la console SQL (Outils>SQL) sans ouvrir de Table ou autre et envoyé la commande
CREATE USER “Lui” PASSWORD “luilui”
Retour :> Commande exécutée avec succès.
Puis : GRANT SELECT ON “Table1”, “Table2” TO “Lui”;
Retour :> Access is denied in statement [GRANT]
Je crée donc un USER ADMIN puis attribue à “Lui” la permission SELECT sur une seule table. je fais CONNECT USER “Lui” et effectivement il peut accéder uniquement à cette table.
Mais je ferme et j’ouvre à nouveau la base sans devoir m’identifier ni donner un mot de passe.
Quelque chose ne va pas à son terme !
Espérant que vous pourrez me conduire plus loin.
Bien à vous,
Sansonnet
Bonsoir @Sansonet
Je vais chercher sur le forum anglo-saxon.
Cordialement, Michel