2009-03-16 2 views
1

우리는 모든 SQL 서버 (2000, 2005 및 2008)에 대한 "듣기 (hearbeat)"테스트를 수행하는 응용 프로그램을 개발하고 있으며이를 수행하기 위해 SQL 서버에 필요한 최소 권한을 파악하려고합니다. (관련 플랫폼은 미정이지만 표준 연결 문자열을 사용해야합니다).SQL 서버 "하트 비트"확인을위한 최소 권한은 무엇입니까?

"SELECT @@ VERSION"쿼리는 SQL Server가 실행되고 요청에 응답하는지 확인하는 데 필요한 모든 쿼리를 사용해야합니다.

연결 문자열로 서버에 연결하는 데 필요한 최소 SQL 권한은 무엇입니까? (가능한 한 DataReader를 제공하고 싶지 않습니다.) 최소한의 권한으로 위의 쿼리를 수행 할 수 있습니까? 이 작업을 수행하는 데 더 나은 표준 기술이 있습니까? SQL 2000, 2005 및 2008은 다르게 동작합니까?

답변

2

모니터 코드에서 사용하는 로그인을 만들면됩니다. SQL Server 2005 및 2008에서는 GRANT CONNECT SQL TO (login)도 필요합니다. 그렇지 않으면 동일합니다.

SELECT @@VERSION에 대한 권리가 필요하지 않습니다. 언급하신 db_datareader은 서버 레벨이 아닌 데이터베이스 내에 있습니다.

SQLPing은 설치를 감지하지만 실행 중인지 항상 알려주지는 않습니다.

SELECT @@VERSION을 실행하는 경우 연결을 열고 놓아야합니다. SQL Servr이 새 연결을 허용하지 않는 경우에도 열린 연결은 여전히 ​​작동 할 수 있습니다.

+0

흠. 다른 명시 적 할당 권한이 없어도 "SELECT * FROM SYSDATABASES"또는 "SP_WHO"와 같은 다른 작업을 수행 할 수 있습니다. 나는 주인에 datareader를 부정 할 필요가있을 는가 것입니다? 그랬다면 @@ VERSION을 막을 수 있습니까? – BradC

+0

테스트 후 : db_denydatareader를 할당하면 이러한 다른 쿼리가 금지되지만 @@ version 쿼리는 계속 허용됩니다. – BradC

+0

나는 이런 종류의 액세스를 거부하는 것을 조심스럽게 생각합니다. SQL 2005 이상에서는 사용자 데이터베이스에 대한 액세스를 거부 할 수 있지만 마스터 액세스를 거부하면 큰 영향을받을 수 있습니다. – gbn

0

SQLPing을 고려하십시오.

인용구 : "SQLPing은 모든 종류의 인증없이 SQL Server 2000 설치의 연결에 대한 자세한 정보를 검색하는 데 사용할 수 있습니다."

또는 Google에서 직접 SQLPing을 수행하십시오. 나는 같은 이름의 몇 가지 다른 유틸리티를 보았습니다.

0

tempdb 데이터베이스에 대한 권한 만 있으면됩니다. 이 데이터베이스는 모든 서버와 모든 버전에 존재해야합니다.

이렇게하면 하트 비트 검사를 위해 다른 데이터베이스에 액세스 할 필요가 없으므로 감사 요구 사항이 충족되는지도 확인합니다.

관련 문제