SQL服务器“心跳”检查的最低权限?

时间:2009-03-16 04:37:51

标签: sql-server

我们正在开发一个应用程序来对我们所有的SQL服务器(2000,2005和2008)进行“听力测试”测试,我们正试图找出SQL服务器上执行该操作所需的最低权限。 (涉及的平台是TBD,但应使用标准连接字符串)。

我们正在考虑使用“SELECT @@ VERSION”查询,该查询应该是确定sql server已启动并正在运行并响应请求所需的全部内容。

使用连接字符串简单连接服务器所需的最低SQL权限是多少? (我们甚至不想提供DataReader,如果可能的话)那些最小权限是否允许我进行上述查询?这样做有更好/更标准的技术吗? SQL 2000,2005和2008会有不同的表现吗?

3 个答案:

答案 0 :(得分:2)

只需创建监控代码使用的登录名即可。在SQL Server 2005和2008上,您还需要GRANT CONNECT SQL TO (login),否则它们是相同的。

SELECT @@VERSION不需要其他权利。您提到的db_datareader是在数据库中,而不是服务器级别。

SQLPing将检测安装但不总是告诉您它是否正在运行。

何时运行SELECT @@VERSION,请确保打开和删除连接。即使SQL Servr不接受新连接,仍然可以保持打开的连接。

答案 1 :(得分:0)

考虑SQLPing

引用:“SQLPing可用于发现有关SQL Server 2000安装连接的详细信息,无需任何类型的身份验证。”

或google for SQLPing自己。我见过其他几个同名的实用程序。

答案 2 :(得分:0)

所需的只是tempdb数据库的权限。保证该数据库存在于所有服务器和所有版本中。

这还将确保满足审核要求,因为您不必为心跳检查授予访问任何其他数据库的权限。