[Proposal] A standard to connect with and query databases over the internet

The ODBC/JDBC standards used to make it relatively easy for diverse tools to connect with and query databases. But it seems they are either not HTTP-friendly, and/or are not well supported by vendors and tools anymore.

Some have proposed a standard “query” protocol be developed that serves a similar purpose as ODBC/JDBC, at least as far as inter-tool queries. A typical URL may look like “query://myRDBMSservice.org/query1?param_x=7” or perhaps “https ://query.myRDBMSservice.org/query1…”. Note it wouldn’t be limited to SQL. [Spacing added to prevent automated url formatting.]

This would be roughly comparable to the existing “ftp://…” protocol. (“FTPS” is slated to replace it.)

Here’s a discussion on the C2 wiki with rough draft examples.

Typical Input(s):

  • Resource Path
  • Database Name
  • Schema Name (if not using default)
  • User Name (may be a service account)
  • Query Text (such as SQL or Stored Procedure name)
  • Stored Procedure Parameters

Typical Output(s):

  • Result Rows (our lovely data!)
  • Result Row Count
  • Affected Rows Count
  • New ID Number
  • Status or Error Info
  • Vender/Brand/Version Meta Data

These are all just rough ideas; food for thought. Once everyone agrees on the need and basic features, details such as syntax can be fleshed out. Thanks!

This is not my area of expertise, though it looks like the HTTP SEARCH Method may satisfy some of the use cases.

I also found that there is already an IETF ODBC URI Scheme draft.

/cc @mnot