[DBMS/데이터베이스/dbms] DB 사용자 계정을 개별적으로 부여하여 사용

 

 

D-13 DB 사용자 계정을 개별적으로 부여하여 사용

 

■ 점검영역 : 계정관리

 

■ 항목 중요도 :

 

■ 점검내용

 

DB 접근 시 사용자별로 서로 다른 계정을 사용하여 접근하는지 점검

 

■ 점검목적

 

사용자별 별도 DBMS 계정을 사용하여 DB에 접근하는지 점검하여 DB 계정 공유 사용으로 발생할 수 있는 로그 감사 추적 문제를 대비하고자 함

 

■ 보안위협

 

DB 계정을 공유하여 사용할 경우 비인가자의 DB 접근 발생 시 계정 공유 사용으로 인해 로그 감사 추적의 어려움이 발생할 위험이 존재함

 

■ 참고

 

-

 

 

점검대상 및 판단기준(데이터베이스/dbms 취약점 진단)

 

■ 대상 : Oracle, MSSQL, MySQL, ALTIBASE, TIBERO, PostgreSQL 등

 

양호

사용자별 계정을 사용하고 있는 경우

 

취약

공용 계정을 사용하고 있는 경우

 

■ 조치방법

 

사용자별 계정 생성 및 권한 부여

 

 

점검 및 조치 방법(oracle, mssql, mysql 등)

 

■ Oracle


Step 1) 계정 확인(SQL*Plus)
SQL> select username from dba_users order by username;
(사용하지 않거나 모르는 계정 확인)


Step 2) 공통으로 사용하는 계정 삭제
SQL> DROP USER ‘삭제할 계정‘;


Step 3) 사용자별, 응용프로그램별 계정 생성
SQL> Create user username identified by passwd;


Step 4) 권한 부여
SQL> grant connect, resource to username;

 


■ MSSQL

 

Step 1) 불필요한 계정 삭제
Exec sp_droplogin ‘삭제할 계정'


Step 2). 사용자별, 응용프로그램별 계정 생성
CREATE login '생성 계정' WITH password = '패스워드’
CREATE user '생성 계정' FOR login '생성 계정' WITH default_schema ='생성 계정' ;

ALTER USER
EXEC sp_adduser '생성 계정', '생성 계정', 'db_owner’
EXEC sp_adduser '생성 계정', '생성 계정', '생성 계정'
EXEC sp_grantdbaccess '생성 계정','생성 계정’

 


■ MySQL

 

Step 1) 불필요한 계정 삭제
mysql> Delete from user where user=’삭제할 계정’;


Step 2) 사용자별, 응용프로그램별 계정 생성, 권한 설정
mysql> insert into user('localhost','user', 'password') values('localhost', '생성 계정', 'password('패스워드'));
mysql> insert into mysql.db values(‘%’,’DB name’, ’username’, ’Y’, ’Y’, ’Y’,
’Y’, ’Y’, ’Y’, ’Y’, ’Y’, ’Y’, ’Y’,’Y’, ’Y’, ’Y’, ’Y’, ’Y’, ’Y’, ’Y’);
mysql> flush privileges

 


■ Altibase

 

Step 1) DB에 생성된 계정 확인
select * from system_.sys_users_;


Step 2) Step 1) 결과에서 공용계정 확인하여 삭제
drop user testuesr cascade;


Step 3) 사용자별, 응용프로그램별 등 목적에 맞게 계정 생성
create user testuser2 identified by testpassword;

 


■ Tibero

 

Step 1) DB에 생성된 계정 확인
select * from dba_users;


Step 2) Step 1) 결과에서 공용계정 확인하여 삭제
drop user 사용자명 cascade;


Step 3) 사용자별, 응용프로그램 별 등 목적에 맞게 계정 생성
create user 사용자명 identified by 사용자 패스워드;

 


■ PostgreSQL

 

계정의 용도 파악 후 불필요한 계정은 삭제, 새로운 계정 생성 시 적절한 권한을 부여하여 생성
Step 1) 모든 사용자 확인
쿼리문 조회 : select *from pg_shadow;
명령어 조회 : \du


Step 2) 불필요 계정 삭제
DROP ROLE ‘삭제할 계정’;


Step 3) 계정 생성 및 권한 추가
create user ‘생성할 계정’;
alter role ‘계정명’ ‘권한명’ ‘권한명’ ····;
\du (계정 생성 및 권한 확인)

 

 

조치 시 영향 : 일반적인 경우 영향 없음

 

댓글

Designed by JB FACTORY