다음을 통해 공유


SQL 취약성 평가 규칙 참조 가이드

이 문서에서는 보안 취약성에 플래그를 지정하고 잘못된 구성, 과도한 권한과 같은 모범 사례의 편차를 강조하는 데 사용되는 기본 제공 규칙 세트를 제공합니다. 규칙은 Microsoft의 모범 사례를 기반으로 하고 데이터베이스와 중요한 데이터에 가장 큰 위험을 제공하는 보안 문제에 초점을 맞춥니다. 데이터베이스 수준 문제뿐 아니라 서버 방화벽 설정 및 서버 수준 권한과 같은 서버 수준 보안 문제도 다룹니다. 또한 이러한 규칙은 규정 준수 표준을 충족하는 다양한 규정 본문의 여러 요구 사항을 나타냅니다.

적용 대상: Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics SQL Server(지원되는 모든 버전)

데이터베이스 검색에 표시되는 규칙은 검색된 SQL 버전 및 플랫폼에 따라 달라집니다.

Azure에서 취약성 평가를 구현하는 방법에 대한 자세한 내용은 취약성 평가 구현을 참조하세요.

이러한 규칙의 변경 목록은 SQL 취약성 평가 규칙 변경 로그를 참조 하세요.

규칙 범주

SQL 취약성 평가 규칙에는 다음 섹션에 있는 다섯 가지 범주가 있습니다.

1 SQL Server 2012 이상 은 모든 버전의 SQL Server 2012 이상을 나타냅니다.

2 SQL Server 2017 이상 은 모든 버전의 SQL Server 2017 이상을 나타냅니다.

3 SQL Server 2016+은 SQL Server 2016 이상의 모든 버전을 나타냅니다.

인증 및 권한 부여

규칙 ID 규칙 제목 규칙 심각도 규칙 설명 플랫폼
VA1017 모든 사용자(dbo 제외)의 xp_cmdshell에 대한 실행 권한을 취소해야 합니다. 높음 xp_cmdshell 확장 저장 프로시저는 Windows 명령 셸을 생성하고 실행을 위해 문자열을 전달합니다. 이 규칙은 sysadmin 서버 역할의 멤버와 같은 서버 제어 권한이 있는 사용자 이외의 사용자에게 xp_cmdshell 확장 저장 프로시저를 실행할 수 있는 권한이 없는지 확인합니다. SQL Server 2012+1
VA1020 데이터베이스 사용자 게스트는 어떤 역할의 멤버도 아니어야 합니다. 높음 게스트 사용자는 특정 데이터베이스 사용자에게 매핑되지 않은 모든 로그인에 데이터베이스에 대한 액세스를 허용합니다. 이 규칙은 게스트 사용자에게 데이터베이스 역할이 할당되지 않았는지 확인합니다. SQL Server 2012+

SQL Database
VA1042 master, msdbtempdb를 제외한 모든 데이터베이스에 대해 데이터베이스 소유권 체인을 사용하지 않도록 설정해야 합니다. 높음 데이터베이스 간 소유권 체인은 데이터베이스 경계를 넘지 않는다는 점을 제외하고 소유권 체인의 확장입니다. 이 규칙은 master, msdbtempdb를 제외한 모든 데이터베이스에 대해 이 옵션이 사용하지 않도록 설정되어 있는지 확인합니다. master, msdbtempdb의 경우 데이터베이스 간 소유권 체인은 기본적으로 사용하도록 설정됩니다. SQL Server 2012+

SQL Managed Instance
VA1043 주 GUEST는 사용자 데이터베이스에 액세스할 수 없습니다. 중간 GUEST 사용자는 특정 데이터베이스 사용자에게 매핑되지 않은 모든 로그인에 데이터베이스에 대한 액세스를 허용합니다. 이 규칙은 GUEST 사용자가 데이터베이스에 연결할 수 없는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1046 모든 SQL 로그인에 대해 CHECK_POLICY를 사용하도록 설정해야 합니다. 낮음 CHECK_POLICY 옵션을 사용하면 도메인 정책에 대해 SQL 로그인을 확인할 수 있습니다. 이 규칙은 모든 SQL 로그인에 대해 CHECK_POLICY 옵션이 사용하도록 설정되어 있는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1047 모든 SQL 로그인에 대해 암호 만료 확인을 사용하도록 설정해야 합니다. 낮음 암호 만료 정책을 사용하여 암호의 수명을 관리합니다. SQL Server에서 암호 만료 정책을 강제로 적용하면 사용자에게 기존 암호를 변경할 것과 암호가 만료되어 해당 계정을 사용할 수 없게 됨을 알려 줍니다. 이 규칙은 모든 SQL 로그인에 대해 암호 만료 정책이 사용하도록 설정되어 있는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1048 데이터베이스 주체를 sa에 매핑하지 않아야 합니다. 높음 공격자가 sysadmin으로 권한을 승격하기 위해 sa 계정에 매핑되는 데이터베이스 주체를 활용할 수 있습니다. SQL Server 2012+

SQL Managed Instance
VA1052 서버 로그인으로 사용되는 BUILTIN\Administrators 제거 낮음 BUILTIN\Administrators 그룹에는 Windows 로컬 관리자 그룹이 포함되어 있습니다. 이전 버전의 Microsoft SQL Server에서 이 그룹에는 기본적으로 관리자 권한이 있습니다. 이 규칙은 SQL Server에서 이 그룹이 제거되었는지 확인합니다. SQL Server 2012+
VA1053 기본 이름이 sa인 계정의 이름을 바꾸거나 사용하지 않도록 설정해야 합니다. 낮음 sa는 보안 주체 ID가 1인 잘 알려진 계정입니다. 이 규칙은 sa 계정의 이름이 바뀌었거나 계정을 사용하지 않도록 설정했는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1054 개체 또는 열에 대한 PUBLIC 역할에는 과도한 사용 권한을 부여하면 안 됩니다. 낮음 모든 SQL Server 로그인은 PUBLIC 서버 역할에 속합니다. 서버 보안 주체에게 보안 개체에 대한 특정 사용 권한이 부여되지 않았거나 거부된 경우 사용자는 해당 개체에 대해 PUBLIC으로 부여된 사용 권한을 상속 받습니다. 이 규칙은 모든 사용자가 PUBLIC 역할을 통해 액세스할 수 있는 모든 보안 개체 또는 열 목록을 표시합니다. SQL Server 2012+

