Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

CREATE LOGIN WITH DEFAULT_LANGUAGE

Termin Definicja
CREATE LOGIN WITH DEFAULT_LANGUAGE

Polecenie CREATE LOGIN WITH DEFAULT_LANGUAGE tworzy nowy login z domyślnie przypisanym językiem interfejsu.

Rola DEFAULT_LANGUAGE w poleceniu CREATE LOGIN

CREATE LOGIN ... WITH DEFAULT_LANGUAGE jest składnią języka Transact-SQL używaną w Microsoft SQL Server do utworzenia loginu oraz ustawienia języka domyślnego dla tego loginu. Login jest obiektem zabezpieczeń na poziomie instancji SQL Server. Służy do uwierzytelnienia użytkownika lub procesu przed uzyskaniem dostępu do baz danych znajdujących się na tej instancji. Samo utworzenie loginu nie oznacza jeszcze przyznania mu praw do konkretnej bazy. Dostęp bazodanowy uzyskuje się później przez utworzenie użytkownika powiązanego z loginem oraz nadanie odpowiednich uprawnień lub członkostwa w rolach.

Parametr DEFAULT_LANGUAGE wskazuje język, który SQL Server ma stosować jako domyślny w sesjach uruchamianych przez dany login. Język ten wpływa między innymi na interpretację nazw dni i miesięcy, a także na format komunikatów generowanych przez serwer. Nie jest to ustawienie języka systemu Windows, języka aplikacji klienckiej ani kodowania znaków. Nie tłumaczy też dowolnego tekstu przechowywanego w tabelach. Przykładowa składnia dla loginu uwierzytelnianego przez SQL Server może wyglądać następująco: CREATE LOGIN RaportUser WITH PASSWORD = 'SilneHasloTutaj', DEFAULT_LANGUAGE = Polish;.

Jak SQL Server rozpoznaje wskazany język

Wartość przypisana do DEFAULT_LANGUAGE musi odpowiadać językowi rozpoznawanemu przez SQL Server. Dostępne nazwy i aliasy języków można sprawdzić w widoku systemowym sys.syslanguages. Po utworzeniu loginu jego konfigurację można odczytać w widoku sys.server_principals, gdzie dla odpowiedniego principal można sprawdzić kolumnę default_language_name. Uprawniony administrator może również zmienić to ustawienie poleceniem ALTER LOGIN, bez usuwania i ponownego tworzenia loginu, na przykład: ALTER LOGIN RaportUser WITH DEFAULT_LANGUAGE = English;.

Jeżeli podczas tworzenia loginu nie zostanie podany parametr DEFAULT_LANGUAGE, SQL Server przypisuje język wynikający z konfiguracji serwera i zasad obowiązujących dla danego typu loginu. Jawne określenie języka ogranicza zależność od ustawień instancji, co ma znaczenie przy przenoszeniu skryptów między środowiskami o różnych konfiguracjach. Administrator powinien jednak używać nazwy faktycznie dostępnej na konkretnej instancji. W przeciwnym razie wykonanie polecenia zakończy się błędem składni lub walidacji wartości, a login nie zostanie utworzony.

Wpływ języka sesji na daty, komunikaty i skrypty

Domyślny język loginu może zmieniać zachowanie funkcji i poleceń zależnych od ustawień językowych sesji. Przykładem jest DATENAME, które zwraca nazwy dni tygodnia i miesięcy w języku sesji. Znaczenie ma również ustawienie formatu daty, możliwe do odczytania przez DBCC USEROPTIONS po zalogowaniu się jako dany użytkownik. Dlatego skrypt wykorzystujący niejednoznaczne literały, takie jak '03/04/2026', może dawać inne wyniki zależnie od ustawienia dateformat i języka sesji. Bezpieczniej jest stosować typy daty w parametrach zapytań albo jednoznaczne formaty obsługiwane zgodnie z regułami SQL Server.

Ustawienie DEFAULT_LANGUAGE nie zastępuje poprawnego projektowania aplikacji. Program powinien wysyłać wartości jako parametry, a nie budować zapytania przez łączenie tekstu z danymi użytkownika. W przypadku komunikatów błędów język domyślny może określać język zwracanych opisów, ale kod aplikacji nie powinien rozpoznawać błędów wyłącznie na podstawie ich polskiego lub angielskiego brzmienia. Do diagnostyki konfiguracji konkretnej sesji można użyć SELECT @@LANGUAGE;, natomiast bieżące opcje sesji można sprawdzić poleceniem DBCC USEROPTIONS;. Takie testy pozwalają odróżnić ustawienie loginu od ustawień narzuconych później przez aplikację.

Kontrola konfiguracji loginu w środowisku SQL Server

Przy wdrażaniu loginu administrator powinien zweryfikować pełną instrukcję CREATE LOGIN, rodzaj uwierzytelniania, wymagania dotyczące hasła oraz zakres późniejszych uprawnień. W przypadku loginu SQL Server hasło musi spełniać zasady haseł skonfigurowane dla instancji, chyba że zastosowano jawnie określone opcje zgodne z polityką bezpieczeństwa. Sam parametr językowy nie zwiększa ani nie zmniejsza uprawnień loginu. O tym, co login może wykonać, decydują między innymi role serwerowe, użytkownik w bazie, role bazodanowe oraz uprawnienia nadane do obiektów.

W praktyce diagnostycznej warto sprawdzić, czy login istnieje, jaki ma typ oraz jaki język zapisano w konfiguracji: SELECT name, type_desc, default_language_name, is_disabled FROM sys.server_principals WHERE name = N'RaportUser';. Następnie należy wykonać kontrolne logowanie i potwierdzić wynik przez SELECT @@LANGUAGE;. Jeżeli aplikacja zgłasza problemy z datami, nazwami miesięcy albo treścią komunikatów, trzeba porównać język loginu z opcjami ustawianymi po połączeniu przez sterownik lub aplikację. Zmiana DEFAULT_LANGUAGE rozwiązuje wyłącznie problemy wynikające z domyślnego języka sesji; nie naprawia błędnych konwersji typów, niejednoznacznych formatów dat, brakujących uprawnień ani niepoprawnego mapowania loginu na użytkownika w bazie.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę