2012-01-01 7 views
1

私は、SQL Serverデータベースにアクセスする必要があるASP.NET Webアプリケーションを開発しています。アプリケーションの実行に必要なサーバーは、Windows Server 2000、SQL Server 2000、IIS6、および.NET 2.0を実行しています。asp.net/sql server/iis permissions

ビジュアルスタジオのテストWebサーバーでVisual Web Developer 2010を使用しているマシン上でWebアプリケーションを実行しても、実際のWebサーバー上のデータベースにアクセスすると正常に動作します。しかし、私はこのアプリケーションを実際のWebサーバーに置き、ブラウザーを介してアクセスしようとすると、私はこれらのテーブルにアクセスできないというパーミッションエラーが発生します。

私のアプリがアクセスする必要がある2つのテーブルがあります。そのうちの1つでは、パブリックグループの選択権限を許可するようにSQL Management Studioの権限を変更し、それによって問題が解決されました。他のテーブル(非常に大きなテーブル)では、同じことを試みましたが、テーブルにロックをかけるのを待っているというエラーが表示されました。このタイムアウトやアクセス許可を変更する別の方法を変更する方法はありますか?

非常に同じテーブルにアクセスする従来のASPアプリケーションがそのサーバーに存在するため、アクセス権を変更する必要があるとは思わないと思います。私は問題がテーブルにアクセスするために使用されているユーザーだと思う。私のマシンからWebアプリケーションを実行しているテーブルにアクセスでき、サーバ上の古典的なASPアプリケーションはアクセスできますが、ASP.NETアプリケーションではアクセスできない場合、ASP.NETアプリケーションは別のユーザアカウントを使用している必要があります。これを確認して必要な変更を行うにはどうすればよいですか?あなたが-1にロックタイムアウトを設定してみてください可能性が

+0

接続文字列を確認する必要があります。統合セキュリティを使用していますか? yesの場合、appdomainで使用されるアカウントはデータベースにアクセスするユーザーです。 – rene

答えて

0

SET LOCK_TIMEOUT -1 
GO 

(それがタイムアウトすることは決してないだろうという意味)そして、あなたはまた、あなたがすることもでき、クエリ

sp_addrolemember @rolename = 'db_datareader', @membername = 'YourAspApp' 

を使用して権限を追加してみてくださいすることができます既に特権を選択しているユーザーにasp.net接続文字列でasp.netユーザーを変更しようとします。

)それは=で開始するには良い場所だ、というのいずれかが働いていた場合、私に教えてください

1

あなたの許可エラーについてあなたのマシン上のアプリケーション統合Windowsで、あなたの権限でデータベースにアクセスしているので、それはおそらくですログイン。

通常、Webアプリケーションは、web.configファイルの接続文字列セクションで指定された技術ユーザーを使用して、データベースにアクセスすることが想定されています。それは次のようなものです

<configuration> 
    <connectionStrings> 
    <add name="myConnsStr" connectionString="server=myserver.example.com;database=mydatabase;uid=tech_account;pwd=tech_account_password" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
... 
</configuration> 

どのように見えますか?

もう1つは、はい、T-SQLの権限変更を行います。それを行う方法がわからない場合は、デザイナーで変更を行い、[OK]をクリックする前に、ヘッダー領域の[スクリプト]ボタンを使用します。クリップボードに変更をスクリプト化し、新しいクエリウィンドウで実行しようとします。オプションのダイアログでクエリのタイムアウトを再生することができます。

関連する問題