Jak skonfigurować program SQL Server 2012, aby mógł przywracać i wyświetlać pliki na moim koncie użytkownika?

10

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.

Warren P.
źródło
Powodem, dla którego SQL nie korzysta ze standardowego okna dialogowego jest to, że nie można wybrać pliku, z którego SQL nie może odczytać. Jeśli chodzi o konfigurację zabezpieczeń, czy jesteś otwarty na zmianę konta, na którym działa SQL, czy chcesz pozostawić go takim, jakim jest teraz? Jeśli zmiana konta serwisowego jest w porządku, można to łatwo załatwić. Używamy nazwanych kont, więc nie mogę przeprowadzać testów z ogólnym kontem MSSQLSERVER, aby w tym pomóc.
cfradenburg
1
Zobacz tutaj: dba.stackexchange.com/questions/23864/...
Jon Seigel,
Jeśli podczas tworzenia wszyscy zmieniają swoje serwery SQL, aby działały ze zwykłym identyfikatorem użytkownika, może to być „najlepsza praktyka”. Zastanawiam się tylko, czy to dobry pomysł, czy nie. Jeśli ręczne dodawanie „NT Service \ MSSQLSERVER” do folderów, do których muszę dodać, jest standardowym pomysłem, wydaje mi się, że byłaby to najbardziej logiczna minimalna poprawka, prawda? Wot, chciałbym, aby interfejs SSMS serwera SQL był nieco łatwiejszy do połączenia z tym ukrytym identyfikatorem konta „NT Server \ xxx”.
Warren P,

Odpowiedzi:

5

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.

Konta wirtualne

Konta wirtualne w systemie Windows Server 2008 R2 i Windows 7 są zarządzanymi kontami lokalnymi, które zapewniają następujące funkcje w celu uproszczenia administrowania usługami. Konto wirtualne jest automatycznie zarządzane, a konto wirtualne może uzyskać dostęp do sieci w środowisku domeny. Jeśli wartość domyślna jest używana dla kont usług podczas instalacji programu SQL Server w systemie Windows Server 2008 R2 lub Windows 7, używane jest konto wirtualne, używając nazwy instancji jako nazwy usługi, w formacie NT SERVICE \. Usługi działające jako konta wirtualne uzyskują dostęp do zasobów sieciowych przy użyciu poświadczeń konta komputera w formacie \ $. Określając konto wirtualne w celu uruchomienia programu SQL Server, pozostaw hasło puste. Jeśli konto wirtualne nie zarejestruje głównej nazwy usługi (SPN), zarejestruj ją ręcznie. Aby uzyskać więcej informacji na temat ręcznej rejestracji nazwy SPN, zobacz Zarejestruj główną nazwę usługi dla połączeń Kerberos. Uwaga Uwaga Kont wirtualnych nie można używać dla wystąpienia klastra pracy awaryjnej programu SQL Server, ponieważ konto wirtualne nie będzie miało tego samego identyfikatora SID w każdym węźle klastra.

W poniższej tabeli wymieniono przykłady nazw kont wirtualnych.

Domyślne wystąpienie usługi Aparat baz danych: NT SERVICE \ MSSQLSERVER Nazwane wystąpienie usługi Aparat baz danych o nazwie PAYROLL: NT SERVICE \ MSSQL $ PAYROLL Usługa agenta SQL Server na domyślnej instancji programu SQL Server: NT SERVICE \ SQLSERVERAGENT Usługa agenta SQL Server wystąpienie programu SQL Server o nazwie PAYROLL: NT SERVICE \ SQLAGENT $ PAYROLL


źródło
3
Przez użytkownika końcowego mam na myśli dowolną z dziesiątek kategorii osób, niektóre dość profesjonalne i kompetentne technicznie w różnych dyscyplinach, ale które NIE mogą być DBA. Osobiście uważam, że nawet DBA odkryłyby, że interfejs użytkownika tego narzędzia mógłby zostać ulepszony. Solidny rynek narzędzi stron trzecich jest kolejnym wskaźnikiem, że SSMS, choć darmowy, jest całkowicie wart swojej ceny.
Warren P
1
W 2017 roku nie było już lepiej. Krótka odpowiedź brzmi: „nigdy nie będzie lepiej, dowiedz się, jak to działa, jakkolwiek źle zaprojektowany jest interfejs użytkownika”.
Warren P
2

Aby zobaczyć / uzyskać dostęp do plików w innym folderze, daj NT SERVICE\MSSQLSERVERuprawnienia 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!

AdamsTips
źródło
1

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 :)

Andreas Wolter
źródło
1
Nie zapomnij o poświadczeniach .
Remus Rusanu
Nie jestem pewien, czy to usuwa zamieszanie ... Jeśli jesteś zalogowany za pośrednictwem WA, twoje konto SQL Server potrzebuje uprawnień do przywrócenia (w zakresie, w jakim dotyczy SQL Server), ale konto usługi SQL Server wymaga uprawnień do odczytu w systemie plików, aby otworzyć .bakplik (którego na ogół nie będzie miał, jeśli znajduje się w katalogu użytkownika, chyba że zostanie to wyraźnie udzielone).
Bruno