2008-09-30 25 views
5

タイトルにはかなりのものがあります。私はSqlConnectionを作成し、データベースを開かずにその接続をチェックしたいのですが、その時点で私はまだどこに接続するのかわかりません。それは可能ですか? SqlConnectionクラスには、データベースプロパティで設定するデータベースを開こうとする「開かれた」メンバがあり、設定しなかった場合、SqlServerはマスタdbで試行します。問題は、私が接続しようとしているユーザー(MACHINE \ ASPNET)が、いくつかのデータベース(私はまだ分かっていません)にアクセスでき、マスターのデータベースにアクセスできないことです。データベースを開かずにSqlServer接続をテストする方法

よろしく、 セバ

+0

あなたが正しく理解していれば、aspnetユーザーがアクセスできるデータベースのリストを取得しようとしていますか? –

答えて

10

接続へのアクセス権を持つすべてのデータベースを検索します。誰もがtempdbへのアクセス権を持っているので、アクセスのために自分自身を認証することができます。後で実際のデータベースを知っている場合は、このプロパティを変更して必要なデータベースに接続することができます。

0

興味があるだけ...どのような情報は、あなたがに接続する必要があり、正確なデータベースを知っていないかどうか確認することができるでしょうか? 「実際の」データベースで間違っている可能性のある多くのものは、接続やセキュリティなどのテスト接続からはテストできません。

+0

...私はちょうどユーザーがSqlServerに対して認証できるかどうかを知りたいので、有効なサーバーとそのサーバーの有効なログインです... 私は答えがNOだとは思いません – sebagomez

2

これが必要な場合はわかりません。

Check if a user has access to a database in Sql Server 2005

SELECT HAS_DBACCESS('Northwind'); 

HAS_DBACCESSは、ユーザが指定したデータベース(BOL)にアクセスできるかどうかについての情報を返します。

は、現在のユーザーが一時DBへ

SELECT [Name] as DatabaseName from master.dbo.sysdatabases 
WHERE ISNULL(HAS_DBACCESS ([Name]),0)=1 
ORDER BY [Name] 
+0

それはそうではありません私は必要でしたが、ありがとう – sebagomez

1

あなたは、サービスがアクティブである場合にのみ知る必要がある場合、あなたはそれが開いている場合

、あなたの答えを持っているかどうか私にはわからない
-1

しかしとして参照し、ポートにソケットを経由してconnetしようとすることができ私たちはすべて答えを見ています。これはあなたが探していたものだと願っています。

dim con as new sqlconnection 
con.connectionstring="<<put your conn string here>>" 
'try...catch block fires exception if the con is not successfully opened 
try 
con.open() 
catch ex as exception 
msgbox ex.message 
end try 
+0

私はあなたが質問を理解しているとは思わない...それはちょうど私のポイントであり、レニングの答えは私の問題の鍵です誰もがtempdbにaccecssを持っています – sebagomez

関連する問題