To define a HTTP server, you may write:

uses SynDB, // RDBMS core
     SynDBSQLite3, SynSQLite3Static, // static SQLite3 engine
     SynDBRemote; // for HTTP server
 ...
var Props: TSQLDBConnectionProperties;
    HttpServer: TSQLDBServerAbstract;
 ...
  Props := TSQLDBSQLite3ConnectionProperties.Create('data.db3','','','');
  HttpServer := TSQLDBServerHttpApi.Create(Props,'remote','8092','user','pass');

The above code will initialize a connection to a local data.db3 SQlite3 database (in the Props variable), and then publish it using the http.sys kernel mode HTTP server to the http://1.2.3.4:8092/remote URI - if the server's IP is 1.2.3.4.

On the client side, you can then write:

uses SynDB, // RDBMS core
     SynDBRemote; // for HTTP server
 ...
var Props: TSQLDBConnectionProperties;
 ...
  Props := TSQLDBWinHTTPConnectionProperties.Create('1.2.3.4:8092','root','user','pass');

As you can see, there is no link to SynDBSQLite3.pas nor SynSQLite3Static.pas on the client side.
Just the HTTP link is needed.
No need to deploy the RDBMS client libraries with your application, nor setup the local network firewall.

We defined here a single user, with 'user' / 'pass' credentials, but you may manage more users on the server side, using the Authenticate property of TSQLDBServerAbstract.
Note that in our remote access, user management does not match the RDBMS user rights: you should better have your own set of users at application level, for higher security, and a better integration with your business logic. If creating a new user on a RDBMS could be painful, it is pretty easy on our SynDBRemote.pas side.

Then, you execute your favorite SQL using the connection just as usual:

procedure Test(Props: TSQLDBConnectionProperties);
var Stmt: ISQLDBRows;
begin
  Stmt := Props.Execute('select * from People where YearOfDeath=?',[1519]);
  while Stmt.Step do begin
    assert(Stmt.ColumnInt('ID')>0);
    assert(Stmt.ColumnInt('YearOfDeath')=1519);
   end;
end;

You may even use this remote connection e.g. using a stand-alone shared SQLite3 database as high performance but low maintenance client-server database engine.

The transmission protocol uses an optimized binary format, which is compressed and digitally signed on both ends, and the remote user authentication will be performed via a challenge validation scheme.
You could publish your server over HTTPS, if needed.

Even if you may be tempted to use such remote access to implement a n-Tier architecture, you should rather use mORMot's Client-Server ORM instead.  Our little mORMot is not an ORM on which we added a data transmission layer: it is a full RESTful system, with a true SOA design.
But for integrating some legacy SQL code into a new architecture, SynDBRemote.pas may have its benefits, used in conjunction with mORMot's higher level features.

Feel free to post your feedback on our forum, as usual, or browse the updated documentation!