사용자가 도메인 그룹을 통해 액세스 권한을 부여받은 경우 SQL Server 데이터베이스 액세스가 실패함

사용자가 도메인 그룹을 통해 액세스 권한을 부여받은 경우 SQL Server 데이터베이스 액세스가 실패함

SQL Server 2008 R2(Win2003에서 실행)에서는 도메인 그룹을 통한 로그인에 문제가 있습니다. 로그인 액세스는 서버 인스턴스에 부여되지만 서버의 특정 데이터베이스에는 액세스할 수 없습니다.

SQL 서버 시스템은 AD 도메인의 구성원이지만 도메인 컨트롤러는 아닙니다. 우리는 SQL Server에서 Windows 인증을 사용하고 있습니다.

도메인 그룹에 대한 SQL Server 로그인을 만듭니다. 해당 서버의 데이터베이스 XXX에 대한 사용자 매핑을 설정하고 datareader, datawriter 및 ddladmin 역할을 활성화합니다. 그러면 해당 그룹의 구성원인 도메인 사용자는 SQL Server에 연결할 수 있지만 이 데이터베이스 XXX에는 연결할 수 없습니다. 사용자 "user1"이 연결을 시도하면 "로그인에서 요청한 'XXX' 데이터베이스를 열 수 없습니다. 로그인에 실패했습니다. 'domain\user1' 사용자에 대한 로그인에 실패했습니다."라는 오류가 표시됩니다.

데이터베이스 XXX에 'domain\user1'을 수동으로 추가하고 데이터 판독기, 데이터 기록기 역할을 활성화하면 user1은 연결하는 데 문제가 없습니다.

흥미롭게도 user1은 동일한 서버에 있는 2개의 다른 데이터베이스에 연결할 수 있습니다. 여기서도 AD 도메인 그룹을 통해 연결할 수 있지만 이전에 생성된 다른 그룹이며 사용자는 해당 데이터베이스의 사용자로 개별적으로 설정되지 않습니다. 이러한 데이터베이스는 모두 분리-연결을 통해 이전 SQL Server 2005 설치에서 복사되었으며 SQL-2005에서 제대로 작동했고 현재 해당 SQL-2008 R2 서버에서도 잘 작동합니다. (문제가 있는 데이터베이스 XXX의 DB 속성에 소유자와 동일한 사용자 계정이 표시됩니다.)

데이터베이스 XXX는 해당 R2 서버에 생성된 새 데이터베이스이며 AD 도메인 그룹도 새 데이터베이스입니다.

지금은 해결 방법으로 사용자를 수동으로 추가할 수 있지만 이 방법은 영원히 작동하지 않으며 여기서 무엇이 잘못되었는지에 대한 힌트가 필요합니다. 추가 데이터 - SQL Server 서비스는 도메인 관리자 계정에서 실행됩니다.

SQL Server 2005의 이와 똑같은 문제를 설명하는 기사를 찾았습니다.https://connect.microsoft.com/SQLServer/feedback/details/248615/login-fails-when-user-is-granted-access-via-a-domain-group 하지만 이는 2006년의 내용으로 해결책에 대한 단서가 없으며 문제가 해결되었다고 가정해야 합니다.

답변1

추가 사항: SQL Server를 도메인 관리자로 실행하는 것은 모범 사례가 아닙니다. 권한이 없는 도메인 사용자로 SQL을 실행하는 것을 고려할 수 있습니다.

분리/연결을 통해 이동된 데이터베이스에 액세스할 수 있는 사용자의 경우 SID는 데이터베이스와 함께 이동합니다.

동작을 기준으로 추측해야 한다면 SQL이 그룹 구성원을 결정하는 데 문제가 있거나 데이터베이스 자체에 대한 권한이 누락되었다고 말할 수 있습니다.

특정 데이터베이스에 대한 자세한 정보를 확인 SELECT * FROM sys.database_principals하고 도메인 그룹이 있는지 확인할 수 있습니다.

답변2

제가 추측해야 한다면, 귀하의 사용자는 e SQL 로그인으로 사용 중인 그룹에 추가된 후 로그오프했다가 다시 로그온하지 않습니다. 사용자의 액세스 토큰은 해당 사용자가 워크스테이션에서 로그오프했다가 다시 로그온할 때까지 새 그룹 멤버십으로 업데이트되지 않습니다. 이는 이전 그룹이 작동하지만 테스트 중인 새 그룹이 작동하지 않는 이유를 설명합니다.

관련 정보