Обмежити доступ адміністратору Windows


11

Як говорить найкраща практика SQL Server , " режим автентифікації Windows є більш безпечним, ніж аутентифікація SQL ". А тепер я хочу знати: чи існує спосіб захисту SQL Server від користувача з правами адміністратора Windows?


4
Шостий невід'ємний закон безпеки: "Комп'ютер настільки ж безпечний, наскільки адміністратор надійний". Тут також актуальні закони 2 та 10. technet.microsoft.com/library/cc722487.aspx
Дан піднімається вогняним світлом

Відповіді:


15

Ні.

Якщо користувач є адміністратором вікна Windows, припустіть, що їм належить все, що знаходиться у коробці (включаючи SQL Server). З правами адміністратора Windows неважливо обходити будь-який цільовий захист, який ви застосовуєте (наприклад, тригер входу, який ідентифікує ім’я користувача), видаючи себе за когось іншого (в тому числі NT AUTHORITY\SYSTEM, який фактично отримує права адміністратора на всіх локальних екземплярах SQL Server ). Аудит теж не дуже допоможе, тому що вони можуть легко відключити це, але вам це доведеться про всяк випадок.

Якщо ви комусь не довіряєте, не дайте їм прав адміністратора Windows, періоду.


2
+1 що-небудь, що претендує на заперечення вбудованих \ адміністраторів, це зміїна олія
Ремус Русану

1

Ні, повністю запобігти доступу місцевих адміністраторів sysadminдо екземпляра SQL Server неможливо .

Якщо екземпляр перезапускається в режимі для одного користувача , SQL Server жорстко кодується, щоб дозволити місцевим адміністраторам sysadminпривілеї, навіть не маючи явного входу. Причина цього існує в цілях відновлення, оскільки можна заблокувати себе з екземпляра.

Однак, обмеження доступу під час запуску екземпляра в багатокористувацькому режимі (без перерв у роботі сервісу) не так вже й складно. Як зазначав Аарон, місцеві адміністратори можуть представити себе за себе NT AUTHORITY\SYSTEM, який за замовчуванням має sysadminлогін-lovel, створений у SQL Server 2008. Це можна використовувати для відновлення sysadminдоступу під час роботи сервера. (Примітка. У SQL Server 2012 цей логін більше не є sysadmin.) Я не знаю, для чого точно використовується цей логін (оновлення / гарячі виправлення / тощо., Мабуть), але я думаю, що це безпечно відключити, за винятком під час ті події. Якщо немає інших несанкціонованих входів, цього повинно бути достатньо, щоб заборонити доступ. Знову лише, якщо екземпляр працює безперебійно .


0

За замовчуванням у 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-сервер. Вам потрібно подбати про те, кого ви присвоюєте цим ролям.


3
Не користуйтеся цим занадто великим комфортом - хоча зміни, внесені компанією Microsoft, роблять її трохи більш захищеною, вона поки ніде не підходить до куль. Для місцевого адміністратора це неприємно, і вони проводять свої торги безпосередньо в будь-якому місцевому екземплярі SQL Server - тому вам потрібно турбуватися про більше, ніж просто непрямий вплив на рівні ОС.
Аарон Бертран

Мені слід запитати - які обставини виправдовують надання адміністратору доступу, який не довіряє користувачеві, доступ до сервера?
Марк Аллен

Особисто я не думаю. Як і багато інших людей заявили в інших відповідях (і не так чітко тут), ви повинні довіряти своїм адміністраторам. І якщо ви їм не довіряєте, не робіть їх адміністраторами.
Майк Фаль
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.