설명
SQL Server의 contained database authentication은 서버 로그인과 별도로 데이터베이스 안에서 사용자를 인증할 수 있게 합니다. 이 기능을 사용하면 데이터베이스의 사용자 관리 권한도 접근 통제의 일부가 됩니다.
잠재적 영향
데이터베이스 사용자 생성 권한이 넓으면 서버 수준의 로그인 관리 밖에서 접근 권한이 부여될 수 있습니다.
해결 방법
이 인증 방식이 필요하지 않으면 settings.database_flags에서 contained database authentication을 off로 설정하세요. 변경 전에 기존 포함된 데이터베이스 사용자와 애플리케이션 의존성을 확인하세요. 필요한 경우 사용자 생성 권한을 제한하세요.
예시
다음 발췌 예시는 기능이 필요하지 않은 인스턴스에서 인증 플래그를 끄는 구성을 보여줍니다. 다른 필수 인스턴스 설정은 생략했습니다.
변경 전
hcl
resource "google_sql_database_instance" "sqlserver_instance" {
name = "sqlserver-instance"
database_version = "SQLSERVER_2017_EXPRESS"
region = "us-central1"
settings {
database_flags {
name = "contained database authentication"
value = "on"
}
}
}
변경 후
hcl
resource "google_sql_database_instance" "sqlserver_instance" {
name = "sqlserver-instance"
database_version = "SQLSERVER_2019_STANDARD"
region = "us-central1"
settings {
database_flags {
name = "contained database authentication"
value = "off"
}
}
}