ユーザーが自分のアプリケーションなしでデータベースにアクセスできないようにしたい
アプリケーションが Windows ファイル共有経由で SQLite データベースに直接アクセスする場合、これは不可能です。確かに、不便にすることはできますが、実際には不可能です。
これを実現する唯一の方法は、ミドルウェアを導入することです。
これは通常、クライアント アプリケーションからの接続をリッスンし、それらを認証し、基になるデータベースへのすべてのアクセスを管理するサービス (おそらく WCF) です。データベースは、サーバーのみが表示できる場所に格納され、Windows 共有を介してユーザーに表示されることはありません。
また、SQLite はマルチユーザー システムに最適な選択肢ではありません。ここでは、一石二鳥です。ネットワーク経由でクライアント接続を受け入れる DBMS (MS SQL Server Express は無料で、MySQL、PostgreSQL も一般的な無料の選択肢です) に切り替えて、データベース サーバーに直接接続するアプリケーションを構築します。 (このように統合 Windows 認証を使用することもできるため、明示的なログオンを避けることができます)。単純なシナリオでは、これで十分な場合があり、明示的なサービス レイヤーを構築する必要がなくなります。
より複雑なシナリオでは、アプリケーションとデータベースの間にミドルウェア層を配置することは理にかなっています。この方法では、アプリケーションの設計を変更したり、すべてのクライアント マシンに展開したりすることなく、データベースの設計を変更できます。代わりに、単に変更するだけです。ミドルウェア レイヤーを 1 か所に配置すると、アプリケーションはその違いを認識できなくなります。