Mam instancję programu SQL Server 2012 uruchomioną jako usługa na moim komputerze i zgodnie ze stroną usługi loguje się jako konto „NT Service \ MSSQLSERVER”. Jednak nie widzę tej nazwy konta nigdzie indziej, w tym w obszarze „Lokalni użytkownicy i grupy” na ekranie zarządzania komputerem, ponieważ, jak pokazuje poniższy link, to nie jest konto użytkownika, to nazwa usługi, w tym polu Microsoft tak pomocnie oznaczył „konto”. W tym momencie widzę wielu ludzi zdezorientowanych.
Zadaniem, które próbuję wykonać, jest przywrócenie plików za pomocą okna dialogowego SSMS „Lokalizowanie pliku kopii zapasowej”, które używa okna dialogowego zupełnie innego niż standardowe okna dialogowe otwierania plików systemu Windows, prawdopodobnie dlatego, że wykonuje „zdalne” zadanie i działa z poziomu kontekst bezpieczeństwa serwera SQL, kolejne bogate źródło zamieszania użytkowników końcowych, które mam nadzieję, że to pytanie może pomóc wyjaśnić.
Do tej pory, jeśli chcę przywrócić kopię zapasową pliku .mdf / .bak, który mam w jednym z moich folderów, muszę ustawić ten folder na czytelny dla wszystkich, bo inaczej nie mogę się tam dostać z SQL Server „Lokalizowanie kopii zapasowej Plik ”. Uważam ten pomysł, że używasz GUI rozmawiającego z usługą, która ma inne konta użytkowników i prawa niż ty, że nikt w Microsoft nawet nie chciał cię wyjaśnić, bardzo mylące, nawet gdy mam wieloletnie doświadczenie w administrowaniu systemem Windows .
Mam nadzieję, że przegapiłem kilka stron dokumentacji dla SQL Servera, które po zainstalowaniu nowej instancji serwera SQL powiedzą ci, jak możesz skonfigurować zabezpieczenia.
Na postach na forum, takich jak ten , nawet pracownicy Microsoftu mówią „to jest skomplikowane” i że „to się zmieniło” ponownie w Denali. Jak to działa teraz w SQL Server 2012 i jak mogę dodać uprawnienia do odczytu plików należących do użytkowników do zabezpieczeń silnika bazy danych SQL SID
.
źródło
Odpowiedzi:
Dla odniesienia „Denali” to SQL Server 2012. Jeśli chodzi o „zamieszanie użytkownika końcowego”, nie martwię się o to, czy użytkownik końcowy jest zdezorientowany, czy nie w odniesieniu do SSMS. Microsoft nie opracował tego narzędzia dla zwykłego użytkownika końcowego, ale dla administratora bazy danych i / lub użytkownika, który musiał zarządzać bazą danych. Dlatego pojawi się krzywa uczenia się z dostarczonymi narzędziami i sposobem ich działania. Okno dialogowe pliku jest takie samo w SSMS, odkąd SSMS wyszedł z SQL Server 2005. Dlatego generalnie zobaczysz większość trzymać się instrukcji T-SQL do tworzenia kopii zapasowych, przywracania lub dołączania bazy danych, która używała go od tego czasu .
Aby skonfigurować uprawnienia systemu plików za pomocą SQL Server, możesz postępować zgodnie z instrukcjami z MSDN tutaj .
Sposób, w jaki obsługiwane są konta usług, nie był dostarczany z programem SQL Server lub z tego powodu, ponieważ było to spowodowane zmianą na poziomie systemu operacyjnego. Windows Server 2008 R2 położył nieco więcej warstwy zabezpieczeń wokół kont usług. Zaletą jest to, że konto usługi może łatwiej uzyskać dostęp do zasobów w domenie, nawet jeśli jest zainstalowane z ustawieniami domyślnymi. Ten link zapewnia dość szczegółowe spojrzenie na sposób obsługi uprawnień do kont usług w SQL Server 2012. Fragment linku znajduje się poniżej na kontach wirtualnych używanych domyślnie w SQL Server 2012. W artykule znajduje się również link, który zawiera więcej dyskusja na temat koncepcji konta usługi z systemem Windows tutaj. Pochodzi z systemu Windows Server 2008 R2, ale uważam, że nadal obowiązuje w Windows Server 2012 i prawdopodobnie Windows Server 2012 R2.
źródło
Aby zobaczyć / uzyskać dostęp do plików w innym folderze, daj
NT SERVICE\MSSQLSERVER
uprawnienia do folderu. Zobacz moją odpowiedź opublikowaną w pliku .bak niewidoczną w żadnym katalogu w SSMS dla zrzutów ekranu i związanych z nimi kroków. (Nieco różni się od dodawania normalnych uprawnień użytkownika / grupy do folderu).Mam nadzieję, że to pomaga!
źródło
W rzeczywistości, jeśli spróbujesz wykonać przywracanie za pomocą SSMS i zalogujesz się za pomocą uwierzytelniania systemu Windows (!), To Twoje konto Windows (a nie „wszyscy też) będzie potrzebowało do tego uprawnień - NIE usługa SQL Server Konto. Mam nadzieję, że rozwiąże to zamieszanie. Konto usługi ma inne potrzeby. Na przykład, jeśli logowałeś się za pomocą konta uwierzytelnionego SQL - to o jakie uprawnienia powinien poprosić system operacyjny? - Będzie to konto usługi SQL Server tylko przypadek! Nie zmieniło się to od SQL Server 7.0 i prawdopodobnie nawet wcześniej :)
źródło
.bak
plik (którego na ogół nie będzie miał, jeśli znajduje się w katalogu użytkownika, chyba że zostanie to wyraźnie udzielone).