Sql Server 권한에서 AD 보안 그룹을 새로 고치는 방법


12

Small Business Server 2003에서 Sql Server 2008을 사용하고 있습니다. 클라이언트가 WinXP를 사용하고 있습니다.

Active Directory 보안 그룹에 사용자를 추가했습니다. 이 사용자가 데이터베이스에 즉시 액세스 할 수없는 이유는 무엇입니까? Sql Server에서 사용자가 인식되기까지 지연이있는 것 같습니다.

Sql Server에서 개별 사용자를 추가 할 필요가 없도록 명시 적으로 권한에 AD 보안 그룹을 사용하고 있습니다. 따라서 효과적으로 액세스 권한을 부여하기 위해 AD 보안 그룹에 사용자를 추가하는 것 외에는 아무것도 할 필요가 없습니다.

그러나 어떤 이유로 Sql Server는 추가 사항을 즉시 인식하지 못합니다. 나는 이것을 여러 번 보았다. 그룹에 사용자를 추가했지만 다음 날까지 해당 사용자는 데이터에 액세스 할 수 없습니다. 실시간으로 Active Directory를 쿼리하지 않는 것 같습니다. 그 사실을 확인할 수 있습니까?

Sql Server가 Active Directory의 사용자 목록을 "새로 고치려면"어떻게해야합니까?


SQL Server 2008 Management Studio에서 보안 그룹을 사용하여 서버 로그인을 추가했고 데이터베이스에서 해당 로그인에 매핑 된 사용자를 만들었습니다. 잘 작동합니다!
D_Bester

그러나 보안 그룹에 새 사용자를 추가 한 후 지정된 데이터베이스에 액세스 할 수 없습니다. 해당 사용자는 다른 그룹을 사용하여 서버에 액세스 할 수 있으므로 Sql Server에 대한 연결 테스트만으로도 제대로 작동했습니다. 사용자 (컴퓨터)의 Sql Server에 대한 연결을 추가하고있었습니다. 데이터베이스를 지정할 때 데이터베이스를 사용할 수 없다고 말하고 싶었습니다.
D_Bester

다양한 도메인 컨트롤러 스팟 검사 필자는 15 분 후에 복제가 실제로 완료된 것을 알지만 SQL은 새 사용자를 AD 그룹으로 무시합니다. SQL Server를 다시 시작하면 문제가 해결되므로 24 시간 동안 대기합니다. 더 나은 방법이어야합니다.
Aaron Auseth

답변:


12

사용자는 워크 스테이션에서 로그 오프 한 후 다시 로그온해야합니다. 그렇기 때문에 다음날 변경 사항이 적용되는 것으로 보입니다. 그 이유는 사용자가 다음 날에 로그온하면 도메인 컨트롤러에서 새 토큰을 가져오고이 토큰에는 구성원 인 도메인 그룹 목록이 포함되기 때문입니다. 도메인 그룹 목록이있는이 토큰은 사용자가 컴퓨터에 로그인 할 때만 업데이트되므로 사용자가 로그 아웃하지 않은 경우 토큰이 업데이트되지 않습니다.

도메인 컨트롤러가 서로 다른 물리적 위치에있는 경우 고려해야 할 다중 사이트 도메인 복제 지연도 있습니다.


1
워크 스테이션에서 AD 토큰을 "새로 고침"하여 사용자가 이제 새 도메인 그룹의 구성원임을 "알아서"지연을 피할 수있는 명령 또는 스크립트가 있습니까? -업데이트 : 한 사람 klist purgedba.stackexchange.com/a/44922/29371 에서 권장 한 것처럼 보이지만 사용자가 다시 설정 / 연결해야하는 다른 캐시 된 리소스 접근 자를 손상시킬 수 있다는 경고가 있습니다.
NateJ

@mrdenny 서비스 계정에서이를 처리하는 방법에 대한 권장 사항이 있습니까? 우리는 모든 SQL 인스턴스를 서비스 계정으로 실행하고이 서비스 계정을 사용하여 SQL Server 간 연결 및 SSRS 등에 사용합니다. 언제든지 컴퓨터간에 많은 연결이 있습니다. 우리는 모든 연결을 실제로 끊을 수 없으며 새로운 AD 그룹 정보를 얻기 위해 어딘가에 새로 로그인 할 수 없습니다.
SomeGuy

서비스 계정의 경우 새 권한이 필요한 시스템에서 서비스를 다시 시작할 수 있습니다.
mrdenny

5

사용자가 로그온하면 그룹 구성원에 대한 모든 정보가 포함 된 보안 토큰이 할당됩니다.

이 토큰은 사용자가 AD에서 그룹 구성원 자격을 변경 한 경우에도 로그 오프 할 때까지 지속됩니다. 변경 사항은 다음에 사용자가 로그온하고 새 보안 토큰을받을 때만 적용됩니다.

예를 들어 파일 시스템에 대한 권한을 할당 할 때 동일한 시나리오를 재현 할 수 있습니다. 그것은 SQL Server의 행동이 아닌 AD의 행동입니다.


1

따라서 다음과 같은 cmd / script를 실행하면 매번 새로운 자격 증명을 얻을 수 있습니다.

runas /netonly /user:domain\username "sqlcmd -S serverName -d dbname -q \"insert into testpermissions values (65)\""

cmd.exe를 사용하여 (powershell이 ​​아니므로 따옴표를 올바르게 찾을 수 없습니다).

그렇게하면 매번 새로운 토큰을 얻을 수 있습니다 (단, 암호를 입력해야합니다). 너무 성가신 경우 저장된 암호 텍스트로 무언가를 할 수도 있습니다.

어쨌든, 나를 위해 일하고 나는 그것이 다른 누군가를 돕기를 바랍니다.

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