如何在不打开数据库的情况下测试SqlServer连接
时间:2020-03-06 14:56:27 来源:igfitidea点击:
标题基本概括了所有内容。我想创建一个SqlConnection,然后在不打开数据库的情况下检查该连接,原因是那时我还不知道要连接到哪里。有可能这样做吗?
SqlConnection类具有一个" Open"成员,该成员尝试打开我们在Database属性中设置的数据库,如果我们未设置该成员,则SqlServer尝试使用主数据库。问题是我尝试与之连接的用户(MACHINE \ ASPNET)可以访问某些数据库(我尚不知道),而不能访问主数据库。
问候,
濑场
解决方案
只是好奇...如果我们不知道需要连接的确切数据库,我们将能够验证哪些信息?通过这种测试连接无法测试"真实"数据库可能出错的许多事情,例如连接性或者安全性。
我不确定这是否是我们所需要的。
检查用户是否有权访问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]
连接到临时数据库。每个人都具有对tempdb的访问权限,因此我们将能够对自己进行身份验证以进行访问。稍后,当我们知道实际的数据库时,可以更改此属性以连接到所需的数据库。
如果我们只需要知道服务是否处于活动状态,则可以尝试通过套接字将端口连接到该端口,以查看该服务是否处于打开状态