2010-08-30 4 views
3

En tant que source de données ColdFusion, nous utilisons le client léger Oracle pour se connecter à la base de données. Donc, fondamentalement, nous utilisons une URL JDBC comme jdbc: oracle: thin: @ ... et comme classe de pilote oracle.jdbc.OracleDriverChiffrement et intégrité de la connexion à la base de données avec ColdFusion et le client léger Oracle

Cela fonctionne avec succès, mais nous aimerions également définir des paramètres de cryptage et d'intégrité. En Java cela se fait de façon similaire en définissant un objet Properties avant d'obtenir une connexion comme suit:

Properties prop = new Properties(); 
prop.put("oracle.net.encryption_client", "REQUIRED"); 
prop.put("oracle.net.encryption_types_client", "(DES40)"); 
prop.put("oracle.net.crypto_checksum_client", "REQUESTED"); 
prop.put("oracle.net.crypto_checksum_types_client", "(MD5)"); 

... 

OracleDataSource ods = new OracleDataSource(); 
ods.setProperties(prop); 
ods.setURL("jdbc:oracle:thin:@localhost:1521:main"); 
Connection conn = ods.getConnection(); 

... 

Est-il possible que je puisse transmettre ces paramètres à la source de données ColdFusion. Idéalement, j'aimerais le faire de manière centralisée de telle sorte qu'une modification de tous les cfquery ou cfstoredproc n'est pas nécessaire.

Je sais également que dans les serveurs d'applications tels que Oracle AS, il existe une option lors de la création d'une source de données qui dit "Ajouter des propriétés". Là, vous pouvez ajouter de telles propriétés. Donc, je pensais à peut-être créer un DS JNDI dans l'application. serveur, puis se connecter comme par magie, mais cela peut avoir des impacts sur l'application. En plus de cela, je pensais également à communiquer avec la source de données CF via l'API d'administration CF (cfide.adminapi.administrator) et aussi l'option d'étendre le pilote Oracle de sorte que lorsque CF se connecte avec lui, ces paramètres sont déjà définis.

J'aimerais avoir votre opinion professionnelle et des suggestions à ce sujet.

Répondre

0

Toutes les sources de données dans ColdFusion peuvent être configurées avec une chaîne de connexion. Je verrais s'il est possible de passer vos propriétés dans le cadre de la chaîne de connexion.

Pour modifier la chaîne de connexion, ouvrez la source de données dans l'admin CF et allez dans «Paramètres avancés». Il y a une boîte que vous pouvez remplir.

Si vous comprenez cela, l'ensemble du processus devrait être transparent pour ceux qui utilisent la source de données.

J'espère que cela aide certains.

+0

L'URL est de la forme jdbc: oracle: : / @ et donc il n'y a aucun moyen que nous pouvons transmettre les propriétés carte ici, la chaîne de connexion. Comme je l'ai dit, Oracle AS a une option qui vous permet d'ajouter des propriétés dans la source de données, mais pas CF (au moins la vanille CF8). – user164701

+0

Hmm, avez-vous essayé de poster ceci sur les forums d'Adobe? Il y a peut-être des gars qui peuvent vous aider. http://forums.adobe.com/community/coldfusion/coldfusion_database –

+0

Merci pour le conseil! La question y était affichée et j'attends une réponse là aussi. Une fois que j'aurai une réponse, je posterai la solution ici. – user164701

1

Je sais que c'est une vieille question ...

Vous ne pouvez absolument passer des propriétés de chaîne de connexion à tout ColdFusion source de données.

Une fois la source de données ouverte dans CF ADMIN, ouvrez les paramètres avancés. La première option que vous pouvez modifier dans l'onglet Paramètres avancés est "Chaîne de connexion". Ce sont toutes les paires nom-valeur de paramètres séparées par des esperluettes (&) à transmettre lors de la connexion à la base de données.

Par exemple:

encryption_client=REQUIRED&encryption_types_client=DES40&crypto_checksum_client=REQUESTED&crypto_checksum_types_client=MD5` 

Cependant, la réponse à l'OP, est que vous pouvez transmettre des paramètres le long de l'URL JDBC ainsi.

Par exemple:

Utilisation du pilote Progress Datadirect, votre URL JDBC pourrait ressembler à ceci:

jdbc:datadirect:oracle://server;SID=someSID;encryption_client=REQUIRED;encryption_types_client=DES40;crypto_checksum_client=REQUIRED;crypto_checksum_types_client=MD5 

Rappelez-vous simplement que vos params sont séparés par des points-virgules, non par des virgules.Lorsque vous définissez une source de données, assurez-vous que vous utilisez le bon TYPE de pilote ... Certaines fonctionnalités ne sont pas disponibles dans les écrans de configuration de la source de données native. Pour utiliser des fonctionnalités plus avancées, vous devrez peut-être utiliser OTHER.

Questions connexes