Configuration d'une base de données sur Microsoft SQL Server
Prérequis de la base de données 1 - Insensibilité à la casse
La base de données doit être configurée pour interpréter le langage SQL d'une manière non sensible à la casse. La collation insensible à la casse doit être Latin1_General_CI_AS.
Prérequis 2 pour base de données - Mode d'authentification mixte
Le mode d'authentification mixte est généralement configuré durant l'installation de SQL Server.
- Connectez-vous, puis cliquez-droit sur la racine de l’arbre (instance de SQL Server Express).
- Allez dans Security.
- Sélectionnez SQL Server and Windows Authentication mode.
Prérequis 3 pour base de données - Protocole TCP/IP activé
Le protocole TCP/IP doit être activé dans SQL Server Configuration Manager pour l'instance nommée et les protocoles clients. Redémarrez le service après la modification.
Prérequis 4 pour base de données - Propriétaire de la base de données
L'identifiant de la base de données connectant Talend Data Catalog à la base de données SQL Server doit être celui du/de la propriétaire de la base de données.
Prérequis de la base de données 5 - SQL Common Language Runtime (CLR) Strict Security pour SQL Server 2017 ou plus récent
Toutes les opérations de base de données intensives, comme la maintenance de la base de données sont implémentées dans SQL Server par des procédures stockées écrites en C#, compilées dans une assemblée (assembly) de procédure stockée, appelée MIRRepo. Cette assemblée a été signée pour être créée avec les autorisations configurées à SAFE.
- Activez CLR, prérequis par défaut pour exécuter les assemblées .NET via des procédures stockées.
EXEC sp_configure 'clr enabled',1 RECONFIGURE;
-
Si vous utilisez SQL Server 2017 ou une version plus récente, la sécurité CLR stricte est activée par défaut. Vous devez effectuer l'une des procédures suivantes :
-
importez le certificat utilisé pour signer l'assemblée de procédure stockée dans la base de données et attribuez l'autorisation UNSAFE sur l'assemblée, à l'aide de la commande suivante :
CREATE CERTIFICATE MIRRepoCert FROM BINARY = 0x308203663082024ea00302010202045eece216300d06092a864886f70d01010b05003075310b30090603550406130255533113301106035504080c0a43616c69666f726e69613116301406035504070c0d4d6f756e7461696e2056696577312a3028060355040a0c214d65746120496e746567726174696f6e20546563686e6f6c6f67792c20496e632e310d300b06035504030c044d6d4462301e170d3230303630313037303030305a170d3330303630313037303030305a3075310b30090603550406130255533113301106035504080c0a43616c69666f726e69613116301406035504070c0d4d6f756e7461696e2056696577312a3028060355040a0c214d65746120496e746567726174696f6e20546563686e6f6c6f67792c20496e632e310d300b06035504030c044d6d446230820122300d06092a864886f70d01010105000382010f003082010a0282010100c2ccf729a28a90958f71a68f6acca9f20b5c256b7c76565b2ece0cd1789bec85e9ab538ac38dc268e48c10e17d3eca1aeb14034bc67bafc05475ed013495aada683c74885f12a8bdbf2025ec3c5a0172010e7055ab27a853e77611ee6ae846453702d18ae3080977ddaee50a282b9dab3f077fe1630804b24f05c58280621dc1426fff7115e8a791435687096c09f754608bb9a6ce00002f7131f09cffd417678bddb8f7a703e4e688f2f0af501c52ecef2cbea3d37c45da4239ddb53295adaddb11dc0118b3188adf812c983d5676c5b7356d68e2258ea32cd3216db21dae49df16d2aa1aef39c618e393ce7e1b131b241c557414424fb6c17c825022a5a4270203010001300d06092a864886f70d01010b05000382010100a1db34a6cda0729a796e5ed0fe5b2f4813ff74bf96300c9ca30fb84be44bd7d0bc46c96a0726eae5e829985429ff4ff09b50ece907c5b8c7f8a71f7a16781103d7eaf2e1c7afa39e4774293610e0d04e6b0c76dc9a85891e6f5fed09059960dc7e2a7c1dc14d64aab9718747752d394b22e339da2c7e6ced1626dde991818cbcaf049d8f112a98b2aa2e80d1168f797a6c992e304e4572b4edcf40d270a281f82d7bde64e8d8b5d83574ecf5470f3d1a9d710498e133e9309a043f63b1682972678fba2a33267999795b5d040524e2f875b667dcec08d310e27b6086b2667dde70d4401fe501944f70581e559d5f3f5b72e49ff722e58594b84a8d15d5dd1414; CREATE LOGIN MIRRepoCertLogin FROM CERTIFICATE MIRRepoCert; GRANT UNSAFE ASSEMBLY TO MIRRepoCertLogin;
- désactivez la sécurité CLR stricte de SQL Server CLR comme suit :
EXEC sp_configure 'show advanced options', 1; RECONFIGURE with override; EXEC sp_configure 'clr strict security', 0; RECONFIGURE with override; EXEC sp_configure 'show advanced options', 0; RECONFIGURE with override;
-
- Si vous utilisez une version de SQL Server antérieure à 2017, vous devez activer la sécurité CLR stricte comme suit :
EXEC sp_configure 'clr strict security', 1 RECONFIGURE;
Pour plus d'informations concernant la sécurité CLR stricte, consultez la documentation Microsoft SQL.
Préparation de la base de données
- Connectez-vous à SQL server en tant qu'utilisateur ou utilisatrice ayant un rôle d'administrateur·trice de serveur.
- Configurez la sécurité CLR stricte selon la version de votre SQL server.
- Exécutez les commandes suivantes pour créer une base de données MM et un utilisateur ou une utilisatrice MM, avec le mot de passe MM123!, par exemple.
Go CREATE LOGIN MM WITH PASSWORD = 'MM123!'; CREATE DATABASE MM; ALTER DATABASE MM SET SINGLE_USER WITH ROLLBACK IMMEDIATE; ALTER DATABASE MM SET READ_COMMITTED_SNAPSHOT ON; ALTER DATABASE MM SET MULTI_USER WITH ROLLBACK IMMEDIATE; ALTER AUTHORIZATION ON DATABASE::MM to MM;
Le produit repose sur une assemblée nommée MIRRepo, chargée depuis un binaire et non depuis un fichier. Ce binaire est créé avec l'autorisation SAFE. En plus d'être le propriétaire de la base de données, l'utilisateur ou l'utilisatrice MM doit avoir l'autorisation CREATE ASSEMBLY.
Connexion à la base de données
Les administrateurs et administratrices avancés de SQL Server peuvent définir (en dur) un jeu de ports TCP/IP pour que SQL Server s'exécute sur le réseau. Microsoft recommande d'exécuter le service SQL Server Browser. Cela peut être effectué dans le panneau Services ou dans SQL Server Configuration Manager.
Pour plus d'informations, consultez How to: Configurez Express pour accepter les connexions à distance.
jdbc:sqlserver://<dbServer>:<dbPortNumber>;databasename=<dbName>
Le nom d'instance de la base de données par défaut pour SQL Server Express est sqlexpress et sqlserver pour les autres éditions de SQL Server.
Le numéro de port TCP/IP de SQL Server est 1433.
Vous pouvez vous connecter à une instance de SQL Server différente de celle par défaut.
- Si le service SQL Server browser est en cours d'exécution.
Cas Action Si l'instance nommée est configurée pour écouter les ports dynamiques
Dans l'installeur, spécifiez uniquement le nom d'instance au format NOMDHOTE\NOMDINSTANCE et pas de port. Le champ port doit être laissé vide, tel que jdbc:sqlserver://localhost\sqlexpress;databaseName=MM;
Si l'instance nommée est configurée pour écouter les ports d'IP statiques
L'instance de SQL Server doit être configurée pour s'exécuter sur un port TCP/IP statique et ce port doit être spécifié dans l'installeur, comme par exemple jdbc:sqlserver://localhost\sqlexpress:1433;databaseName=MM;
-
Si le service SQL Server browser n'est pas en cours d'exécution.
Dans l'installeur, spécifiez seulement le port d'instance, par exemple jdbc:sqlserver://localhost:1433;databaseName=MM;
- Si le service SQL Server browser est en cours d'exécution.
- Vous pouvez vous connecter à SQL Server à l'aide du compte du domaine.
- Trouvez le pilote mssql JDBC sous %OMM_HOME%\java\Jdbc\mssql, par exemple mssql-jdbc-7.4.1.jre11.jar.
- Téléchargez un pilote JDBC Microsoft pour SQL Server de la même version et extrayez-en le contenu.
Vous trouverez le fichier sqljdbc_auth.dll du pilote JDBC Microsoft x.x pour SQL Server\sqljdbc_x.x\enu\auth\x64 et mssql-jdbc-x.x.x.jre11.jar du pilote JDBC Microsoft x.x pour SQL Server\sqljdbc_x.x\enu.
- Copiez sqljdbc_auth.dll vers %OMM_HOME%\bin.
- Remplacez mssql-jdbc-x.x.x.jre11.jar sous %OMM_HOME%\java\Jdbc\mssql par l'un des pilotes JDBC Microsoft x.x pour SQL Server\sqljdbc_x.x\enu.
- Dans la fenêtre Configure Database Connection (Configurer la connexion de la base de données), ajoutez ;integratedSecurity=true à la fin de l'URL de la base de données, tel que jdbc:sqlserver://localhost:1433;databasename=MM;integratedSecurity=true.
- Renseignez les autres champs et cliquez sur TEST CONNECTION (Tester la connexion).