SQL Database
VA1058 sa 로그인을 사용하지 않도록 설정해야 합니다. 높음 sa는 보안 주체 ID가 1인 잘 알려진 계정입니다. 이 규칙은 sa 계정이 사용하지 않도록 설정되었는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1059 xp_cmdshell을 사용하지 않도록 설정해야 합니다. 높음 xp_cmdshell은 Windows 명령 셸을 생성하고 실행을 위해 문자열로 전달합니다. 이 규칙은 xp_cmdshell이 사용하지 않도록 설정되었는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1067 데이터베이스 메일 XP가 사용되지 않을 때 사용하지 않도록 설정해야 합니다. 중간 이 규칙은 데이터베이스 메일 프로필이 구성되지 않은 경우 데이터베이스 메일이 사용하지 않도록 설정되어 있는지 확인합니다. 데이터베이스 메일은 SQL Server 데이터베이스 엔진에서 메일 메시지를 보내는 데 사용할 수 있으며 기본적으로 사용하지 않도록 설정되어 있습니다. 이 기능을 사용하지 않는 경우 노출 영역을 줄이기 위해 사용하지 않도록 설정하는 것이 좋습니다. SQL Server 2012+
VA1068 서버 권한은 보안 주체에 직접 부여하면 안 됩니다. 낮음 서버 수준 사용 권한은 서버 수준 개체와 연결되어 개체에 대한 액세스 권한을 얻을 수 있는 사용자를 제어합니다. 이 규칙은 로그인에 직접 부여된 서버 수준 권한이 없는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1070 데이터베이스 사용자는 서버 로그인과 동일한 이름을 공유하지 않아야 합니다. 낮음 데이터베이스 사용자는 서버 로그인과 동일한 이름을 공유할 수 있습니다. 이 규칙은 이러한 사용자가 없는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1072 인증 모드는 Windows 인증이어야 합니다. 중간 인증 모드에는 Windows 인증 모드 및 혼합 모드의 2가지 유형이 있습니다. 혼합 모드는 SQL Server에서 Windows 인증 및 SQL Server 인증을 모두 사용하도록 설정함을 의미합니다. 이 규칙은 인증 모드가 Windows 인증으로 설정되어 있는지 확인합니다. SQL Server 2012+
VA1094 데이터베이스 권한은 보안 주체에 직접 부여하면 안 됩니다. 낮음 사용 권한은 보안 가능 개체와 연결되어 개체에 대한 액세스 권한을 얻을 수 있는 사용자를 제어하는 규칙입니다. 이 규칙은 사용자에게 직접 부여된 DB 권한이 없는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1095 PUBLIC 역할에는 과도한 사용 권한을 부여하면 안 됩니다. 중간 모든 SQL Server 로그인은 PUBLIC 서버 역할에 속합니다. 서버 보안 주체에 보안 개체에 대한 특정 사용 권한이 부여되거나 거부되지 않은 경우 사용자는 해당 개체에 대해 공용으로 부여된 사용 권한을 상속합니다. 그러면 PUBLIC 역할에 부여된 모든 사용 권한의 목록이 표시됩니다. SQL Server 2012+

SQL Managed Instance

SQL Database
VA1096 데이터베이스에서 주 GUEST에는 권한을 부여하면 안 됩니다. 낮음 각 데이터베이스에는 GUEST라는 사용자가 포함되어 있습니다. GUEST에게 부여된 권한은 데이터베이스에 대한 액세스 권한이 있지만 데이터베이스에 사용자 계정이 없는 사용자가 상속합니다. 이 규칙은 GUEST 사용자의 모든 권한이 취소되었는지 확인합니다. SQL Server 2012+

SQL Managed Instance

SQL Database
VA1097 주 GUEST에는 개체 또는 열에 대한 사용 권한을 부여하면 안 됩니다. 낮음 각 데이터베이스에는 GUEST라는 사용자가 포함되어 있습니다. GUEST에게 부여된 권한은 데이터베이스에 대한 액세스 권한이 있지만 데이터베이스에 사용자 계정이 없는 사용자가 상속합니다. 이 규칙은 GUEST 사용자의 모든 권한이 취소되었는지 확인합니다. SQL Server 2012+

SQL Managed Instance

SQL Database
VA1099 GUEST 사용자에게 데이터베이스 보안 개체에 대한 사용 권한을 부여하면 안 됩니다. 낮음 각 데이터베이스에는 GUEST라는 사용자가 포함되어 있습니다. GUEST에게 부여된 권한은 데이터베이스에 대한 액세스 권한이 있지만 데이터베이스에 사용자 계정이 없는 사용자가 상속합니다. 이 규칙은 GUEST 사용자의 모든 권한이 취소되었는지 확인합니다. SQL Server 2012+

SQL Managed Instance

SQL Database
VA1246 애플리케이션 역할은 사용하면 안 됩니다. 낮음 애플리케이션 역할은 애플리케이션이 사용자와 같은 자체 사용 권한으로 실행할 수 있도록 설정하는 데이터베이스 보안 주체입니다. 애플리케이션 역할을 사용하면 특정 애플리케이션을 통해 연결하는 사용자만 특정 데이터에 액세스할 수 있습니다. 애플리케이션 역할은 암호 기반(일반적으로 하드코딩하는 애플리케이션) 역할이며, 암호 추측을 통해 데이터베이스를 앱 역할 가장에 노출하는 권한 기반 역할이 아닙니다. 이 규칙은 데이터베이스에 정의된 애플리케이션 역할이 없는지 확인합니다. SQL Server 2012+

SQL Managed Instance

SQL Database
VA1248 사용자 정의 데이터베이스 역할은 고정 역할의 멤버가 아니어야 합니다. 중간 데이터베이스에서 사용 권한을 쉽게 관리하기 위해 SQL Server에서는 다른 보안 주체를 그룹화하는 보안 주체인 다양한 역할을 제공합니다. Microsoft Windows 운영 체제의 그룹과 같습니다. 데이터베이스 계정 및 기타 SQL Server 역할은 데이터베이스 수준 역할에 추가할 수 있습니다. 고정 데이터베이스 역할의 각 멤버는 같은 역할에 다른 사용자를 추가할 수 있습니다. 이 규칙은 사용자 정의 역할이 고정 역할의 멤버가 아닌지 확인합니다. SQL Server 2012+

SQL Managed Instance

SQL Database

Azure Synapse
VA1267 포함된 사용자는 Windows 인증을 사용해야 합니다. 중간 포함된 사용자는 데이터베이스에 존재하며 로그인 매핑을 요구하지 않는 사용자입니다. 이 규칙은 포함된 사용자가 Windows 인증을 사용하는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1280 Public에 부여된 서버 사용 권한은 최소화해야 합니다. 중간 모든 SQL Server 로그인은 PUBLIC 서버 역할에 속합니다. 서버 보안 주체에게 보안 개체에 대한 특정 사용 권한이 부여되지 않았거나 거부된 경우 사용자는 해당 개체에 대해 PUBLIC으로 부여된 사용 권한을 상속 받습니다. 이 규칙은 public에 부여된 서버 권한이 최소화되었는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1282 분리된 역할은 제거해야 합니다. 낮음 분리된 역할은 멤버가 없는 사용자 정의 역할입니다. 분리된 역할은 시스템에 필요하지 않으므로 제거합니다. 이 규칙은 분리된 역할이 있는지 여부를 확인합니다. SQL Server 2012+

SQL Managed Instance

SQL Database

