벌써 몇 일째 같은 문제로 여러 사람과 실랑이를 하고 있다. DBMS 사용자의 용도 별 생성과 권한 분리에 대한…

OS 계정은 권한에 따라 분리하여 사용하고, 접근 통제도 걸고, 접속 이력 관리도 하고,… 하면서 왜 정작 더 중요한(중요한 건 그릇이 아니라 밥이니까) DBMS 계정은 하나 만들어서 돌려 쓰는 것이야?

내 생각이랄 것도 없고, 당연한 얘기인데,

  • DB/Table/Trigger/Procedure 등 일련의 업무 세트를 만들고 관리할 관리자가 있고,
  • 해당 업무 처리를 위해 전체 Object를 CRUD 해야 할 서비스 계정(WAS용)이 있고,
  • 특정 업무 연동을 위해 부분적인 Object 접근만 허용되는 연동용 계정도 있다.

그리고 막강한 권한을 갖는 관리자 계정은, 당연히 적절한 통제(가령, 비번의 주기적 변경이랄지…) 하에 놓여야 하고, 안정적인 서버스를 위하여 비번을 바꿀 수 없는 서비스 계정은 사람이 기억할 수 없는 수준의 복잡한 암호(나는 주로 MD5SUM으로 생성해낸 16진수 문자열을 쓴다)를 부여하되, WAS 등의 설정에서 접속정보 암호화를 통해 유출을 방지해야 한다.

그리고 모든 계정에 대하여 실행 이력까지는 아니더라도 접속 이력 정도는 무조건 남겨야 한다. 이 정도 로그를 남기는데 시스템 자원이 모자라다고? 헐… CPU든 메모리든 얼마든지 꽂아주마. 내 돈을 털어서라도. (어차피 꽂을 일 없으니까)

겨울에 눈내리는 얘기 써놓은 것 같은데… 왜 이 곳에는 눈이 오지 않을까?