質問

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

よろしく、 セバ

役に立ちましたか?

解決

temp dbに接続します。誰もがtempdbにアクセスできるため、アクセスのために自分自身を認証することができます。後で実際のデータベースがわかったら、このプロパティを変更して目的のデータベースに接続できます。

他のヒント

これがあなたに必要なものかどうかわかりません。

チェックユーザーがSQL Server 2005のデータベースにアクセスできる場合

SELECT HAS_DBACCESS('Northwind');

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

現在のユーザーがアクセスできるすべてのデータベースを見つける

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

サービスがアクティブかどうかのみを知る必要がある場合は、ソケットを介してポートに接続し、ポートが開いているかどうかを確認できます

好奇心が強い...接続する必要がある正確なデータベースがわからない場合、どのような情報を確認できますか? 「本物」で問題が発生する可能性のある多くのことデータベースは、接続やセキュリティなど、この種のテスト接続ではテストできません。

あなたが答えを得たかどうかはわかりませんが、私たち全員が答えを探しているので、これがあなたが探していたものであることを望みます

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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top