Azure Synapse
VA2020 최소한의 보안 주체 세트에 ALTER 또는 ALTER ANY USER 데이터베이스 범위 권한을 부여해야 합니다. 높음 모든 SQL Server 보안 개체에는 보안 주체에 부여할 수 있는 사용 권한이 연결되어 있습니다. 사용 권한은 서버 수준(로그인 및 서버 역할에 할당) 또는 데이터베이스 수준(데이터베이스 사용자 및 데이터베이스 역할에 할당)에서 범위를 지정할 수 있습니다. 이러한 규칙은 최소한의 보안 주체 집합에만 ALTER 또는 ALTER ANY USER 데이터베이스 범위 권한이 부여되었는지 확인합니다. SQL Server 2012+

SQL Managed Instance

SQL Database

Azure Synapse
VA2033 최소한의 보안 주체 세트에 개체 또는 열에 대한 데이터베이스 범위 EXECUTE 권한을 부여해야 합니다. 낮음 이 규칙은 최소한의 보안 주체 세트에 이 권한이 부여되도록 하기 위해 개체 또는 열에 대해 EXECUTE 권한이 부여된 보안 주체를 확인합니다. 모든 SQL Server 보안 개체에는 보안 주체에 부여할 수 있는 사용 권한이 연결되어 있습니다. 사용 권한은 서버 수준(로그인 및 서버 역할에 할당) 또는 데이터베이스 수준(데이터베이스 사용자, 데이터베이스 역할 또는 애플리케이션 역할에 할당)에서 범위를 지정할 수 있습니다. EXECUTE 권한은 계산 열에 사용할 수 있는 저장 프로시저 및 스칼라 함수 둘 다에 적용됩니다. SQL Server 2012+

SQL Managed Instance

SQL Database

Azure Synapse
VA2103 확장 저장 프로시저에 대한 불필요한 실행 권한은 취소해야 합니다. 중간 확장 저장 프로시저는 SQL Server 인스턴스가 동적으로 로드하고 실행할 수 있는 DLL입니다. SQL Server는 시스템 DLL과의 상호 작용을 허용하는 여러 확장 저장 프로시저와 함께 패키지됩니다. 이 규칙은 확장 저장 프로시저에 대한 불필요한 실행 권한이 취소되었는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA2107 최소 보안 주체 집합은 고정 Azure SQL DB 마스터 데이터베이스 역할의 멤버여야 합니다. 높음 SQL Database는 master 데이터베이스에서 데이터베이스를 만들거나 로그인을 관리할 수 있는 권한을 부여하는 사용자 계정을 추가할 수 있는 두 가지 제한된 관리 역할을 제공합니다. 이 규칙은 최소한의 보안 주체 세트가 이러한 관리 역할의 멤버인지 확인합니다. SQL Database

Azure Synapse
VA2108 최소한의 보안 주체 세트가 높은 영향의 데이터베이스 역할의 멤버여야 합니다. 높음 SQL Server는 사용 권한을 관리하는 데 도움이 되는 역할을 제공합니다. 역할은 다른 보안 주체를 그룹화하는 보안 주체입니다. 데이터베이스 수준 역할은 사용 권한 범위에서 데이터베이스 전체에 적용됩니다. 이 규칙은 최소한의 보안 주체 세트가 고정 데이터베이스 역할의 멤버인지 확인합니다. SQL Server 2012+

SQL Managed Instance

SQL Database

Azure Synapse
VA2109 최소한의 보안 주체 세트가 낮은 영향의 고정 데이터베이스 역할의 멤버여야 합니다. 낮음 SQL Server는 사용 권한을 관리하는 데 도움이 되는 역할을 제공합니다. 역할은 다른 보안 주체를 그룹화하는 보안 주체입니다. 데이터베이스 수준 역할은 사용 권한 범위에서 데이터베이스 전체에 적용됩니다. 이 규칙은 최소한의 보안 주체 세트가 고정 데이터베이스 역할의 멤버인지 확인합니다. SQL Server 2012+

SQL Managed Instance

SQL Database

Azure Synapse
VA2110 레지스트리에 액세스하기 위한 실행 권한을 취소해야 합니다. 높음 레지스트리 확장 저장 프로시저를 사용하면 Microsoft SQL Server가 레지스트리에서 값과 키를 읽고 쓰며 열거할 수 있습니다. 엔터프라이즈 관리자가 서버를 구성하는 데 사용됩니다. 이 규칙은 레지스트리 확장 저장 프로시저를 실행하는 데 필요한 권한이 dbo가 아닌 모든 사용자에게서 취소되었는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA2113 DTS(데이터 변환 서비스) 권한은 SSIS 역할에만 부여해야 합니다. 중간 DTS(데이터 변환 서비스)는 데이터베이스에 대한 추출, 변환 및 로드 작업을 자동화할 수 있도록 하는 개체 및 유틸리티 세트입니다. 개체는 DTS 패키지 및 해당 구성 요소이며, 유틸리티를 DTS 도구라고 합니다. 이 규칙은 SSIS 역할에만 DTS 시스템 저장 프로시저를 사용할 수 있는 권한이 부여되고, PUBLIC 역할이 DTS 시스템 저장 프로시저를 사용하기 위한 권한은 취소되었는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA2114 최소한의 보안 주체 세트가 높은 영향의 고정 서버 역할의 멤버여야 합니다. 높음 SQL Server는 사용 권한을 관리하는 데 도움이 되는 역할을 제공합니다. 역할은 다른 보안 주체를 그룹화하는 보안 주체입니다. 서버 수준 역할은 서버 측 사용 권한 범위에 속합니다. 이 규칙은 최소한의 보안 주체 세트가 고정 서버 역할의 멤버인지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA2129 서명된 모듈의 변경 내용에 대해 권한이 있어야 합니다. 높음 인증서나 비대칭 키를 사용하여 저장 프로시저, 함수 또는 트리거에 서명할 수 있습니다. 이 기능은 권한을 소유권 체인을 통해 상속할 수 없거나 동적 SQL과 같이 소유권 체인이 끊어진 시나리오를 위해 디자인되었습니다. 이 규칙은 서명된 모듈에 대한 변경 내용이 있는지 확인합니다. 이러한 변경 내용이 있으면 악의적으로 사용된 것을 나타낼 수 있습니다. SQL Server 2012+

SQL Database

SQL Managed Instance
VA2130 데이터베이스에 대한 액세스 권한이 있는 모든 사용자를 추적합니다. 낮음 이 확인은 데이터베이스에 액세스할 수 있는 모든 사용자를 추적합니다. 이러한 사용자에게 조직의 현재 역할에 따라 권한이 부여되었는지 확인합니다. SQL 데이터베이스

Azure Synapse
VA2201 자주 사용하는 이름을 이용한 SQL 로그인을 사용하지 않도록 설정해야 합니다. 높음 이 규칙은 자주 사용하는 이름에 대한 데이터베이스 소유자 권한이 있는 계정을 확인합니다. 데이터베이스 소유자 권한이 있는 계정에 자주 사용하는 이름을 할당하면 무차별 암호 대입 공격이 성공할 가능성이 높아집니다. SQL Server 2012+

