2

バックアップ目的で別のコンピューターに複製する必要がある、従来の自家製のタイムシート システム (ASP、Microsoft SQL Server 2005) があります。(私はこのことについてほとんど知らないので、優しくしてください)

ほとんどの部分が整っています (IIS、SQL Server、テーブルのインポート/作成)。しかし、タイムシート ページにアクセスするための ASP ページは、SQL サーバーへのアクセスを妨げています。

クラッシュしている行は次のとおりです: conn.open Session("sConnStr")

これは接続文字列です。

sConnStr = "Server=MYSERVER-D01;DATABASE=MYDATABASE;UID=MyDatabaseUser;PWD=MyDatabaseUser;QuotedID=No;DRIVER={SQL Server};Provider=MSDASQL"

これはエラーです:

エラーの種類: Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Driver Manager] データ ソース名が見つからず、既定のドライバーが指定されていません /mydir/mypage.asp、行 17 <== 上記に表示

Server Management Studio を使用して、Windows を認証として指定した SQL Server 上のデータベースにアクセスできることに注意してください。ただし、SQL 認証を使用しようとすると、「ユーザーは信頼できる SQL 接続に関連付けられていません」というメッセージが表示されます。

質問:

  • SQL Server 2005 でユーザーとパスワードをどのように設定しますか?
  • デフォルトのドライバーとは何ですか? また、それを取得/セットアップする必要がありますか?
  • データ ソース名 (上記の接続文字列の "MYDATABASE" を参照) について話す場合、Management Studio オブジェクト エクスプローラーの "データベース" の下に表示されるエントリの 1 つについて話しているのでしょうか?

回答ありがとうございます。これまでのところ、運がありません。これを行うことで、管理スタジオのオブジェクトエクスプローラーを介してデータベースにアクセスできました。

  1. SQL 認証を有効にします

    ....解決策 この問題を解決するには、指示に従ってユーザー認証を設定します。SQL Server 2000:

    [スタート] > [プログラム] > [Microsoft SQL Server] > [Enterprise Manager] に移動します サーバー名を右クリックし、[プロパティ] > [セキュリティ] を選択します [認証] で、[SQL Server と Windows] を選択します これを有効にするには、サーバーを停止して再起動する必要があります

    SQL Server 2005:

    [スタート] > [プログラム] > [Microsoft SQL Server 2005] > [SQL Server Management Studio] に移動します サーバー名を右クリックし、[プロパティ] > [セキュリティ] を選択します [サーバー認証] で、[SQL Server と Windows 認証モード] を選択します サーバーを停止してから再起動する必要があります。効果..."

  2. そしてこれ

    所有者をデータベースへのアクセスに使用されている所有者に変更します

    Microsoft SQL Server Management Studio

    DBを右クリックし、所有者を変更します

しかし、私はまだまったく同じエラーメッセージを受け取っています!

4

6 に答える 6

1

IIS が SQL Server を実行しているマシンを使用しているというログインからの信頼された接続がある場合は、ユーザー名/パスワードの使用を避け、接続文字列で接続が信頼されていることを宣言します。

sConnStr = "Server=MYSERVER-D01;DATABASE=MYDATABASE; UID=MyDatabaseUser;PWD=MyDatabaseUser; QuotedID=No;DRIVER={SQL Server};Provider=MSDASQL; Integrated Security=SSPI "

これは変更を説明するためのものですが、実際には接続文字列をもう少し変更する必要がある場合があります。例については、 http://www.connectionstrings.com/sql-server-2005を参照してください。

データ ソース名 (上記の接続文字列の "MYDATABASE" を参照) について話す場合、Management Studio オブジェクト エクスプローラーの "データベース" の下に表示されるエントリの 1 つについて話していますか?

はい、「MYDATABASE」のエントリは、「データベース」の下に表示されるデータベースの正確な名前である必要があります。「サーバー」も正しいことを確認してください。

于 2009-02-17T19:34:03.300 に答える
1

