2010-06-16 3 views
0

우리는 RDBMS로 SQL Server 2008을 사용하며 dbo 대신 소유자가 다른 데이터베이스가 있습니다.저장 프로 시저를 찾을 수 없습니다.

소유자가 언급되지 않은 한 저장 프로 시저가 실행될 수없는 한 시스템에 문제가 있습니다.

우리가이 사용자를 사용하여 우리의 데이터베이스에 연결하고 다음 실행하려고하면 :

exec ourSP 

우리가 "ourSP를 찾을 수 없습니다"오류가 발생하지만,이 잘 작동 :

exec user.ourSP 

합니까를 그런 이상한 행동으로 이끌 수있는 것이 무엇인지 아는 사람이 있습니까?

+1

"사용자"로 데이터베이스에 연결되어 있는데 보이지 않는 것을 말하고 있습니까? 연결을 통해 간단한 테스트를 수행하여 SELECT USER_NAME()을 호출하여 자신이 생각하는 방식으로 연결되어 있는지 확인하십시오 (또는 SQL 프로파일 러에서 확인하십시오) –

+0

'user'로 로깅 했음에도 불구하고 'SELECT USER_NAME()은'dbo '를 반환하지만 이것이 가능할 수있는 방법을 알지 못합니다. 자동 로그인 문제를 해결하기 위해 sp_change_users_login을 실행했지만 아무 것도 변경되지 않았습니다. – Beatles1692

답변

0

사용자가 보안 영역에서 SysAdmin으로 선택되면 데이터베이스에 연결될 때 dbo 사용자 이름이 표시되며 dbo처럼 취급됩니다.

0

검사와의 연결이 이루어지는되는 사용자의 기본 스키마 - 아마도

select default_schema_name from sys.database_principals where name = '~user_name~' 

객체가 사용자의 기본 스키마 다음 DBO에서 검색하는 쿼리를 사용. 두 번째 쿼리에서와 마찬가지로 명시 적으로 이름을 지정하지 않으면 다른 스키마가 고려되지 않습니다.

이 기준에서 a) 사용자가 올바르게 설정되지 않았거나 b) 예상 한 사용자로 연결하지 않았을 수 있습니다.