감사 및 로깅

규칙 ID 규칙 제목 규칙 심각도 규칙 설명 플랫폼
VA1045 기본 추적을 사용하도록 설정해야 합니다. 중간 기본 추적 기능은 데이터베이스 관리자가 처음 문제 발생 시 문제 진단에 필요한 로그 데이터를 가지고 있는지 확인하여 문제를 해결하도록 도와 줍니다. 이 규칙은 기본 추적이 사용하도록 설정되어 있는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1091 '로그인 감사'가 로그인을 추적하도록 설정된 경우 성공한 로그인 시도와 실패한 로그인 시도에 대한 감사(기본 추적)를 사용하도록 설정해야 합니다. 낮음 SQL Server 로그인 감사 구성을 사용하여 관리자는 SQL Server 인스턴스에 로그인하는 사용자를 추적할 수 있습니다. 사용자가 '로그인 감사'를 사용하여 SQL Server 인스턴스에 로그인하는 사용자를 추적하도록 선택하는 경우 성공 및 실패한 로그인 시도 둘 다에 대해 사용하도록 설정하는 것이 중요합니다. SQL Server 2012+
VA1093 오류 로그의 최대 개수는 12개 이상이어야 합니다. 낮음 각 SQL Server 오류 로그에는 SQL Server를 마지막으로 다시 시작한 이후 또는 마지막으로 오류 로그를 재활용한 이래로 발생한 실패/오류와 관련 된 모든 정보가 표시됩니다. 이 규칙은 최대 오류 로그 수가 12개 이상인지 확인합니다. SQL Server 2012+
VA1258 데이터베이스 소유자가 필요합니다. 높음 데이터베이스 소유자는 데이터베이스에서 모든 구성 및 유지 관리 작업을 수행할 수 있고 SQL Server에서 데이터베이스를 삭제할 수도 있습니다. 추적 데이터베이스 소유자는 일부 보안 주체에 대해 과도한 사용 권한을 방지하는 것이 중요합니다. 데이터베이스에 대해 예상되는 데이터베이스 소유자를 정의하는 기준선을 만듭니다. 이 규칙은 데이터베이스 소유자가 기준에 정의되어 있는지 여부를 확인합니다. SQL Server 2016+3

SQL Database

Azure Synapse
VA1264 성공 및 실패한 로그인 시도의 감사를 모두 사용하도록 설정해야 합니다. 낮음 SQL Server 감사 구성을 사용하여 관리자는 담당하는 SQL Server 인스턴스에 로그인하는 사용자를 추적할 수 있습니다. 이 규칙은 성공 및 실패한 로그인 시도 둘 다에 대해 감사가 사용하도록 설정되어 있는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1265 포함된 DB 인증에 대한 성공 및 실패한 로그인 시도의 감사를 둘 다 사용하도록 설정해야 합니다. 중간 SQL Server 감사 구성을 통해 관리자는 담당하는 SQL Server 인스턴스에 로그인하는 사용자를 추적할 수 있습니다. 이 규칙은 포함된 DB 인증에 대한 성공 및 실패한 로그인 시도 둘 다에 대해 감사가 사용하도록 설정되어 있는지를 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1281 사용자 정의 역할에 대한 모든 멤버 자격이 의도되어야 합니다. 중간 사용자 정의 역할은 보안 주체를 그룹화하여 사용 권한을 쉽게 관리하기 위해 사용자가 정의하는 보안 주체입니다. 과도한 사용 권한을 방지하려면 이러한 역할을 모니터링하는 것이 중요합니다. 각 사용자 정의 역할의 예상 멤버 자격을 정의하는 기준을 만듭니다. 이 규칙은 사용자 정의 역할에 대한 모든 멤버 자격이 기준에 정의되어 있는지 여부를 확인합니다. SQL Server 2012+

SQL Managed Instance

SQL Database

Azure Synapse
VA1283 시스템에 활성 감사가 하나 이상 있어야 합니다. 낮음 SQL Server 데이터베이스 엔진 또는 개별 데이터베이스의 인스턴스를 감사하는 작업에는 데이터베이스 엔진에서 발생하는 이벤트를 추적하고 기록하는 작업이 포함됩니다. SQL Server Audit 개체는 사용자가 모니터링하려는 서버 또는 데이터베이스 수준 동작 및 동작 그룹에 대한 하나의 인스턴스를 수집합니다. 이 규칙은 시스템에 활성 감사가 하나 이상 있는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA2061 서버 수준에서 감사를 사용하도록 설정해야 합니다. 높음 Azure SQL Database 감사는 데이터베이스 이벤트를 추적하고 Azure Storage 계정의 감사 로그에 이벤트를 기록합니다. 감사는 규정 준수를 충족하는 데 도움이 될 뿐 아니라, 데이터베이스 작업을 이해하고, 비즈니스 문제나 의심스러운 보안 위반을 나타낼 수 있는 불일치 및 이상 활동을 파악하는 데 유용할 수 있습니다. 자세한 내용은 Azure SQL 감사를 참조하세요. 이 규칙은 감사가 사용하도록 설정되어 있는지 확인합니다. SQL Database

Azure Synapse

데이터 보호

규칙 ID 규칙 제목 규칙 심각도 규칙 설명 플랫폼
VA1098 기존 SSB 또는 미러링 엔드포인트에는 AES 연결이 필요합니다. 높음 Service Broker 및 미러링 엔드포인트는 암호화 없음을 비롯한 다른 암호화 알고리즘을 지원합니다. 이 규칙은 기존 엔드포인트에서 AES 암호화가 필요한지를 확인합니다. SQL Server 2012+
VA1219 투명한 데이터 암호화를 사용하도록 설정해야 합니다. 중간 TDE(투명한 데이터 암호화)는 애플리케이션에 대한 변경 요구 없이 데이터베이스, 연결된 백업 및 ‘미사용’ 트랜잭션 로그 파일에 대한 실시간 암호화 및 암호 해독을 수행하여 정보 노출로부터 데이터베이스 파일을 보호하는 데 유용합니다. 이 규칙은 데이터베이스에서 TDE가 사용하도록 설정되어 있는지 확인합니다. SQL Server 2012+

SQL Managed Instance

SQL Database

Azure Synapse
VA1220 TDS를 사용하는 데이터베이스 통신은 TLS를 통해 보호해야 합니다. 높음 Microsoft SQL Server에서는 SSL(Secure Sockets Layer) 또는 TLS(전송 계층 보안)를 사용하여 SQL Server 인스턴스와 클라이언트 애플리케이션 간에 네트워크를 통해 전송되는 데이터를 암호화할 수 있습니다. 이 규칙은 SQL Server에 대한 모든 연결이 TLS를 통해 암호화되었는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1221 데이터베이스 암호화 대칭 키는 AES 알고리즘을 사용해야 합니다. 높음 SQL Server에서는 암호화 키를 사용하여 데이터, 자격 증명 및 서버 데이터베이스에 저장된 연결 정보의 보안을 유지할 수 있습니다. SQL Server에는 대칭과 비대칭의 두 유형의 키가 있습니다. 이 규칙은 데이터베이스 암호화 대칭 키가 AES 알고리즘을 사용하는지 확인합니다. SQL Server 2012+

