従来の ASP アプリケーションをローカルの SQL Server 2008 データベースに接続しようとしています。アプリとデータベースは他の誰かによって構築されました。それらを自分のマシン(Windows 7)にインストールして実行しようとしています。
ASP アプリがデータベースに接続しようとすると、次のエラーが発生します。
Could not connect to database:
Error Number: -2147467259
Error Message: [ConnectionOpen (Connect()).] does not exist or access denied.
Windows イベント ビューアーにメッセージが表示されません。私が見ているのは、イベント ビューアー -> Windows ログ -> アプリケーションです。
これは、単純な復元を使用したデータベースの新規インストールです。SQL Server のインストールでは、既定のインスタンスが使用されます。SQL Server と Windows 認証の両方が許可されます。既存の接続文字列 (ASP コード内) をそのままにして、それを SQL Server インストールに追加しようとしました。接続文字列は次のとおりです。
strConn = "PROVIDER=SQLOLEDB;SERVER=localhost;UID=TheUser;PWD=ThePassword;DATABASE=TheDatabase;"
そのユーザーを SQL Server に追加するために、SSMS の [セキュリティ/ログイン] に移動し、ユーザーとパスワードを追加しました。問題のデータベースをデフォルト データベースとして選択しました。私はそれがトリックを行うかもしれないと思ったが、そうではなかった. 次に、TheDatabase に入り、そこで Security に入りました。サーバー セキュリティで既に追加した新しいユーザーを参照して、そこに新しいユーザーを追加しました。[Owned Schemas] の下で [db_owner] をクリックし、[Role Members] の下で [db_accessadmin] と [db_owner] をチェックしました。これにより、ASP アプリケーションはデータベースにアクセスできませんでした。sid 値は、問題のログインsys.database_principals
と一致します。sys.server_principals
このログインを使用して SSMS にログインできます。
アプリは、次のようにデータベースに対して選択を実行する必要があります。
oConn.Execute('select * from someTable')
私は DBA ではなく、ここでストローをつかんでいます。どうすればこれを接続できますか?
ありがとう、ジェイ