質問

2014年06月02日 12時01分
  • ASPプログラムからSQL2005をアクセスする手法をご教授下さい

情シスのオープンナレッジ『Syszo』サービス終了のお知らせ

質問

現在、SQL Server 2000 のデータをSQL Server 2012に移植すべく作業を行っております。
とりあえず、SQL Server 2005に一旦アップし、それからSQL Server 2012に移植する予定です。
OSは、Windows Server2008 R2 Standardとなります。

SQL2000のデータをバックアップし、SQL2005のデータベース環境を作成、データを移植しました。
ASPプログラムからSQL2000の時には
adcon.Open "Provider=SQLOLEDB;Server="(local),Database=DB名;UID=sa;PWD="
でアクセスが可能でした。 あまり勧められない「sa」を利用しておりました。
SQL2005においては「sa」が使えないので、サーバにログイン可能なユーザ名を指定してアクセスしようとしています。
adcon.Open "Provider=SQLOLEDB;Server="(local),Database=DB
名;UID=ユーザ名;PWD=ユーザのパスワード"
の形式でアクセスしております。

この時、下記のようなエラーメッセージが表示されます。

Microsoft OLE DB Provider for SQL Server エラー ’80004005’
ユーザー ’ユーザ名’ はログインできませんでした。このユーザーは SQL Server の信頼関係接続と関連付けられていません。
/xxxIndex/SQLTest.asp, 行 59

行59が、adcon.Openのコードです。 ここでエラーとなり先に進みません。
Open処理についてのアドバイスをいただけないでしょうか。
1.SQL2005の環境で何か設定ミス、または設定不足があるのでしょうか。
2.アクセスユーザに関する設定(信頼関係)はどうすれば解決するのでしょうか。
3.adcon.Openの処理で指定しているServer="(local)の記述は正しいのでしょうか。
 SQL2000の時には(local)の表記がありますが、今はServer名(SQL Server 9.0.4035 - DOMAIN\Administraor)の表記になっています。
4.アクセスデフォルトユーザを登録し、そのユーザ名とパスワードを指定しなければいけないのでしょうか。
5.saユーザが使えるようにする何らかの処置があるのでしょうか。
6.ASPプログラムを動かすための設定が不足しているのでしょうか。

初心者のため何処が悪いのか、切り分けが出来ません。
ご指導のほど、宜しくお願いいたします。

2件の回答があります

回答

なか様、こんにちは。
当方ではSQL Server2008を使用しておりますが、パスワードなしでログインできております。
PWD=’ユーザのパスワード’ というように、シングルクオートで囲ってもダメでしょうか?
psDBName="PROVIDER=SQLOLEDB;DATABASE=db名" & sDB & ";Uid=sa"
と書いていますが...

2014年06月02日 13時34分

回答

だいぶ時間が掛かりましたが、解決しましたので報告のみ記載しておきます。
SQL2005のインストール時、「sa」ユーザに対してパスワードを指定
してインストールしなおした。
ASPからは「sa」ユーザでパスワードを指定してのアクセスに変更した。
その結果、Open処理でのエラーは出なくなり、DBへのアクセスが可能と
なりました。
SQL2005では「sa」ユーザは、パスワード無しでのアクセスは出来なくなったのかもしれません。
以上、報告まで。 お世話になりました。

2014年07月25日 17時14分

あなたもコメントしましょう!