SQL Managed Instance

SQL Database

Azure Synapse
VA1222 셀 수준 암호화 키는 AES 알고리즘을 사용해야 합니다. 높음 CLE(셀 수준 암호화)를 사용하여 대칭 및 비대칭 키를 통해 데이터를 암호화할 수 있습니다. 이 규칙은 셀 수준 암호화 대칭 키가 AES 알고리즘을 사용하는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1223 인증서 키는 2048비트 이상을 사용해야 합니다. 높음 인증서 키는 RSA 및 기타 암호화 알고리즘에서 데이터를 보호하는 데 사용됩니다. 이러한 키의 길이는 사용자의 데이터를 보호하는 데 충분해야 합니다. 이 규칙은 키의 길이가 모든 인증서에 대해 2048비트 이상인지 확인합니다. SQL Server 2012+

SQL Managed Instance

SQL Database

Azure Synapse
VA1224 비대칭 키의 길이는 2048비트 이상이어야 합니다. 높음 데이터베이스 비대칭 키는 여러 암호화 알고리즘에서 사용됩니다. 이러한 키는 암호화된 데이터를 보호하기에 충분한 길이여야 합니다. 이 규칙은 데이터베이스에 저장된 모든 비대칭 키의 길이가 2048비트 이상인지 확인합니다. SQL Server 2012

SQL Server 2014

SQL Database
VA1279 TDS에 대해 강제 암호화를 사용하도록 설정해야 합니다. 높음 데이터베이스 엔진에 대한 강제 암호화 옵션을 사용하도록 설정하는 경우 '연결 암호화' 옵션(예: SSMS)의 선택 여부에 관계 없이 클라이언트와 서버 간의 모든 통신은 암호화됩니다. 이 규칙은 암호화 강제 사용 옵션이 사용되도록 설정되어 있는지 확인합니다. SQL Server 2012+
VA2060 서버 수준에서 SQL 위협 검색을 사용하도록 설정해야 합니다. 중간 SQL 위협 검색은 SQL 삽입 공격 및 비정상적인 동작 패턴과 같은 데이터베이스의 잠재적 취약성 및 변칙 활동을 검색하는 보안 계층을 제공합니다. 잠재적 위협이 검색되면 위협 탐지는 이메일을 통해 Microsoft Defender for Cloud에서 실행 가능한 실시간 경고를 전송하며 여기에는 특정 위협에 대한 명확한 조사 및 수정 단계가 포함됩니다. 자세한 내용은 위협 검색 구성을 참조하세요. 이 검사는 SQL 위협 검색이 사용하도록 설정되어 있는지 확인합니다.
SQL Managed Instance

SQL Database

Azure Synapse

설치 업데이트 및 패치

규칙 ID 규칙 제목 규칙 심각도 규칙 설명 플랫폼
VA1018 최신 업데이트를 설치해야 합니다. 높음 Microsoft는 각 버전의 SQL Server에 대한 CU(누적 업데이트)를 주기적으로 해제합니다. 이 규칙은 실행을 위해 문자열을 전달하여 사용 중인 SQL Server의 특정 버전에 대한 최신 CU가 설치되었는지 여부를 확인합니다. 이 규칙은 dbo를 제외한 모든 사용자에게 xp_cmdshell 확장 저장 프로시저를 실행할 수 있는 권한이 없는지 확인합니다. SQL Server 2005

SQL Server 2008

SQL Server 2008

SQL Server 2012

SQL Server 2014

SQL Server 2016

SQL Server 2017


SQL Server 2019


SQL Server 2022
VA2128 SQL Server 2012보다 낮은 SQL Server 버전에는 취약성 평가가 지원되지 않습니다. 높음 SQL Server에서 취약성 평가 검사를 실행하려면 서버를 SQL Server 2012 이상으로 업그레이드해야 합니다. SQL Server 2008 R2 이하는 Microsoft에서 더 이상 지원되지 않습니다. 자세한 내용은 참조하세요. SQL Server 2012+

SQL Managed Instance

SQL Database

Azure Synapse

노출 영역 감소

규칙 ID 규칙 제목 규칙 심각도 규칙 설명 플랫폼
VA1022 임시 분산 쿼리를 사용하지 않도록 설정해야 합니다. 중간 임시 분산 쿼리에서는 OPENROWSETOPENDATASOURCE 함수를 사용하여 OLE DB를 사용하는 원격 데이터 원본에 연결합니다. 이 규칙은 임시 분산 쿼리가 사용하지 않도록 설정되어 있는지 확인합니다. SQL Server 2012+
VA1023 CLR을 사용하지 않도록 설정해야 합니다. 높음 CLR을 사용하면 Microsoft SQL Server 환경에서 관리 코드를 호스트하고 실행할 수 있습니다. 이 규칙은 CLR이 사용하지 않도록 설정되어 있는지 확인합니다. SQL Server 2012+
VA1026 CLR을 사용하지 않도록 설정해야 합니다. 중간 CLR을 사용하면 Microsoft SQL Server 환경에서 관리 코드를 호스트하고 실행할 수 있습니다. CLR 엄격한 보안은 SAFE 및 EXTERNAL_ACCESS 어셈블리를 UNSAFE로 표시된 것처럼 처리하고 마스터 데이터베이스에서 UNSAFE ASSEMBLY 권한이 부여된 해당 로그인을 사용하여 인증서 또는 비대칭 키로 모든 어셈블리에 서명해야 합니다. 이 규칙은 CLR이 사용하지 않도록 설정되어 있는지 확인합니다. SQL Server 2017+2

SQL Managed Instance
VA1027 추적되지 않은 신뢰할 수 있는 어셈블리는 제거해야 합니다. 높음 UNSAFE로 표시된 어셈블리는 마스터 데이터베이스에서 UNSAFE ASSEMBLY 권한이 부여된 해당 로그인을 사용하여 인증서 또는 비대칭 키로 서명해야 합니다. 신뢰할 수 있는 어셈블리는 이 요구 사항을 무시할 수 있습니다. SQL Server 2017+

SQL Managed Instance
VA1044 특별히 필요한 경우가 아니면 원격 관리 연결을 사용하지 않도록 설정해야 합니다. 중간 이 규칙은 공격 노출 영역을 줄이기 위해, 클러스터링에 사용되지 않는 경우 원격 전용 관리자 연결이 사용하지 않도록 설정되어 있는지 확인합니다. SQL Server는 DAC(관리자 전용 연결)를 제공합니다. DAC를 사용하여 관리자는 실행 중인 서버에 액세스하여 진단 기능 또는 Transact-SQL 문을 실행하거나 서버에서 발생하는 문제를 해결할 수 있으며, DAC는 원격으로 사용하도록 설정된 경우 매력적인 공격 대상이 됩니다. SQL Server 2012+

