2008-09-30 57 views
5

标题几乎说明了一切。我想创建一个SqlConnection,然后在不打开数据库的情况下检查连接,因为那时我不知道我将连接到哪里。有可能这样做吗? SqlConnection类有一个'Open'成员,它试图打开你在Database属性中设置的数据库,如果你没有设置它,SqlServer会尝试使用主数据库。事情是我试图连接的用户(MACHINE \ ASPNET)可以访问一些数据库(我还不知道),而不是主数据库。如何在不打开数据库的情况下测试SqlServer连接

问候, 西巴

+0

所以,如果我理解正确的话,你想获得的用于该ASPNET用户可以访问数据库列表? – 2008-09-30 19:17:06

回答

10

连接到临时数据库所有数据库。每个人都接受tempdb,所以你将能够验证自己的访问权限。稍后当你知道实际的数据库时,你可以改变这个属性来连接你想要的数据库。

0

只是好奇......你会成为什么样的信息能够确认,如果你不知道你需要连接到数据库的准确?许多“真实”数据库可能出错的东西从这种测试连接(例如连接或安全性)是无法测试的。

+0

好吧......我只是想知道,如果用户可以对SqlServer进行身份验证,因此,它是一个有效的服务器和该服务器上的有效登录... 我想答案是NO,你不能 – sebagomez 2008-09-30 20:38:24

2

我不确定这是否是您需要的。

Check if a user has access to a database in 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] 
+0

那不是我需要什么但感谢 – sebagomez 2008-09-30 20:39:02

1

如果你只需要知道,如果服务是活动的,你可以尝试通过套接字Connet的港口,看它是否是开放

-1

我不知道你是否有你的答案,但作为大家都看看这里的答案,我希望这是你要找的人

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` – sebagomez 2011-11-26 13:57:56

相关问题