2014-12-15 3 views
0

내 프로그램에서 새 데이터베이스를 만든 다음 이전 데이터베이스의 데이터와 사용자를 모두 복사해야합니다. 올바른 데이터베이스 소유자를 얻는 방법?

내가 로그인 이름 난 다른 대답을 얻을 sa와 사용자 dbo이 데이터베이스의

Select suser_sname(owner_sid) 
from sys.databases 
where name = '.....' 

을 사용하여 기존 데이터베이스에서 데이터베이스 소유자를 얻으려면.

일부 데이터베이스는 sa을 반환하지만 일부 다른 데이터베이스는 Windows 인증 (me)으로 사용자를 반환하지만 SA 만 필요합니다.

누군가 내게 왜, 어떻게 고칠 수 있습니까?

감사합니다.

+0

문제가 해결되지 않아 문제가 명확하지 않거나 잘못된 질문 일 수 있습니다. 당신은 소유자를 얻고 일부 DB는 SA이고 다른 DB는 다른 사람입니다. 왜 당신은 오직/항상 SA를 얻고 싶습니까? 소유자가 SA가 아니라면 SA를 얻지 못할 것이며 이것이 맞습니다. 너의 기대처럼 보이는 (주인은 항상 SA 다) 맞지 않아. – Paolo

+0

문제는 dbo 사용자 로그인 이름을 보면 (모든 모든 데이터베이스에 대해) sa라는 것입니다. 그러나 내가 사용하는 경우 – Elena

+0

from sys.databases where name = '.....' 때로는 'SA'가되며 때로는 Windows 인증을 사용하는 사용자가 있습니다. susmer_sname (owner_sid) 시드 스는 다르다. – Elena

답변

1

수정해야 할 부분은 무엇입니까?

올바른 쿼리 (Select suser_sname(owner_sid) from sys.databases where name =...)를 사용하면 얻고 자하는 것이 정확히 전달됩니다. 데이터베이스 소유자는 데이터베이스를 작성한 원래 로그인 (통합 인증을 사용할 경우 Windows 사용자)입니다. 이 정보는 데이터베이스 이동 (첨부, 복원)을 통해 전달됩니다.

+0

실제로 다른 데이터베이스 이름으로 복원하는 경우 데이터베이스를 복원해도 원래 데이터베이스 소유자가 수행되지 않는지 확인할 수 있습니다. 원래 데이터베이스를 복원하는 경우에만 (예 :'WITH REPLACE'). –

+0

답장을 보내 주셔서 감사합니다! 고객 데이터베이스를 복원하면이 데이터베이스의 db_Owner가된다는 의미입니까? – Elena

관련 문제