Configure Databases at runtime


Is it possible to implement a dynamic database configuration functionality, much like the standard database tools (SSMS, Toad etc.) ? For instance, I want to allow users to specify their own connection strings, then they would be able to connect to those databases and execute queries. So I would have to create a repository of database connections information and connection pools based on this information.

Where do I need to look to implement such a functionality?
Thank you!