SQL Managed Instance
VA1051 모든 데이터베이스에서 AUTO_CLOSE를 사용하지 않도록 설정해야 합니다. 중간 AUTO_CLOSE 옵션은 마지막 사용자가 연결을 끊은 후 데이터베이스가 정상적으로 종료되고 리소스가 해제되는지 여부를 지정합니다. 이점이 분명히 있지만, 데이터베이스를 적극적으로 열고 닫아서 서비스 거부를 유발할 수 있으므로 이 기능을 사용하지 않도록 설정하는 것이 중요합니다. 이 규칙은 현재 데이터베이스에서 이 옵션이 사용하지 않도록 설정되어 있는지 확인합니다. SQL Server 2012+
VA1066 사용하지 않은 Service Broker 엔드포인트를 제거해야 합니다. 낮음 Service Broker는 SQL Server에 대한 큐 대기 및 신뢰할 수 있는 메시징을 제공합니다. Service Broker는 단일 SQL Server 인스턴스를 사용하는 애플리케이션과 여러 인스턴스 간에 작업을 분산하는 애플리케이션에 모두 사용됩니다. Service Broker 엔드포인트는 전송 보안과 메시지 전달 옵션을 제공합니다. 이 규칙은 모든 Service Broker 엔드포인트를 열거합니다. 사용되지 않는 엔드포인트는 제거합니다. SQL Server 2012+
VA1071 '시작 저장 프로시저 검색' 옵션을 사용하지 않도록 설정해야 합니다. 중간 '시작 프로시저 검색'이 사용하도록 설정된 경우 SQL Server는 서버에 정의된 모든 자동 실행 저장 프로시저를 검색하고 실행합니다. 이 옵션이 사용하도록 설정된 경우 SQL Server는 서버에 정의된 모든 자동 실행 저장 프로시저를 검색하고 실행합니다. 이 규칙은 이 옵션이 사용하지 않도록 설정되어 있는지 확인합니다. SQL Server 2012+
VA1092 SQL Server 인스턴스는 SQL Server Browser 서비스에서 보급할 수 없습니다. 낮음 SQL Server는 SQL Server Browser 서비스를 사용하여 컴퓨터에 설치된 데이터베이스 엔진의 인스턴스를 열거합니다. 이렇게 하면 클라이언트 애플리케이션에서 서버를 검색하고 클라이언트가 같은 컴퓨터에 있는 데이터베이스 엔진의 여러 인스턴스를 구분할 수 있습니다. 이 규칙은 SQL 인스턴스가 숨겨지는지 확인합니다. SQL Server 2012+
VA1102 MSDB를 제외한 모든 데이터베이스에서 신뢰할 수 있는 비트를 사용하지 않도록 설정해야 합니다. 높음 TRUSTWORTHY 데이터베이스 속성은 SQL Server 인스턴스가 데이터베이스 및 그 내용을 신뢰하는지 여부를 나타내는 데 사용됩니다. 이 옵션을 사용하도록 설정하면 가장 컨텍스트를 사용하는 데이터베이스 모듈(예: 사용자 정의 함수 또는 저장 프로시저)이 데이터베이스 외부의 리소스를 액세스할 수 있습니다. 이 규칙은 MSDB를 제외한 모든 데이터베이스에서 Trustworthy 비트가 사용하지 않도록 설정되었는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1143 정상적인 서비스 작업에는 'dbo' 사용자를 사용할 수 없습니다. 중간 'dbo' 또는 데이터베이스 소유자는 데이터베이스의 모든 작업을 수행할 수 있는 내재된 권한이 있는 사용자 계정입니다. sysadmin 고정 서버 역할의 멤버는 자동으로 dbo에 매핑됩니다. 이 규칙은 dbo가 이 데이터베이스에 액세스할 수 있는 유일한 계정이 아닌지 확인합니다. 새로 만든 클린 데이터베이스에서는 추가 역할을 만들 때까지 이 규칙이 실패합니다. SQL Server 2012+

SQL Managed Instance

SQL Database

Azure Synapse
VA1144 model 데이터베이스는 'dbo'에서만 액세스할 수 있습니다. 중간 model 데이터베이스는 SQL Server 인스턴스에 생성된 모든 데이터베이스에 대한 템플릿으로 사용됩니다. model 데이터베이스의 크기 복구 모델 또는 데이터베이스 옵션의 수정 내용은 이후에 생성되는 모든 데이터베이스에 적용됩니다. 이 규칙은 dbo가 model 데이터베이스에 액세스할 수 있는 유일한 계정인지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1230 Filestream을 사용하지 않도록 설정해야 합니다. 높음 FILESTREAM은 varbinary(max) BLOB(Binary Large Object) 데이터를 파일 시스템의 파일로 저장하여 SQL Server 데이터베이스 엔진을 NTFS 파일 시스템과 통합합니다. Transact-SQL 문은 FILESTREAM 데이터를 삽입, 업데이트, 쿼리, 검색 및 백업할 수 있습니다. SQL Server에서 Filestream을 사용하도록 설정하면 추가 NTFS 스트리밍 API가 표시되므로 공격 노출 영역이 늘어나고 악의적인 공격에 취약해집니다. 이 규칙은 Filestream이 사용하지 않도록 설정되어 있는지 확인합니다. SQL Server 2012+
VA1235 '복제 XP' 서버 구성을 사용하지 않도록 설정해야 합니다. 중간 사용되지 않는 서버 구성 '복제 XP'를 사용하지 않도록 설정하여 공격 노출 영역을 제한합니다. 이것은 내부 전용 구성 설정입니다. SQL Server 2012+

SQL Managed Instance
VA1244 분리된 사용자는 SQL Server 데이터베이스에서 제거해야 합니다. 중간 데이터베이스에는 있지만 해당 로그인이 master 데이터베이스에 없거나 외부 리소스(예: Windows 사용자)가 분리된 사용자로 참조되므로 제거되거나 유효한 로그인에 다시 매핑되어야 합니다. 이 규칙은 분리된 사용자가 없는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1245 dbo 정보는 대상 DB와 master 간에 일치해야 합니다. 높음 데이터베이스 자체에 저장된 메타데이터 및 master DB에 저장된 메타데이터와 같이 데이터베이스의 dbo ID에 대한 중복된 정보가 있습니다. 이 규칙은 이 정보가 대상 DB와 master 간에 일치하는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1247 자동 시작으로 표시되는 SP가 없어야 합니다. 높음 SQL Server가 '시작 프로시저 검색'으로 구성된 경우 서버는 master DB에서 자동 시작으로 표시된 저장 프로시저를 검색합니다. 이 규칙은 자동 시작으로 표시된 SP가 없는지 확인합니다. SQL Server 2012+
VA1256 사용자 CLR 어셈블리는 데이터베이스에서 정의하면 안 됩니다. 높음 CLR 어셈블리는 SQL Server 프로세스에서 임의의 코드를 실행하는 데 사용할 수 있습니다. 이 규칙은 데이터베이스에 사용자 정의 CLR 어셈블리가 없는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA1277 Polybase 네트워크 암호화를 사용하도록 설정해야 합니다. 높음 PolyBase는 SQL Server 내에서 비관계형 및 관계형 데이터에 액세스하고 결합하는 기술입니다. Polybase 네트워크 암호화 옵션은 Polybase를 사용할 때 제어 및 데이터 채널을 암호화하도록 SQL Server를 구성합니다. 이 규칙은 이 옵션이 사용하도록 설정되어 있는지 확인합니다. SQL Server 2016+
VA1278 외부 키 관리 공급자의 기준을 만듭니다. 중간 SQL Server EKM(확장 가능 키 관리)을 사용하여 타사 EKM/HSM(하드웨어 보안 모듈) 공급업체는 해당 모듈을 SQL Server에 등록할 수 있습니다. 등록된 SQL Server 사용자가 EKM 모듈에 저장된 암호화 키를 사용할 수 있는 경우 이 규칙은 시스템에서 사용되는 EKM 공급자 목록을 표시합니다. SQL Server 2012+

