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

ALTER LOGIN WITH DEFAULT_LANGUAGE

Termin Definicja
ALTER LOGIN WITH DEFAULT_LANGUAGE

Polecenie ALTER LOGIN WITH DEFAULT_LANGUAGE zmienia domyślny język przypisany do danego loginu na serwerze SQL.

Rola DEFAULT_LANGUAGE w logowaniu do SQL Server

ALTER LOGIN ... WITH DEFAULT_LANGUAGE jest opcją języka Transact-SQL w silniku Microsoft SQL Server. Służy do przypisania określonego języka do istniejącego loginu serwerowego. Login jest obiektem poziomu instancji, używanym do uwierzytelniania przed uzyskaniem dostępu do baz danych. Zmieniana wartość nie określa języka interfejsu SQL Server Management Studio ani języka systemu operacyjnego.

Przykładowa składnia ma postać ALTER LOGIN [NazwaLoginu] WITH DEFAULT_LANGUAGE = [us_english];. W miejscu NazwaLoginu należy podać istniejący login, a w miejscu wartości język rozpoznawany przez daną instancję SQL Server. Nazwę loginu warto ujmować w nawiasach kwadratowych, zwłaszcza gdy zawiera spacje, znaki specjalne albo jest zgodna ze słowem kluczowym.

Jak język loginu wpływa na sesję

Domyślny język loginu jest używany jako początkowy język sesji po pomyślnym zalogowaniu. Wpływa między innymi na język komunikatów systemowych kierowanych do tej sesji oraz na ustawienia związane z interpretacją dat. SQL Server może na przykład inaczej interpretować tekstową wartość daty zależnie od ustawienia języka i wynikającego z niego formatu daty. Z tego powodu aplikacje powinny unikać niejednoznacznych literałów daty i stosować formaty jednoznaczne dla używanego zapytania oraz sterownika.

Zmiana wartości DEFAULT_LANGUAGE nie zmienia języka już aktywnej sesji. Nowa wartość zostanie zastosowana przy następnym logowaniu, gdy SQL Server utworzy nową sesję dla tego loginu. Język bieżącej sesji można zmienić niezależnie za pomocą polecenia SET LANGUAGE, a aktualne ustawienie można sprawdzić funkcją @@LANGUAGE. Takie ustawienie sesyjne ma zakres ograniczony do konkretnego połączenia.

Sprawdzanie loginu i dostępnych języków

Przed wykonaniem zmiany należy potwierdzić, że login istnieje oraz że wskazany język jest dostępny w instancji SQL Server. Informacje o loginach można odczytać z widoku katalogowego sys.server_principals. Kolumna default_language_name pokazuje nazwę domyślnego języka przypisanego do principalu. Przykładowe zapytanie kontrolne to SELECT name, type_desc, default_language_name FROM sys.server_principals WHERE name = N'NazwaLoginu';.

Lista języków obsługiwanych przez instancję jest dostępna w widoku zgodności sys.syslanguages. Można z niego odczytać między innymi nazwę języka, aliasy, identyfikator języka oraz ustawienia formatu daty. Warto używać nazwy zweryfikowanej w tym widoku, ponieważ wartość przekazana do DEFAULT_LANGUAGE musi odpowiadać językowi rozpoznawanemu przez konkretną instancję. Samo przypisanie języka nie instaluje nowych tłumaczeń ani nie dodaje obsługi języka do serwera.

Domyślny język instancji jest także ustawieniem konfiguracyjnym używanym jako wartość początkowa dla nowo tworzonych loginów, jeżeli podczas ich tworzenia nie wskazano innego języka. Późniejsza zmiana ustawienia serwera nie nadpisuje automatycznie wartości zapisanej przy istniejących loginach. Dlatego kontrola konfiguracji powinna obejmować konkretne loginy, a nie tylko ogólne ustawienie instancji.

Uprawnienia, skutki i diagnostyka konfiguracji

Wykonanie ALTER LOGIN wymaga odpowiednich uprawnień bezpieczeństwa na poziomie serwera, w szczególności uprawnienia ALTER ANY LOGIN albo uprawnienia pozwalającego modyfikować wskazany login, zależnie od konfiguracji i wersji SQL Server. Brak uprawnień powoduje błąd autoryzacji zamiast zmiany ustawienia. Polecenie należy wykonywać z użyciem właściwego loginu administracyjnego oraz po sprawdzeniu, czy zmiana jest zgodna z oczekiwaniami aplikacji korzystających z tego konta.

Nieprawidłowo dobrany język może ujawnić się jako komunikaty w innym języku, różnice w formacie daty albo błędna interpretacja niejednoznacznych danych wejściowych. Sama zmiana domyślnego języka nie naprawia zapytań, które zależą od lokalnych ustawień, nie zmienia danych zapisanych w tabelach i nie wpływa na uprawnienia do baz danych. W diagnostyce należy więc rozdzielić trzy elementy: konfigurację loginu w sys.server_principals, ustawienie bieżącej sesji oraz sposób, w jaki aplikacja lub sterownik przesyła daty i parametry do SQL Server. Przed wdrożeniem warto sprawdzić nowe połączenie testowe za pomocą SELECT @@LANGUAGE; i potwierdzić zachowanie zapytań używających dat oraz komunikatów zależnych od języka.

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