我们正在开发一个应用程序来对我们所有的SQL服务器(2000,2005和2008)进行“听力测试”测试,我们正试图找出SQL服务器上执行该操作所需的最低权限。 (涉及的平台是TBD,但应使用标准连接字符串)。
我们正在考虑使用“SELECT @@ VERSION”查询,该查询应该是确定sql server已启动并正在运行并响应请求所需的全部内容。
使用连接字符串简单连接服务器所需的最低SQL权限是多少? (我们甚至不想提供DataReader,如果可能的话)那些最小权限是否允许我进行上述查询?这样做有更好/更标准的技术吗? SQL 2000,2005和2008会有不同的表现吗?
答案 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数据库的权限。保证该数据库存在于所有服务器和所有版本中。
这还将确保满足审核要求,因为您不必为心跳检查授予访问任何其他数据库的权限。