Zgodnie z najlepszymi praktykami programu SQL Server : „ Tryb uwierzytelniania systemu Windows jest bezpieczniejszy niż uwierzytelnianie SQL ”. A teraz chcę wiedzieć: czy istnieje sposób ochrony programu SQL Server przed użytkownikiem z uprawnieniami administratora systemu Windows?
sql-server
sql-server-2008
security
tsionyx
źródło
źródło
Odpowiedzi:
Nie.
Jeśli użytkownik jest administratorem systemu Windows w pudełku, załóż, że jest właścicielem wszystkiego w tym pudełku (w tym programu SQL Server). W przypadku uprawnień administratora systemu Windows trywialne jest ominięcie zastosowanej ochrony ukierunkowanej (takiej jak wyzwalacz logowania identyfikujący ich nazwę użytkownika) poprzez podszywanie
NT AUTHORITY\SYSTEM
się pod inną osobę (w tym , która de facto uzyskuje uprawnienia administratora we wszystkich lokalnych instancjach SQL Server ). Audytowanie też niewiele pomoże, ponieważ można je łatwo wyłączyć, ale powinieneś to mieć na wszelki wypadek.Jeśli komuś nie ufasz, nie przyznawaj mu uprawnień administratora systemu Windows, kropka.
źródło
Nie, nie można całkowicie uniemożliwić lokalnym administratorom
sysadmin
dostępu do instancji SQL Server.Jeśli instancja zostanie zrestartowana w trybie pojedynczego użytkownika , SQL Server jest zakodowany na stałe, aby umożliwić lokalnym administratorom
sysadmin
uprawnienia, nawet jeśli nie może istnieć jawne logowanie. Przyczyną takiego stanu rzeczy jest odzyskanie danych, ponieważ możliwe jest zablokowanie się przed wystąpieniem.To powiedziawszy, ograniczenie dostępu podczas działania instancji w trybie wielu użytkowników (bez przerw w świadczeniu usług) nie jest tak trudne. Jak wspomniał Aaron, lokalni administratorzy mogą podszywać się pod inne osoby
NT AUTHORITY\SYSTEM
, które domyślnie mająsysadmin
w SQL Server 2008 login -level. Można to wykorzystać do odzyskaniasysadmin
dostępu podczas działania serwera. (Uwaga: w SQL Server 2012 ten login nie jest już asysadmin
.) Nie wiem dokładnie, do czego ten login jest używany (prawdopodobnie aktualizacje / poprawki / itp.), Ale myślę, że można go bezpiecznie wyłączyć, z wyjątkiem te wydarzenia. Jeśli nie ma innych personifikacji loginów, powinno to wystarczyć do odmowy dostępu. Ponownie, tylko jeśli instancja jest uruchomiona, nieprzerwanie .źródło
Domyślnie w SQL 2008 i 2012 administratorzy Windows nie mają domyślnego dostępu do SQL Server. Aby administrator systemu Windows (tj. Ktoś, kto jest administratorem domeny lub administratorem lokalnym) miał dostęp, jego login musi mieć jawnie przyznany dostęp lub grupę, do której należą, wraz z prawami w samym SQL Server. Podczas konfigurowania instancji wymagane jest określenie jednego loginu lub grupy usługi Active Directory jako administratora, ale tym logowaniem / grupą może być każdy w domenie.
W SQL 2005 istniała
BUILTIN\Administrators
grupa z prawami dostępu sysadmin. Ta grupa umożliwi lokalnym administratorom sysadmin dostęp do SQL Server. Tę grupę można usunąć z programu SQL Server i uznano to za najlepszą praktykę.Biorąc to pod uwagę, nie ma sposobu, aby zapobiec wpływowi systemu Windows (lokalnego lub domeny) na serwer, na którym działa program SQL Server. Oznacza to, że administratorzy mogą nadal wpływać na usługi i konfiguracje na poziomie systemu operacyjnego, zmieniać zabezpieczenia katalogu i inne zadania na poziomie systemu operacyjnego. Właśnie dlatego są administratorami systemu Windows.
Ogólnie powinieneś zaufać swoim administratorom, zarówno SQL Serverowi, jak i Windowsowi. Administratorzy Windows nie mogą wykonywać zadań ani uzyskiwać dostępu do danych (domyślnie) w samym SQL Serverie, ale nadal kontrolują środowisko, w którym SQL Server żyje. Musisz zadbać o to, kogo przypisujesz do tych ról.
źródło