1

나는 불타고있는 문제를 해결하려고 노력하고 있으며 성공하지 못한 채 마지막 날을 보냈습니다. SQL Server 2008, 하나의 데이터베이스 및 하나의 저장 프로 시저를 실행하는 데이터베이스 서버가 있습니다.MS SQL Server - 데이터베이스 Sysobject 테이블에 사용 권한이 없습니다?

IF EXISTS 
(
SELECT * 
FROM dbo.sysobjects 
WHERE id = OBJECT_ID('<StoredProcedureNameHere>') 
AND OBJECTPROPERTY(id, N'IsProcedure') = 1 
) 
BEGIN 
    -- Do something here 
END 

이제 문제가 : 나는 조사를 받고 저장 프로 시저를 실행하는 관리 Studio 스크립트에서 쿼리를 실행하면

가 올바른 작동

저장 프로 시저의 논리는 다음과 같은 문장을 포함 "- 여기 뭔가를하십시오"논리를 실행합니다. 그러나 웹 서비스에서 호출 된 것과 정확히 동일한 저장 프로 시저가 작동하지 않습니다. IF EXISTS (---) 블록 전체를 테스트 할 수 없게되고 검색된 정보가 올바른 것입니다.

내 예비 결론 데이터베이스 (및 sysobject 테이블)를 통해 내 사용자 계정에 대해 구성된 권한 설정이 있어야합니다 (즉, 제 위치에없는 정보를 성공적으로 가져올 수 있음). 데이터베이스에 액세스하기 위해 웹 서비스에서 사용하는 사용자 계정

아무도 내가이 작업을하기 위해 검증해야하는 표준 설정을 알고 있습니까?

힌트 - 데이터베이스 및 웹 서비스 구성 요소 모두 완벽하게 작동했습니다. 이러한 종류의 문제는 데이터베이스 서버가 손상되고 운영 팀이 데이터베이스 서버를 다시 작성해야하는 직후에 발생하기 시작했습니다. 데이터베이스의 상태에 대해 묻자, 그들은 데이터베이스를 백업 할 수 있고 새로운 서버가 빌드 된 직후 복원 된 상태로 작동해야한다고 말했다.

모든 도움을 주시면 대단히 감사하겠습니다. 작업 팀이 도메인 계정에 대한 구성을 알아 낸 후 Fortunatelly 문제가 웹 서비스에 의해 사용되는 밖으로 지워졌습니다

덕분에,

+1

thw webservice에서 사용하는 계정의 사용 권한을 실제로 확인 했습니까? –

+0

그게 좀 이상 해요 ... 난 storedprocs 자신의 권한 (SQLAgent?)에서 실행, 따라서 어떤 계정을 실행에 관계없이 동일한 실행해야한다고 생각. 내 생각은 전체 테이블 이름을 지정하는 것입니다. server.msdb.dbo.sysobjects - 질문에 대답해야합니다. 대답은 – Twelfth

+0

입니다. 1) 웹 서비스에서 web.config에 연결 문자열을 지정할 수 있습니다. - 또는 연결 문자열이 어플 리케이션에 있어야합니다. 2) 연결 문자열 (SSPI)에 사용자 이름/암호가 지정되어 있지 않으면 웹 서비스를 실행하는 Windows 사용자를 사용하여 연결합니다.이 경우 IIS를 조사해야합니다. –

답변

0

잘못되었습니다. 구성 위키 페이지가 단계별로 뒤따를 것이라면 문제가되어서는 안되는 무언가를 찾고있는 며칠 (모든 문서가 없을 때 모두 불평하지만 사용 가능할 때는 전혀 사용되지 않습니다).

어쨌든 동일한 문제가있는 경우 저장 프로 시저를 실행할 충분한 권한이 사용자 정보에 있는지 확인하십시오.

희망이 있으면 다른 사람에게 도움이됩니다.

감사합니다.