Pour effectuer des connexions de serveur MySQL en toute sécurité, j’utilise un concept database connection vault, tout en verrouillant les scripts temporaires MySQL créés et supprimés dans la structure de dossiers IFS.
Modèle DataBase Connection Vault
La sécurité applicative est intégrée dans le processus database connection vault. Elle examine la pile d’appel du programme pour vérifier si le programme appelant est défini dans la table SQL DBPGMVLT. Dans la négative, aucune donnée n’est extraite via le database connection vault.
Modèle DataBase Connection Vault
Si vous utilisez mon code database connection vault, il est probable que vous ajouterez vos propres techniques de cryptage/décryptage pour sécuriser, au minimum, la colonne password dans la table SQL DBCNNVLT. Si vous journalisez les deux tables SQL utilisées dans le database connection vault, vous souhaiterez peut-être isoler l’objet journal et sécuriser le journal et les récepteurs de journaux utilisés pour ces tables. Si votre site utilise des méthodes de réplication logicielles pour refléter les systèmes IBM i, assurez-vous que les systèmes IBM i cibles ont eux aussi la sécurité appropriée sur les tables.
Sachez que quand vous attribuez un ID et mot de passe utilisateur à des variables RPG, ces dernières peuvent être vues dans un débogueur. Voyez le code source pour des exemples de paramètres compile, pour restreindre l’option « allow debug » sur les objets programmes CNNVAULT et MYSQL_ RPG SQLRPGLE.
Étendre le Database Connection Vault pour l’utilisation de bases de données non-MySQL
Vous pouvez aussi utiliser la table SQL du database connection vault pour stocker les propriétés de connexion sur tout autre type de base de données avec des paramètres de connexion. La figure suivante montre le schéma pour la table SQL DBCNNVLT. Il a des colonnes pour stocker non seulement l’utilisateur et le mot de passe, mais aussi : nom de base de données, nom de serveur, type de serveur, port de connexion de serveur et informations sur le driver de connexion (par exemple, l’emplacement du driver JDBC dans l’IFS).
Le schéma pour la table SQL DBBNNVLT.
J’utilise la logique database connection vault dans les connexions IBM i à Microsoft SQL Server en définissant une nouvelle connexion base de données dans la table DBCNNVLT. Je peux ensuite écrire un programme qui extraira les données dans la table DBPGMVLT. Par exemple, un programme RPG de mon cru utilise une chaîne de connexion JDBC pour un driver JDBC qui réside dans un emplacement statique dans l’IFS. Après avoir extrait l’enregistrement de DBPGMVLT, j’utilise les propriétés de connexion extraites dans le programme RPG pour créer la connexion vers SQL Server pour l’accès à la base de données. L’accès autorisé dépend des permissions de l’utilisateur du SQL Server qui sont définies sur le SQL Server.
Vous devez examiner le code source du programme MYSQL_RPG pour plus de détails sur l’emploi de la technique database connection vault.
Téléchargez cette ressource
SMART DSI – N°36
La Revue SMART DSI, analyses et dossiers pour tous les acteurs de la transformation numérique de l'entreprise, met sa nouvelle édition en accès sur demande, gagnez en compétences et expertise IT Professionnelle, découvrez les dossiers experts.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Les décideurs IT négligent les mises à jour firmware !
- La protection des données : un enjeu crucial pour les entreprises
- Défis et bénéfices d’infuser l’IA dans l’analytique et la BI
- Mieux protéger l’entreprise à l’ère du travail hybride et du Cloud
- Les entreprises concentrent les investissements sur l’innovation, l’efficacité et la résilience