Як говорить найкраща практика SQL Server , " режим автентифікації Windows є більш безпечним, ніж аутентифікація SQL ". А тепер я хочу знати: чи існує спосіб захисту SQL Server від користувача з правами адміністратора Windows?
Як говорить найкраща практика SQL Server , " режим автентифікації Windows є більш безпечним, ніж аутентифікація SQL ". А тепер я хочу знати: чи існує спосіб захисту SQL Server від користувача з правами адміністратора Windows?
Відповіді:
Ні.
Якщо користувач є адміністратором вікна Windows, припустіть, що їм належить все, що знаходиться у коробці (включаючи SQL Server). З правами адміністратора Windows неважливо обходити будь-який цільовий захист, який ви застосовуєте (наприклад, тригер входу, який ідентифікує ім’я користувача), видаючи себе за когось іншого (в тому числі NT AUTHORITY\SYSTEM
, який фактично отримує права адміністратора на всіх локальних екземплярах SQL Server ). Аудит теж не дуже допоможе, тому що вони можуть легко відключити це, але вам це доведеться про всяк випадок.
Якщо ви комусь не довіряєте, не дайте їм прав адміністратора Windows, періоду.
Ні, повністю запобігти доступу місцевих адміністраторів sysadmin
до екземпляра SQL Server неможливо .
Якщо екземпляр перезапускається в режимі для одного користувача , SQL Server жорстко кодується, щоб дозволити місцевим адміністраторам sysadmin
привілеї, навіть не маючи явного входу. Причина цього існує в цілях відновлення, оскільки можна заблокувати себе з екземпляра.
Однак, обмеження доступу під час запуску екземпляра в багатокористувацькому режимі (без перерв у роботі сервісу) не так вже й складно. Як зазначав Аарон, місцеві адміністратори можуть представити себе за себе NT AUTHORITY\SYSTEM
, який за замовчуванням має sysadmin
логін-lovel, створений у SQL Server 2008. Це можна використовувати для відновлення sysadmin
доступу під час роботи сервера. (Примітка. У SQL Server 2012 цей логін більше не є sysadmin
.) Я не знаю, для чого точно використовується цей логін (оновлення / гарячі виправлення / тощо., Мабуть), але я думаю, що це безпечно відключити, за винятком під час ті події. Якщо немає інших несанкціонованих входів, цього повинно бути достатньо, щоб заборонити доступ. Знову лише, якщо екземпляр працює безперебійно .
За замовчуванням у SQL 2008 та 2012 не існує доступу адміністраторів Windows за замовчуванням до SQL Server. Щоб адміністратор Windows (тобто той, хто або адміністратор домену, або локальний адміністратор) мав доступ, їх вхід повинен бути явно наданий доступ або групі, якій вони належать, наданий доступ, а також права в самому SQL сервері. Під час налаштування примірника вам потрібно вказати один логін або групу Active Directory як адміністратора, але цей логін / група може бути будь-хто у вашому домені.
У SQL 2005 була BUILTIN\Administrators
група з правами доступу до системного адміністратора. Ця група дозволить місцевим адміністраторам систематично отримати доступ до SQL Server. Цю групу можна видалити з SQL Server, і найкращими методами вважалося це.
Незважаючи на це, немає жодного способу запобігти впливу Windows (локального чи доменного) на сервер, на якому живе SQL Server. Це означає, що адміністратори все ще можуть впливати на служби та конфігурації рівня ОС, змінювати безпеку каталогів та інші завдання на рівні ОС. Це, зрештою, чому вони є адміністраторами Windows.
Загалом, ви повинні довіряти своїм адміністраторам, як SQL Server, так і Windows. Хоча адміністратори Windows не можуть виконувати завдання або отримувати доступ до даних (за замовчуванням) в межах самого SQL-сервера, вони все ще контролюють середовище, в якому живе ваш SQL-сервер. Вам потрібно подбати про те, кого ви присвоюєте цим ролям.