- 점검 내용
- DBA 계정의 Role을 Public으로 설정하는지 점검
- 점검 목적
- DBA 계정의 Role을 점검하여 일반 계정으로 응용프로그램 테이블이나 DBA 테이블의 접근을 차단하기 위함
- 보안 위협
- 응용프로그램 또는 DBA 계정의 Role이 Public으로 설정되어 있으면, 일반 계정에서도 응용프로그램 테이블 및 DBA 테이블로 접근할 수 있어 주요 정보 유출 위험이 존재함
- 판단 기준
- 양호: DBA 계정의 Role이 Public으로 설정되지 않은 경우
- 취약: DBA 계정의 Role이 Public으로 설정되어 있는 경우
- 점검방법
- MSSQL
- 요청 쿼리
- SELECT DP1.name AS DatabaseRoleName,
isnull (DP2.name, 'No members') AS DatabaseUserName
FROM sys.database_role_members AS DRM
RIGHT OUTER JOIN sys.database_principals AS DP1
ON DRM.role_principal_id = DP1.principal_id
LEFT OUTER JOIN sys.database_principals AS DP2
ON DRM.member_principal_id = DP2.principal_id
WHERE DP1.type = 'R'
and DP1.name = 'public'
ORDER BY DP1.name;
- SELECT DP1.name AS DatabaseRoleName,
- 요청 쿼리
- 결과 public No members
- https://learn.microsoft.com/ko-kr/sql/relational-databases/system-catalog-views/sys-database-role-members-transact-sql?view=sql-server-ver16
- MSSQL
- 점검 및 조치 방법
- DBA 계정의 Role 설정에서 Public 그룹 권한 취소
- MSSQL
- 1) 각 Object의 사용 권한이 불필요하게 Public, guest 권한이 부여된 경우 제거
- revoke [권한] on [Object] from public | guest;
- MSSQL
- DBA 계정의 Role 설정에서 Public 그룹 권한 취소
-
-
- MySQL 해당사항 없음
-
- 조치 시 영향
- 일반적인 경우 영향 없음