VS DB 프로젝트로 가져온 후 "사용자에게 확인되지 않은 참조"


11

기존 SQL Server 2008r2 프로덕션 데이터베이스를 VS 2013 데이터베이스 프로젝트로 가져 왔습니다.

이제 줄을 따라 많은 오류가 발생합니다.

Error       SQL71501: User: [mydbuser] has an unresolved reference to Login [mydbuser].

사용자를 관리하기 위해 VS DB 프로젝트가 실제로 필요하지는 않지만 배치시 사용자를 제거하려고하면 걱정할 것입니다.

파일 자체는 다음과 같이 생성됩니다

CREATE USER [mydbuser] FOR LOGIN [mydbuser];

또는

CREATE USER [mydomainuser] FOR LOGIN [MYDOMAIN\mydomainuser];

오류 마커는 특별히 Login 전용임을 나타냅니다 . 그것이 시스템 수준의 객체이므로 db 프로젝트의 범위를 벗어난 것으로 이해할 수 있습니다.

내가 그들 모두를 바꾸는 것이 바람직합니까?

CREATE USER [mydbuser] WITHOUT LOGIN;

또는 CREATE LOGIN각 파일의 시작 부분에 절을 추가 하시겠습니까?

로그인 참조를 제거하는 것이 더 간단 해 보이고 사용자를 완전히 제거하는 것이 가장 간단합니다.

도구를 원래대로 사용하고 있는지 확인하고 싶습니다. 프로덕션으로 다시 게시하는 데 문제가 있습니까? 프로젝트를 통해 사용자 / 로그인을 추가하는 올바른 절차는 무엇입니까?


1
방금 모든 사용자에게 해당되는 것은 아니라는 것을 알았습니다. 그들은 모두 SQL 사용자였으며 일부는 비활성화되었습니다 (다른 사람은 그렇지 않음). 차이점을 찾기 시작할 아이디어가 있습니까?
Greg

답변:


9

가장 쉬운 방법은 ssdt를 통해 사용자를 관리하지 않는 것입니다 (대부분의 사람들은 그렇지 않습니다). 따라서 당신은 그것들을 제거하고 로그인이나 사용자를 배포하지 않을 수 있습니다.

세 가지 방법이 있습니다.

  • 사용자 / 로그인을 무시하는 새로운 옵션
  • 배포 기여자를 작성하여 꺼내십시오.
  • 내 배포 기고자 사용 http://agilesqlclub.Codeplex.com

에드


여기 링크도 꽤 도움이되었습니다 : blogs.msdn.com/b/ssdt/archive/2015/02/23/…
Greg Greg

1
"사용자 / 로그인을 무시하는 새로운 옵션"에 대해 자세히 설명해 주시겠습니까?
Yawar Murtaza


9

나는 같은 문제가 있었고이 링크를 발견했다.

사용자가 로그인에 대한 참조를 확인할 수 없습니다

응용 프로그램 별 로그인 (필수)을 작성하면 솔루션을 빌드 할 때이 오류가 발생합니다. 이 오류를 해결하려면 스키마 비교를 수행 할 때 (데이터베이스 프로젝트를 마우스 오른쪽 단추로 클릭하여 스키마 비교를 찾을 때) 옵션 (위의 톱니 바퀴 아이콘)에 '비 애플리케이션 범위'오브젝트 유형 포함을 선택하십시오. 그런 다음 로그인을 일반 프로젝트로 가져 오면 참조가 정렬됩니다. 참고 : Object Types (개체 유형) 탭을 클릭하고 대화 상자를 닫은 경우 (응용 프로그램 범위)가 강조 표시 될 때까지 Tab 키를 사용하고 아래쪽 화살표를 눌러 Non-Application-scoped (비 응용 프로그램 범위)를 강조 표시 한 다음 스페이스 바. 이제 확인을 클릭하고 로그인을 볼 수 있습니다.


1
답변 주셔서 감사합니다! 이 지시 사항에 대한 컨텍스트를 제공 할 수 있습니까? 예를 들어 스키마 비교는이 오류와 어떤 관련이 있습니까? 객체 유형 탭은 어디에 있습니까? 탭 키는 어디에서 쳤습니까? 기타
Jake

확실한. 기본적으로 VS2013 / 2015에는 사용중인 솔루션에 대한 모든 SQL이 포함 된 데이터베이스 프로젝트가 있습니다. 해당 DB 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "스키마 비교"를 클릭하면 프로젝트의 내용과 데이터베이스의 내용을 비교할 수 있습니다. 팝업 창 상단에는 설정에 대한 톱니 바퀴 아이콘이 있습니다. 어떤 이유로 마우스를 사용하여 "응용 프로그램이 아닌"확인란을 클릭 할 수 없으므로 대신 탭 키를 사용하십시오. Tab 키를 한 번 누른 다음 화살표 키를 누른 다음 스페이스 바를 눌러 선택하십시오. 희망이 도움이됩니다.
SpeedOfSpin

1

분명히이 문제는 여전히 VS2017 데이터베이스 프로젝트에서도 발생합니다.

먼저 로그인을 만든 다음 사용자를 생성하여 문제를 해결했습니다.

    -- Windows Account
    CREATE LOGIN [Domain\Username]
    FROM WINDOWS WITH DEFAULT_LANGUAGE = [us_english];

    GO

    CREATE USER [Domain\Username] FOR LOGIN [Domain\Username];
    GO

    -- Sql Acccount

    CREATE LOGIN [sql_account] WITH PASSWORD = 'Ch@ngeth1spA$swurD'
    GO

    CREATE USER [sql_account]
    FROM LOGIN [sql_account]
    WITH DEFAULT_SCHEMA = dbo

    GO


    -- Then set the sql file Build Action to "Build"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.