Czy zmiana hasła „sa” wymaga ponownego uruchomienia SQL (w trybie mieszanym)?

14

Odkryliśmy, że konto SQL „sa” jest używane w sposób, w jaki nie powinno tak być, dlatego zmieniamy hasła sa we wszystkich naszych instancjach SQL.

(Mamy serwery SQL 2005 do 2017 działające w trybie uwierzytelniania mieszanego. Wszyscy użytkownicy i aplikacje powinni się łączyć z kontami domeny lub kontami SQL innymi niż sa. Monitorowałem, ale nie znalazłem żadnych innych aplikacji, użytkowników ani innych - wewnętrzne pająki korzystające z konta sa).

Kilka pytań:

P1: Czy zmiana hasła sa wymaga ponownego uruchomienia SQL?

Znalazłem kilka odniesień, które mówią, że po zmianie hasła do konta sa wymagane jest ponowne uruchomienie usługi SQL:

Czy to prawda? Czy tylko jeśli zmienię tryb uwierzytelniania? Czy tylko wtedy, gdy rutynowo loguję się jako SA?

Ten wątek centralny programu SQL Server sugeruje nawet, że zmiana może mieć wpływ na istniejące zadania agenta SQL i inne rzeczy; czy to problem? Czy tylko wtedy, gdy ktoś zakodował konto SA w pakiecie SSIS lub coś takiego?

(W razie potrzeby korzystamy z kont domeny dla usługi SQL i usługi agenta SQL oraz kont proxy domeny dla zadań wywołujących pakiety SSIS lub skrypty PowerShell).

Q2: Czy mogę zmienić hasło sa w „normalny” sposób?

Czy mogę to zresetować tak jak inne konta? Korzystanie z SSMS lub bardziej prawdopodobne poprzez:

ALTER LOGIN sa WITH PASSWORD = 'newpass';

Czy też musiałbym wejść w tryb jednego użytkownika lub coś, co wymagałoby planowanego przestoju? (Pamiętaj, że uruchamiałbym to z konta domeny, a nie będąc połączonym jako „sa”).

P3: Czy powinniśmy starać się regularnie zmieniać hasło? Czy tylko wtedy, gdy znajdziemy problem?

Czy jest to zalecana „najlepsza praktyka”?

BradC
źródło

Odpowiedzi:

15

P1: Czy zmiana hasła sa wymaga ponownego uruchomienia SQL?

Nie, ale zmienia się tryb uwierzytelniania. Ponieważ zmieniasz tylko hasło, a tryb uwierzytelniania jest już ustawiony na mieszany, możesz po prostu zmienić hasło.

Q2: Czy mogę zmienić hasło sa w „normalny” sposób?

Tak, to tylko kolejne konto logowania SQL.

P3: Czy powinniśmy starać się regularnie zmieniać hasło? Czy tylko wtedy, gdy znajdziemy problem?

Szczerze mówiąc, chciałbym wyłączyć i zmienić nazwę logowania SA. W ten sposób w ogóle nie będzie używany, a jeśli potrzebujesz wysoce uprzywilejowanego logowania, możesz go utworzyć w razie potrzeby.

Sean Gallardy
źródło
Nie zmieniaj nazwy, ale wyłączenie to naprawdę dobry pomysł.
Joshua
2
@Joshua Zmiana nazwy jest dobrym pomysłem, szczególnie jeśli jesteś poddawany audytowi lub w ramach innych praktyk bezpieczeństwa, które mogą być wymagane w ramach działań związanych z zapewnieniem zgodności.
Sean Gallardy
2
Spędziłem zbyt dużo czasu na wyszukiwaniu uszkodzonych elementów, ponieważ ktoś zmienił nazwę wbudowanego konta po jego użyciu.
Joshua
@Joshua, jeśli zmieniłeś nazwę i wyłączyłeś go podczas jego budowy, nie będzie problemu. Oczywiście jest to tylko rozwiązanie przyszłościowe. Zmiana nazwy miesiące lub lata później może być problematyczna.
James Jenkins
@JamesJenkins: Ach dobrze, że łapiesz.
Joshua
7

To jest zamykanie drzwi stodoły po tym, jak konie już uciekły z pytania.

Powinieneś zmienić nazwę i wyłączyć konto sa podczas tworzenia instancji.

Za każdym razem, gdy masz dobrze znane konto, takie jak administrator w systemie Windows lub sa dla SQL Server, powinieneś podjąć pewne kroki, aby je zabezpieczyć. Zobaczmy dokładnie, co powinieneś zrobić z sa:

Ustaw trudne do odgadnięcia hasło.

Zmień nazwę sa.

Wyłącz sa.

Upewnij się, że nie istnieją inne konta o nazwie sa.

Źródło

Jeśli utrzymujesz konto „sa” jako awaryjny sposób uzyskania dostępu do SQL, istnieją bezpieczniejsze sposoby: Połącz się z SQL Server, gdy administratorzy systemu są zablokowani Jeśli nie masz dostępu do konta sieciowego, masz większe problemy, a nie bycie w stanie połączyć się z SQL.

James Jenkins
źródło
1
Widzę zmianę nazwy sa, ale czy nie wyłączenie jej całkowicie uniemożliwiłoby mi nawiązanie połączenia, gdyby uwierzytelnianie domeny stało się niedostępne w sytuacji awaryjnej? (Nie żebym pamiętał, że kiedykolwiek musiałem to zrobić, ale staram się przewidzieć wszystkie nieprzewidziane okoliczności.)
BradC
@BradC edytowany w aktualizacji dotyczącej twojego komentarza
James Jenkins,
Dzięki, rozważymy to dla długoterminowego rozwiązania.
BradC,
1
Zintegrowane uwierzytelnianie jest trudne, jeśli nie niemożliwe, całkowicie przestaje działać, ponieważ usługa SQL Server nie uruchomi się, dopóki się nie zaloguje. Nie trzeba mieć domeny Active Directory, aby korzystać ze zintegrowanego uwierzytelniania systemu Windows; SQL Server może uwierzytelnić Cię w stosunku do lokalnego organu bezpieczeństwa.
Max Vernon