SQL SERVER 의 기본 보안 점검 사항

 

현직 MSSQL 컨설턴트 입니다.

고객사에 SQL 설치를 하러 가기전 준비 하다가 잠시 생각나서 적어봅니다.

가벼운 주제로 MS-SQL 이용시 보안점검 항목과 체크방법에 대해서 적어봅니다.

1. 불필요한 계정이 있지 않은가?

– 굳이 말을 안해도 될 만큼 취약한 보안 이겠죠?

확인법 :  Select name, dbname, password from syslogins

조치 : Exec sp_droplogin ‘user name’

 

2. 계정의 권한 제한

– 일반적인 사용자가 DBA 권한을 가지고 있을 필요는 없겠죠?

– 일반적인 사용자라면 권한을 db_datareader ,

작업을 하시는 분이라면db_datrawriter 권한만으로도 충분합니다.

확인법 : Exec sp_helpsrvrolemember ‘sysadmin’

조치법 : Exec sp_droprolemember ‘user name’, ‘sysadmin’

 

3. 고정 서버 역할 제한

– 시스템 내장 함수 등을 사용할 수 있는 권한이 있으므로 적절히 제한을 하는것이 좋습니다.

확인법 : Exec sp_helpsrvrolemember

조치법 : Exec sp_droprolemember ‘role name’, ‘user name’

 

4. 시스템테이블에 접근 권한 제한을 줬는가?

– 테이블 소유자나 DBA 권한을 가진 사용자 외에는 가능한 접근을 제한하는것이 좋습니다.

확인법:

select su.name as principal_name, dp.type_desc as principal_type_desc, ao.type_desc, ao.name as object_name, p.permission_name, p.state_desc as permission_state_desc from sys.database_permissions p, sys.database_principals dp, sys.all_objects ao, sys.sysusers su where ao.object_id=p.major_id and p.grantee_principal_id=dp.principal_id and p.grantee_principal_id=su.uid and dp.name=’public’ and ao.type=’S’
select su.name as principal_name, dp.type_desc as principal_type_desc, ao.type_desc, ao.name as object_name, p.permission_name, p.state_desc as permission_state_desc from sys.database_permissions p, sys.database_principals dp, sys.all_objects ao, sys.sysusers su where ao.object_id=p.major_id and p.grantee_principal_id=dp.principal_id and p.grantee_principal_id=su.uid and dp.name='public' and ao.type='S'

조치법 :

[권한 제거]

1). Use database name

Revoke <권한> on <object> from [user name]|[public]|[guest]

2). 시스템 테이블에 접근하기 위해서는 stored procedure 또는 information_schema views를 통해서 접근해야 함

3). 시스템 테이블에 접근 가능한 stored procedure는 사용이 제한되어야 함

 

간단히 매우 중요한 사항만 적어봤습니다 🙂

About bytes

bytes

Leave a Reply

1 개의 댓글이 있습니다 - "SQL SERVER 의 기본 보안 점검 사항"

메일 알림 설정
정렬:   최신 | 오래된 | 추천
kinsa

좋은 내용 감사합니다. ^^

wpDiscuz