로그인 계정이란
외부에서 DBMS 로 접속하기 위한 하나의 인증(?) 과정을 의미합니다.
로그인 계정마다 권한을 다르게 줄 수 있기 때문에,
관리자는 여러 계정을 생성하고 알맞은 권한을 부여하여 공격으로부터 방어할 수 있습니다.
문제는 이렇게 생성된 계정도 오랜시간이 지나고 정책이 바뀌면서 사용되지 않을 수 있게 된다는 것입니다.
최고의 방법은 사용하지 않는채로 두는 방법이지만,
이런 계정도 너무 오래 방치하면 위험이 따르기 때문에 정리가 필요한 상황이 오게됩니다.
로그인 계정을 삭제할 때 고려할 점
1. 해당 로그인 계정을 사용하는 클라이언트는 없는지?
백트레이스로 로그인 계정을 수집하거나, 혹은 현재 접속하는 세션이 없는지 확인해 봅니다.
1 | SELECT * FROM sys.dm_exec_sessions; | cs |
2. 로그인 계정을 비활성화 하고난 후 로그인 실패하는 서버가 없는지?
로그인을 비활성화로 변경하면, 클라이언트는 로그인을 하지 못하게 됩니다.
에러로그를 통해서 실패하는 로그인이 있는지 확인해봅니다.
( 만약 비활성화 기능이 없는 경우에는, 로그인 계정명을 변경하는 방법도 좋겠죠 )
3. 데이터베이스와 배치작업의 소유자가 삭제할 로그인 계정으로 되어있는지?
SQL Server 는 데이터베이스와 배치작업의 소유자가
비활성화 되어있는 로그인 계정으로 되어있어도 정상적으로 실행됩니다.
그러나 계정이 삭제되는 경우는 이야기가 다르기 때문에, 꼭 체크를 해야합니다.
1 2 3 4 5 6 7 | SELECT name FROM sys.databases WITH(NOLOCK) WHERE SUSER_NAME(owner_sid) IN ('user1') OPTION (MAXDOP 1) SELECT name FROM msdb.dbo.sysjobs WITH(NOLOCK) WHERE SUSER_NAME(owner_sid) IN ('user1') OPTION (MAXDOP 1) | cs |
이 외에 SSRS, SSIS, Power Shell 등에서는 로컬접속으로 되어있더라도
로그인이 비활성화 되어있다면 접속이 안되는 것을 확인했습니다.
( 아무래도 SQL Server 에서 클라이언트로 바라보고 있는 것 같습니다. )
'Database > DBA 의 개인생각' 카테고리의 다른 글
[DBA] 데이터 추출해서 전달할 때 체크해야 할 부분 (0) | 2021.03.09 |
---|---|
[DBA] SQL Server 이전작업을 진행할 때 전/후 체크리스트 (0) | 2020.07.10 |
[DBA] 배치작업 만들 때 고려사항, 여러개를 같은시간에 수행할 때 위험성 (0) | 2020.04.03 |
[DBA] Order By 없는 쿼리의 위험성 (0) | 2020.02.03 |
[DBA] 삭제 조건에 적절한 인덱스가 없는 경우 단위처리 및 RowLock 으로 삭제하는 방법 (0) | 2019.12.26 |