SQL Server 2008 nie może zalogować się do nowo utworzonego użytkownika

200

Korzystam z systemu Windows Vista i mam problem z zalogowaniem się do nowo utworzonego użytkownika.

  1. Otwieram SQL Server Management Studio.
  2. Tworzę nowy login, klikając prawym przyciskiem myszy Bezpieczeństwo-> Loginy.
    Sprawdź: Uwierzytelnianie programu SQL Server
    Nazwa logowania: tester
    Hasło: test
    Kliknij OK
  3. Dodałem tego użytkownika do Mapowania użytkowników do mojej wybranej bazy danych.
  4. Kliknij opcję Plik -> Połącz obiekt eksploratora, wybierz opcję Uwierzytelnianie serwera SQL, wprowadź tester / test i kliknij Połącz.

Dostaję błąd:

Login failed for user 'tester'. (Microsoft SQL Server, Error: 18456" 
with Severity = 14 and State = 1.

Co powoduje ten błąd i jak zalogować się do mojego użytkownika?

Travis Heseman
źródło

Odpowiedzi:

480

Program SQL Server nie został skonfigurowany w celu umożliwienia uwierzytelniania mieszanego.

Oto kroki, które należy naprawić:

  1. Kliknij prawym przyciskiem myszy wystąpienie programu SQL Server w katalogu głównym Eksploratora obiektów, kliknij polecenie Właściwości
  2. Wybierz Zabezpieczenia z lewego panelu.
  3. Wybierz przycisk opcji Tryb uwierzytelniania SQL Server i Windows, a następnie kliknij OK.

    wprowadź opis zdjęcia tutaj

  4. Kliknij prawym przyciskiem myszy wystąpienie programu SQL Server, wybierz opcję Uruchom ponownie (alternatywnie otwórz Usługi i zrestartuj usługę SQL Server).

Jest to również niezwykle pomocne dla użytkowników IBM Connections, moje kreatory nie mogły się połączyć, dopóki nie wyłączyłem tego ustawienia.

Travis Heseman
źródło
8
Myślę, że to dobrze, ponieważ pozwala potencjalnym respondentom wiedzieć, że problem został rozwiązany. Przyczynia się także do powiększania się dokumentacji, z której inni programiści mogą korzystać w przyszłości w celu znalezienia własnych odpowiedzi.
4
Odpowiadanie na własne pytania zdecydowanie nie jest złe. Nawet lata po danych Twoja odpowiedź była dla mnie przydatna!
johanvdw
4
Miałem ten sam problem. Szukałem rozwiązania przez wiele godzin. Próbowałem wszystkiego, co mogłem, aby to rozwiązać, ale się nie stało. Potem zobaczyłem ten post. Myślałem, że ponowne uruchomienie usługi to coś, czego nie próbowałem. Ponownie uruchomiłem usługę i zadziałała! Potem zalogowałem się tylko po to, żeby powiedzieć ... DZIĘKUJĘ
Answer_42
16
Winą powinien być absurdalny komunikat o błędzie. Gdyby powiedział coś w stylu „Nie można się zalogować. Uwierzytelnianie programu SQL Server jest niedozwolone. Serwer jest skonfigurowany tak, aby zezwalał tylko na uwierzytelnianie systemu Windows. Prosimy o kontakt ...” zaoszczędziłoby wiele bólu.
rpattabi
5
@ Tony Ciekawe. Dzięki. Mimo to nie jestem przekonany, że bezpieczeństwo jest ważną wymówką, która utrudnia użyteczność. W komunikacie mogło być coś, co wskazywałoby użytkownikowi na rozwiązanie problemu.
rpattabi
14

Jeśli po wprowadzeniu zmian logowania nie uruchomiono ponownie serwera bazy danych SQL, upewnij się, że to zrobisz. Start-> Programs-> Microsoft SQL Server-> Configuration tools-> SQL Server configuration manager-> Restart Server.

Wygląda na to, że dodałeś tylko użytkownika do serwera. Musisz także dodać je do bazy danych. Otwórz bazę danych / Bezpieczeństwo / Użytkownik / Dodaj nowego użytkownika lub otwórz serwer / Bezpieczeństwo / Loginy / Właściwości / Mapowanie użytkowników.

Eric Leschinski
źródło
Dzięki za zauważenie. Zapomniałem wspomnieć, że edytowałem mapowanie użytkowników, aby to zrobić.
Travis Heseman,
Stary wątek, wiem, ale musiałem dodać nowy login do serwera, zanim mogłem dodać nowego użytkownika do bazy danych. Serwer> Bezpieczeństwo> Loginy> Kliknij prawym przyciskiem myszy, Nowy serwer logowania> Bazy danych> Wybierz bazę danych> Bezpieczeństwo> Użytkownicy> Kliknij prawym przyciskiem myszy, nowy użytkownik.
red_dorian
2

Najprawdopodobniej będziesz musiał sprawdzić dzienniki błędów programu SQL Server, aby określić rzeczywisty stan (nie jest zgłaszany klientowi ze względów bezpieczeństwa.) Zobacz tutaj, aby uzyskać szczegółowe informacje.

GuyBehindtheGuy
źródło
Dzięki .. Byłem już na tej stronie. Zauważ, że nie wspomina o tym, co faktycznie oznacza stan = 1. Grr ... ale teraz mam się dobrze.
Travis Heseman,
Jak wyjaśnia strona, stan zalogowany w dzienniku błędów SQL Server będzie inny niż stan zgłoszony użytkownikowi.
GuyBehindtheGuy
1

Zaloguj się do serwera jako administrator

Przejdź do Bezpieczeństwo> Loginy> Nowy login

Krok 1:

Login Name : SomeName

Krok 2:

Select  SQL Server / Windows Authentication.

Więcej informacji na temat, jakie są różnice między uwierzytelnianiem serwera SQL i uwierzytelnianiem systemu Windows ..?

Wybierz domyślną bazę danych i język

Kliknij OK

Spróbuj połączyć się z danymi uwierzytelniającymi nowego użytkownika. Zostaniesz poproszony o zmianę hasła. Zmień i zaloguj się

LUB

Spróbuj z zapytaniem:

USE [master] -- Default DB
GO

CREATE LOGIN [Username] WITH PASSWORD=N'123456', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=ON, CHECK_POLICY=ON
GO

--123456 is the Password And Username is Login User 
ALTER LOGIN [Username] enable -- Enable or to Disable User
GO
MAX
źródło