SQL Managed Instance
VA2062 데이터베이스 수준 방화벽 규칙은 과도한 액세스 권한을 부여해서는 안 됩니다. 높음 Azure SQL Database 수준 방화벽을 사용하면 사용 권한이 있는 IP 주소를 지정할 때까지 데이터베이스에 대한 모든 액세스를 방지하여 데이터를 보호할 수 있습니다. 데이터베이스 수준 방화벽 규칙은 각 요청이 시작된 IP 주소를 기준으로 하여 특정 데이터베이스에 대한 액세스 권한을 부여합니다. master 및 사용자 데이터베이스에 대한 데이터베이스 수준 방화벽 규칙은 Transact-SQL을 통해서만 만들고 관리할 수 있습니다(Azure Portal 또는 PowerShell을 사용하여 만들고 관리할 수 있는 서버 수준 방화벽 규칙과는 다름). 자세한 내용은 Azure SQL Database 및 Azure Synapse Analytics IP 방화벽 규칙을 참조하세요. 이 검사는 데이터베이스 수준 방화벽 규칙이 255개보다 많은 IP 주소에 대한 액세스를 허용하지 않는지 확인합니다. SQL Database

Azure Synapse
VA2063 서버 수준 방화벽 규칙은 과도한 액세스 권한을 부여해서는 안 됩니다. 높음 Azure SQL 서버 수준 방화벽을 사용하면 사용 권한이 있는 IP 주소를 지정할 때까지 데이터베이스에 대한 모든 액세스를 방지하여 서버를 보호할 수 있습니다. 서버 수준 방화벽 규칙은 각 요청의 원래 IP 주소에 따라 서버에 속하는 모든 데이터베이스에 대한 액세스 권한을 부여합니다. 서버 수준 방화벽 규칙은 Transact-SQL 뿐만 아니라 Azure Portal 또는 PowerShell을 통해서만 만들고 관리할 수 있습니다. 자세한 내용은 Azure SQL Database 및 Azure Synapse Analytics IP 방화벽 규칙을 참조하세요. 이 검사는 서버 수준 방화벽 규칙이 255개보다 많은 IP 주소에 대한 액세스를 허용하지 않는지 확인합니다. SQL Database

Azure Synapse
VA2064 데이터베이스 수준 방화벽 규칙은 엄격하게 최소한으로 추적 및 유지 관리해야 합니다. 높음 Azure SQL Database 수준 방화벽을 사용하면 사용 권한이 있는 IP 주소를 지정할 때까지 데이터베이스에 대한 모든 액세스를 방지하여 데이터를 보호할 수 있습니다. 데이터베이스 수준 방화벽 규칙은 각 요청이 시작된 IP 주소를 기준으로 하여 특정 데이터베이스에 대한 액세스 권한을 부여합니다. master 및 사용자 데이터베이스에 대한 데이터베이스 수준 방화벽 규칙은 Transact-SQL을 통해서만 만들고 관리할 수 있습니다(Azure Portal 또는 PowerShell을 사용하여 만들고 관리할 수 있는 서버 수준 방화벽 규칙과는 다름). 자세한 내용은 Azure SQL Database 및 Azure Synapse Analytics IP 방화벽 규칙을 참조하세요. 이 검사는 모든 데이터베이스 수준 방화벽 규칙을 열거하여 해당 변경 내용을 식별하고 해결할 수 있도록 합니다. SQL Database

Azure Synapse
VA2065 서버 수준 방화벽 규칙은 엄격하게 최소한으로 추적 및 유지 관리해야 합니다. 높음 Azure SQL 서버 수준 방화벽을 사용하면 사용 권한이 있는 IP 주소를 지정할 때까지 데이터베이스에 대한 모든 액세스를 방지하여 데이터를 보호할 수 있습니다. 서버 수준 방화벽 규칙은 각 요청의 원래 IP 주소에 따라 서버에 속하는 모든 데이터베이스에 대한 액세스 권한을 부여합니다. 서버 수준 방화벽 규칙은 Transact-SQL 뿐만 아니라 Azure Portal 또는 PowerShell을 통해 만들고 관리할 수 있습니다. 자세한 내용은 Azure SQL Database 및 Azure Synapse Analytics IP 방화벽 규칙을 참조하세요. 이 검사는 모든 서버 수준 방화벽 규칙을 열거하여 해당 변경 내용을 식별하고 해결할 수 있도록 합니다. SQL Database

Azure Synapse
VA2111 샘플 데이터베이스를 제거해야 합니다. 낮음 Microsoft SQL Server에는 여러 샘플 데이터베이스가 포함되어 있습니다. 이 규칙은 샘플 데이터베이스가 제거되었는지 여부를 확인합니다. SQL Server 2012+

