标题几乎说明了一切。我想创建一个SqlConnection然后检查该连接而不打开数据库,因为那时我还不知道我将连接到哪里。有可能吗? SqlConnection类有一个'Open'成员,它试图打开你在Database属性中设置的数据库,如果你没有设置它,SqlServer会尝试使用master db。问题是我正在尝试连接的用户(MACHINE \ ASPNET)可以访问某些数据库(我还不知道),而不是主数据库。
此致 西巴
答案 0 :(得分:10)
连接到临时数据库。每个人都加入了tempdb,因此您可以对自己进行身份验证以进行访问。稍后当您知道实际数据库时,可以更改此属性以连接到所需的数据库。
答案 1 :(得分: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]
答案 2 :(得分:1)
如果您只需知道服务是否处于活动状态,您可以尝试通过套接字连接到端口,以查看它是否已打开
答案 3 :(得分:0)
好奇......如果您不知道需要连接的精确数据库,您将能够验证哪些信息?许多可能出错的“真实”数据库在这种测试连接中是不可测试的,例如连接或安全性。
答案 4 :(得分:-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