4

ADO コンポーネントを介してリモート SQL Server に接続する Delphi アプリケーションがあります。

自分のアプリケーションのみに SQL Server 2012 へのアクセスを許可し、接続しようとしている他のアプリケーションを除外するにはどうすればよいですか?

4

3 に答える 3

3

問題は、SQLServerに接続するすべてのものがConnectionStringによってこれを行うことです。

本当に必要な場合は、それらを傍受し、それらを使用して別のアプリケーションになりすますことができます。

アプリケーションがいずれかの方法でデジタル署名を使用して接続できない限り、必要なものを強制する方法はありません。

于 2012-09-05T16:14:22.373 に答える
2

Logon トリガーを使用し、このトリガーAPP_NAME()でアプリケーション名を含む定数と比較する必要があります。異なる場合は、 を実行しますROLLBACK

于 2012-09-05T12:40:15.550 に答える
0

You can use Application Role of SQL Server.

For me it makes no sense to lock whole SQL Server with Logon Trigger. There could be other databases and it should be also free for e.g. SQL Agent or for Management Studio or for Update-Program...

If you want to control access to database - use Users' and Application Roles. By App. Role you should call one stored procedure from your compiled code, and than all you can do will be defined by Application Role. If you disable access for other roles and users, nobody can access your database... Other databases could be also configured to give no permissions to other users/roles.

It makes more sense, has no problem with connection string and is flexible for other tasks.

Sorry for my english, it's not my native language.

于 2012-09-05T12:48:52.607 に答える