最初に行う必要があるのは、Access アプリケーション自体の外部から、Jet/ACE データベース内の SQL Server リンク テーブルを "参照" できるかどうかを判断することです。テスト データベースDatabase1.accdb
にリンク テーブルが含まれている

次の VBScript は、Access 自体を使用しなくてもそのテーブルを「見る」ことができることを証明しています。
Option Explicit
Dim con '' As ADODB.Connection
Dim rst '' As ADODB.Recordset
Const AccessLinkedTableName = "dbo_linkedTable"
Set con = CreateObject("ADODB.Connection")
con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data source=C:\Users\Public\Database1.accdb;"
Set rst = CreateObject("ADODB.Recordset")
rst.Open "SELECT COUNT(*) AS n FROM [" & AccessLinkedTableName & "]", con
WScript.Echo "[" & AccessLinkedTableName & "] contains " & rst(0).Value & " row(s)"
rst.Close
Set rst = Nothing
con.Close
Set con = Nothing
通常のアカウントからそのスクリプトを実行すると、次のようになります
C:\Users\Public>cscript /nologo linkedTableTest.vbs
[dbo_linkedTable] contains 2 row(s)
だから私たちはそれがうまくいくことを知っています。
あなたの質問は 2 つの懸念を引き起こします。どちらも、ASP スクリプトは通常、独自のIUSR_MachineName
アカウントで実行されるという事実に関連しています。
あなたは「ユーザー DSN」を使用したと言いましたが、そのユーザー DSN を作成した場合、他の誰もそれを見ることができません。おそらく、代わりにシステム DSN を使用したいと思うでしょう。
SQL サーバーで Windows 認証を使用している場合は、IUSR_MachineName
アカウントに SQL サーバー データベースへのアクセスを許可する必要がある場合があります。(別の方法として、SQL 認証を使用し、SQL 資格情報をリンク テーブル定義に保存することもできますが、保存されたパスワードはあまり良い考えではありません。)