新しいユーザーを作成してデータベースに割り当てるには、次の手順を実行する必要があります。

  1. SQL Server Management Studio でオブジェクト エクスプローラーを開き、新しいログインを作成するサーバー インスタンスのフォルダーを展開します。
  2. [セキュリティ] フォルダーを右クリックし、[新規作成] をポイントして、[ログイン] をクリックします。
  3. [全般] ページで、[ログイン名] ボックスに新しいログインの名前を入力します。
  4. SQL Server 認証を選択します。Windows 認証は、より安全なオプションです。
  5. ログイン用のパスワードを入力します。
  6. 新しいログインに適用するパスワード ポリシー オプションを選択します。一般に、パスワード ポリシーを強制する方が安全なオプションです。
  7. [OK] をクリックします。

次に、新しいデータベース ユーザーを作成して、そのログインをデータベースに割り当てます。

  1. SQL Server Management Studio でオブジェクト エクスプローラーを開き、[データベース] フォルダーを展開します。
  2. 新しいデータベース ユーザーを作成するデータベースを展開します。
  3. [セキュリティ] フォルダーを右クリックし、[新規作成] をポイントして、[ユーザー] をクリックします。
  4. [全般] ページで、[ユーザー名] ボックスに新しいユーザーの名前を入力します。
  5. [ログイン名] ボックスに、データベース ユーザーにマップする SQL Server ログインの名前を入力します。
  6. [OK] をクリックします。

そのユーザーを db_owner にする必要があります。データベースに対して次を実行します。

sp_addrolemember @rolename = 'db_owner', @membername = 'usernamehere'

次に、次の接続文字列形式を使用してデータベースに接続します。

Data Source=ServerAddress;Initial Catalog=DatabaseName;User Id=UserName;Password=UserPassword;
于 2009-02-17T18:49:16.513 に答える
0

これらの問題に対処するために私が見つけた最も簡単な方法は、udlファイルを作成することです。デスクトップで新しいテキストファイルを作成し、filename.udlという名前に変更します。udlファイルをダブルクリックします。[プロバイダー]タブをクリックし、[SQLServer用のMicrosoftOLEDBプロバイダー]>[次へ]を選択します。[接続]タブを使用すると、データベースに接続できるはずです。テスト接続が成功したら、[OK]をクリックします。これで、ファイルをテキストエディターで開き、Provider...を開始する行をコピーしてaspファイルに貼り付けることができます。最終的にはsConnStr="Provider..textfromUDLfile"になります。

MSDN-ユニバーサルデータリンク(.udl)ファイルの作成と構成

于 2009-02-17T19:56:09.190 に答える
0
Microsoft OLE DB Provider for ODBC Drivers error '80004005' 

[Microsoft][ODBC Driver Manager] データ ソース名が見つからず、既定のドライバーが指定されていません。

これは通常、次のいずれかのシナリオで発生します。

* you referenced your connection incorrectly (e.g. spelled the DSN name, or one of the DSN-less string components wrong);
* you referenced a DSN that doesn't exist;
* the user connecting to the DSN or DSN-less connection doesn't have access to the information stored in the registry (see KB #306345);
* you used an English or localized driver detail for your connection string when your system is not set up in that language (see KB #174655); or,
* you are missing the connection string entirely (this can happen if you maintain your connection string in a session variable, and your sessions aren't working; see Article #2157).

上記の記事へのリンクは次のとおりです(非常に詳細であることに注意してください)。 リンク

最後の質問に答えるために、MYDATABASE はデータベースを名前で呼び出しています。文字列に 'MYDATABASE' を使用する場合、SQL Server に 'MYDATABASE' という名前のデータベースが必要になります。

于 2009-02-17T19:02:40.130 に答える
0

これが SQL サーバーの場合、この接続文字列はASP で正常に機能するはずです。明らかに使用する前に値を置き換えてください。

sConnStr = "provider=SQLOLEDB;Data Source=YourServerName;Initial Catalog=YourDBName;UID=YourUserName;PWD=YourUserPWD;"
于 2009-02-17T19:16:07.743 に答える