는 AS SQL 서버 모범 사례는 말한다, " Windows 인증 모드는 SQL 인증보다 안전합니다 ." 이제 Windows 관리자 권한이있는 사용자로부터 SQL Server를 보호 할 수있는 방법이 있습니까?
는 AS SQL 서버 모범 사례는 말한다, " Windows 인증 모드는 SQL 인증보다 안전합니다 ." 이제 Windows 관리자 권한이있는 사용자로부터 SQL Server를 보호 할 수있는 방법이 있습니까?
답변:
아니.
사용자가 상자의 Windows 관리자 인 경우 상자의 모든 내용을 소유한다고 가정합니다 (SQL Server 포함). Windows Administrator 권한을 사용하면 다른 사람 (예 NT AUTHORITY\SYSTEM
: 모든 로컬 SQL Server 인스턴스에 대한 실질적인 관리자 권한 포함 )을 사칭 하여 적용한 대상 보호 (예 : 사용자 이름을 식별하는 로그온 트리거)를 무시하는 것이 쉽지 않습니다 . 감사는 쉽게 해제 할 수 있기 때문에 많은 도움이되지 않지만, 만일의 경우에 대비해 감사해야합니다.
다른 사람을 신뢰하지 않으면 Windows 관리자에게 기간을 부여하지 마십시오.
아니요, 로컬 관리자 sysadmin
가 SQL Server 인스턴스에 액세스하는 것을 완전히 막을 수는 없습니다 .
단일 사용자 모드에서 인스턴스가 다시 시작sysadmin
되면 명시적인 로그인이 없더라도 로컬 관리자 권한 을 허용하도록 SQL Server가 하드 코딩됩니다 . 이것이 존재하는 이유는 인스턴스에서 자신을 잠글 수 있기 때문에 복구 목적입니다.
즉, 인스턴스가 다중 사용자 모드에서 실행되는 동안 (서비스 중단없이) 액세스 를 제한 하는 것은 어렵지 않습니다. Aaron이 언급했듯이 로컬 관리자는 NT AUTHORITY\SYSTEM
기본적 sysadmin
으로 SQL Server 2008에서 생성 된 수준의 로그인 이있는 가장을 가장 할 수 있습니다.이 기능은 서버가 실행되는 동안 액세스 를 복구하기 위해 악용 될 수 있습니다 sysadmin
. (참고 : SQL Server 2012 에서이 로그인은 더 이상 없습니다 sysadmin
.)이 로그인이 무엇인지 정확히 알지 못하지만 (업그레이드 / 핫픽스 등) 아마도 사용하지 않는 것이 안전하다고 생각합니다. 그 사건. 다른 가장 할 수없는 로그인이 없으면 액세스를 거부하기에 충분해야합니다. 다시, 인스턴스가 실행중인 경우에만 중단되지 않습니다 .
기본적으로 SQL 2008 및 2012에서는 Windows 관리자가 SQL Server에 액세스 할 수있는 기본 액세스 권한이 없습니다. Windows 관리자 (예 : 도메인 관리자 또는 로컬 관리자 인 사람)가 액세스 권한을 가지려면 로그인에 명시 적으로 액세스 권한이 부여되거나 해당 그룹이 SQL Server 자체의 권한과 함께 액세스 권한을 부여 받아야합니다. 인스턴스를 설정할 때 하나의 Active Directory 로그인 또는 그룹을 관리자로 지정해야하지만 해당 로그인 / 그룹은 도메인의 모든 사람이 될 수 있습니다.
SQL 2005에는 BUILTIN\Administrators
sysadmin 액세스 권한 이있는 그룹 이있었습니다 . 이 그룹은 로컬 관리자 sysadmin이 SQL Server에 액세스 할 수 있도록합니다. 이 그룹은 SQL Server에서 제거 할 수 있으며 그렇게하는 것이 좋습니다.
즉, Windows (로컬 또는 도메인)가 SQL Server가있는 서버에 영향을 미치는 것을 막을 방법은 없습니다. 즉, 관리자는 여전히 서비스 및 OS 수준 구성에 영향을 미치고 디렉터리 보안 변경 및 기타 OS 수준 작업에 영향을 줄 수 있습니다. 이것이 결국 Windows 관리자 인 이유입니다.
일반적으로 관리자는 SQL Server와 Windows를 모두 신뢰해야합니다. Windows 관리자는 SQL Server 자체에서 작업을 수행하거나 데이터에 액세스 할 수 없지만 (기본적으로) SQL Server가있는 환경을 제어합니다. 해당 역할에 할당 된 사람을 관리해야합니다.