dbA는 유저로 sa,myuserA,myuserB가 있고 myuserA와 myuserB는 모두 dbA의 dbo입니다.
dbB는 유저로 sa,myuserB가 있고 myuserB는 dbB의 dbo입니다.
이상황에서 dbB -> dbA 방향으로 linked server를 연결합니다.
sp_addlinkedserver와 sp_addlinkedsrvlogin(myuserB)가 모두 성공했으며 test connection 도 성공했습니다.
단, 실제로 myuserB로 dbB를 로그인하여 linkedserver를 사용하여 dbA를 접근해보면 권한없음 발생합니다.
이것을 해결하기 위해서는 sp_addlinkedsrvlogin를 mysuerB가 아니라 sa로 해야 합니다.
질문은 myuserB도 dbA의 dbo인데 왜 접근이 않되고 sa로 해야 가능한가입니다.
dbB는 유저로 sa,myuserB가 있고 myuserB는 dbB의 dbo입니다.
이상황에서 dbB -> dbA 방향으로 linked server를 연결합니다.
sp_addlinkedserver와 sp_addlinkedsrvlogin(myuserB)가 모두 성공했으며 test connection 도 성공했습니다.
단, 실제로 myuserB로 dbB를 로그인하여 linkedserver를 사용하여 dbA를 접근해보면 권한없음 발생합니다.
이것을 해결하기 위해서는 sp_addlinkedsrvlogin를 mysuerB가 아니라 sa로 해야 합니다.
질문은 myuserB도 dbA의 dbo인데 왜 접근이 않되고 sa로 해야 가능한가입니다.
Comment 3
-
쓸만한게없네(윤선식)
2013.11.04 15:42
-
꼬까
2013.11.05 10:21
아, 그러니까 로그인과 사용자가 동일한게 아닌 거란 말이죠.
로그인은 윈도우즈 로그인을 포함하는 개념이고 사용자는 dbo와 같이 role을 말하는걸로 이해하면 되나요?
지금 확인해보니, "다음 보안 컨텍스트를 사용하여 연결"로 되어 있습니다.
-
꼬까
2013.11.05 10:27
스택오버플로우에서는 이렇게 정의하는 글이 있네요.
Login은 Server의 접근허가이고
User는 Database의 접근허가이다.
그런데 Login과 User는 1:N 관계다.
http://stackoverflow.com/questions/1134319/difference-between-a-user-and-a-login-in-sql-server
SQL Server 로그인과 데이터베이스 사용자의 개념에 대해 혼돈하시는 것 같습니다.
myuserA와 myuserB가 데이터베이스의 db owner라고 해도 sa는 아니겠지요.
그렇다면 Linked Server 설정에서 로그인을 어떻게 하셨나요?
1. 로컬과 원격 매핑하셨나요? 그렇다면 매핑한 계정으로 로그인해서 원격서버 연결 테스트 해 보셨는지요?
2. 혹시 "로그인의 현재 보안 컨텍스트를 사용하여 연결"하셨는지요? 그렇다면, 로그인한 계정을 통해 연결된 서버 로그인을 일일이 테스트해 보셔야 합니다.
3. 만약 원격 연결을 하나의 계정을 사용해서 하시려면 "다음 보안 컨텍스트를 사용하여 연결"해 보세요. 단 해당 계정이 반드시 원격서버에 올바른 로그인 권한이 있어야겠지요.
확인해 보시기 바랍니다.