SQL Managed Instance
VA2120 보안에 영향을 줄 수 있는 기능을 사용하지 않도록 설정해야 합니다. 높음 SQL Server는 다양한 기능과 서비스를 제공할 수 있습니다. 기본적으로 제공되는 일부 기능 및 서비스는 필요하지 않을 수 있으며 사용하도록 설정하면 시스템 보안에 부정적인 영향을 줄 수 있습니다. 이 규칙은 이러한 기능이 사용하지 않도록 설정되어 있는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA2121 'OLE Automation Procedures' 기능을 사용하지 않도록 설정해야 합니다. 높음 SQL Server는 다양한 기능과 서비스를 제공할 수 있습니다. 기본적으로 제공되는 일부 기능 및 서비스는 필요하지 않을 수 있으며 이를 사용하도록 설정하면 시스템 보안에 부정적인 영향을 줄 수 있습니다. OLE Automation Procedures 옵션은 Transact-SQL 일괄 처리 내에서 OLE Automation 개체를 인스턴스화할 수 있는지 여부를 제어합니다. 이러한 확장 저장 프로시저는 SQL Server 사용자가 SQL Server 외부에서 함수를 실행할 수 있도록 합니다. 이점이 있지만, 악용될 수도 있으며 대상 머신에 파일을 심는 데 널리 사용되는 메커니즘으로 알려져 있습니다. 이 도구를 대신해서 PowerShell을 사용하는 것이 좋습니다. 이 규칙은 'OLE Automation Procedures' 기능이 사용하지 않도록 설정되어 있는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA2122 '사용자 옵션' 기능을 사용하지 않도록 설정해야 합니다. 중간 SQL Server는 다양한 기능과 서비스를 제공할 수 있습니다. 기본적으로 제공되는 일부 기능 및 서비스는 필요하지 않을 수 있으며 사용하도록 설정하면 시스템 보안에 부정적인 영향을 줄 수 있습니다. 사용자 옵션은 모든 사용자에 대한 전역 기본값을 지정합니다. 기본 쿼리 처리 옵션 목록은 사용자의 작업 세션 기간에 대해 설정됩니다. 사용자 옵션을 사용하면 서버의 기본 설정이 적합하지 않은 경우 SET 옵션의 기본값을 변경할 수 있습니다. 이 규칙은 '사용자 옵션' 기능이 사용하지 않도록 설정되어 있는지 확인합니다. SQL Server 2012+

SQL Managed Instance
VA2126 필요 없는 경우 보안에 영향을 줄 수 있는 확장성 기능을 사용하지 않도록 설정해야 합니다. 중간 SQL Server는 다양한 기능과 서비스를 제공합니다. 기본적으로 제공되는 일부 기능 및 서비스는 필요하지 않을 수 있으며 이를 사용하도록 설정하면 시스템 보안에 부정적인 영향을 줄 수 있습니다. 이 규칙은 외부 데이터 원본으로의 데이터 추출을 허용하는 구성과 특정 원격 언어 확장을 사용하는 스크립트 실행이 사용하도록 설정되어 있지 않은지 확인합니다. SQL Server 2016+

제거된 규칙

규칙 ID 규칙 제목
VA1021 전역 임시 저장 프로시저를 제거해야 합니다.
VA1024 C2 감사 모드를 사용하도록 설정해야 합니다.
VA1069 시스템 테이블 및 뷰에서 선택할 수 있는 권한은 sysadmins 이외에서 해지해야 합니다.
VA1090 모든 GOTS(정부 지정) 및 사용자 지정 저장 프로시저가 암호화되는지 확인합니다.
VA1103 SAFE_ACCESS 권한이 있는 CLR만 사용합니다.
VA1229 레지스트리 및 SQL Server 구성의 Filestream 설정이 일치해야 합니다.
VA1231 Filestream을 사용하지 않도록 설정해야 합니다(SQL).
VA1234 Common Criteria 설정을 사용하도록 설정해야 합니다.
VA1252 서버 감사 사양을 통해 감사 및 중앙에서 관리되는 이벤트의 목록입니다.
VA1253 서버 감사 사양을 통해 감사 및 중앙에서 관리되는 DB 범위 이벤트의 목록입니다.
VA1263 시스템의 모든 활성 감사를 나열합니다.
VA1266 모든 SQL 로그인에 대해 'MUST_CHANGE' 옵션을 설정해야 합니다.
VA1276 에이전트 XP 기능을 사용하지 않도록 설정해야 합니다.
VA1286 데이터베이스 권한은 보안 주체(OBJECT 또는 COLUMN)에 직접 부여하면 안 됩니다.
VA2000 최소한의 보안 주체 세트에 높은 영향 데이터베이스 범위 사용 권한을 부여해야 합니다.
VA2001 최소한의 보안 주체 세트에 개체 또는 열에 대한 높은 영향 데이터베이스 범위 사용 권한을 부여해야 합니다.
VA2002 최소한의 보안 주체 세트에 다양한 보안 개체에 대한 높은 영향 데이터베이스 범위 사용 권한을 부여해야 합니다.
VA2010 최소한의 보안 주체 세트에 중간 영향 데이터베이스 범위 사용 권한을 부여해야 합니다.
VA2021 최소한의 보안 주체 세트에 개체 또는 열에 대한 데이터베이스 범위 ALTER 권한을 부여해야 합니다.
VA2022 최소한의 보안 주체 세트에 다양한 보안 개체에 대한 데이터베이스 범위 ALTER 권한을 부여해야 합니다.
VA2030 최소한의 보안 주체 세트에 데이터베이스 범위 SELECT 또는 EXECUTE 사용 권한을 부여해야 합니다.
VA2031 최소한의 보안 주체 세트에 데이터베이스 범위 SELECT를 부여해야 합니다.
VA2032 최소한의 보안 주체 세트에 스키마에 대한 데이터베이스 범위 SELECT 또는 EXECUTE 사용 권한을 부여해야 합니다.
VA2034 최소한의 보안 주체 세트에 XML 스키마 컬렉션에 대한 데이터베이스 범위 EXECUTE 권한을 부여해야 합니다.
VA2040 최소한의 보안 주체 세트에 낮은 영향 데이터베이스 범위 사용 권한을 부여해야 합니다.
VA2041 최소한의 보안 주체 세트에 개체 또는 열에 대한 낮은 영향 데이터베이스 범위 사용 권한을 부여해야 합니다.
VA2042 최소한의 보안 주체 세트에 스키마에 대한 낮은 영향 데이터베이스 범위 사용 권한을 부여해야 합니다.
VA2050 최소한의 보안 주체 세트에 데이터베이스 범위 VIEW DEFINITION 사용 권한을 부여해야 합니다.
VA2051 최소한의 보안 주체 세트에 개체 또는 열에 대한 데이터베이스 범위 VIEW DEFINITION 사용 권한을 부여해야 합니다.
VA2052 최소한의 보안 주체 세트에 다양한 보안 개체에 대한 데이터베이스 범위 VIEW DEFINITION 사용 권한을 부여해야 합니다.
VA2100 최소한의 보안 주체 세트에 높은 영향 서버 범위 사용 권한을 부여해야 합니다.
VA2101 최소한의 보안 주체 세트에 중간 영향 서버 범위 사용 권한을 부여해야 합니다.
VA2102 최소한의 보안 주체 세트에 낮은 영향 서버 범위 사용 권한을 부여해야 합니다.
VA2104 확장 저장 프로시저에 대한 실행 권한은 PUBLIC에서 해지해야 합니다.
VA2105 로그인 암호는 쉽게 추측할 수 없어야 합니다.
VA2112 DTS(데이터 변환 서비스)에 대한 PUBLIC의 사용 권한을 취소해야 합니다.
VA2115 최소한의 보안 주체 세트가 중간 영향의 고정 서버 역할의 멤버여야 합니다.
VA2123 '원격 액세스' 기능을 사용하지 않도록 설정해야 합니다.
VA2127 '외부 스크립트' 기능을 사용하지 않도록 설정해야 합니다.

다음 단계