Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak znaleźć domyślny język użytkownika w SQL Server (T-SQL)

W SQL Server możesz znaleźć domyślny język dla danego użytkownika, wysyłając zapytanie do sys.server_principals widok katalogu systemowego.

Ten widok zawiera wiersz dla każdego podmiotu zabezpieczeń na poziomie serwera. Zawiera informacje, takie jak nazwa zleceniodawcy, typ, data utworzenia/modyfikacji, domyślna baza danych, domyślny język itp. Zleceniodawca to jednostka, która może żądać zasobów SQL Server.

Zleceniodawca może być jednym z następujących:

Zleceniodawcy na poziomie Windows

  • Logowanie do domeny Windows
  • Logowanie lokalne Windows

Zasada na poziomie serwera SQL

  • Logowanie do serwera SQL

Zleceniodawcy na poziomie bazy danych

  • Użytkownik bazy danych
  • Rola bazy danych
  • Rola aplikacji

Przykład zwracania domyślnego języka zleceniodawcy

Aby uzyskać domyślny język dla danego podmiotu, możesz zapytać sys.server_principals wyświetl i użyj WHERE klauzula dotycząca głównego imienia, które Cię interesuje.

Tak:

SELECT 
    type_desc,
    default_database_name,
    default_language_name 
FROM master.sys.server_principals
WHERE name = 'sa';

Wynik:

+-------------+-------------------------+-------------------------+
| type_desc   | default_database_name   | default_language_name   |
|-------------+-------------------------+-------------------------|
| SQL_LOGIN   | master                  | us_english              |
+-------------+-------------------------+-------------------------+

Ten przykład pobiera domyślny język dla sa główny. Główna nazwa jest unikatowa na serwerze. Ten przykład zwraca również domyślną bazę danych oraz typ główny. W tym przypadku zleceniodawcą jest logowanie do serwera SQL.

Oto kolejny przykład z użyciem innego użytkownika:

SELECT 
    type_desc,
    default_database_name,
    default_language_name 
FROM master.sys.server_principals
WHERE name = 'Bach';

Wynik:

+-------------+-------------------------+-------------------------+
| type_desc   | default_database_name   | default_language_name   |
|-------------+-------------------------+-------------------------|
| SQL_LOGIN   | Music                   | German                  |
+-------------+-------------------------+-------------------------+

W takim przypadku login ma inną domyślną bazę danych i język.

Oczywiście zawsze możesz użyć gwiazdki, aby w razie potrzeby zwrócić wszystkie kolumny.

Pamiętaj, że każdy login może zobaczyć własną nazwę logowania, loginy systemowe i stałe role serwera. Aby zobaczyć inne loginy, wymaga ALTER ANY LOGIN lub pozwolenie na logowanie. Aby zobaczyć role serwera zdefiniowane przez użytkownika, wymaga ALTER ANY SERVER ROLE lub członkostwo w roli.

Język domyślny a język bieżący

W większości przypadków bieżący język użytkownika sesji będzie językiem domyślnym. Ale nie zawsze tak jest, ponieważ użytkownik może zmienić bieżący język za pomocą SET LANGUAGE oświadczenie. Spowoduje to zmianę języka bieżącej sesji, ale ich domyślny język pozostanie bez zmian.

Aby dowiedzieć się więcej, zobacz Jak ustawić bieżący język w SQL Server (T-SQL) i 3 sposoby uzyskania języka bieżącej sesji w SQL Server (T-SQL).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Napraw problem oczekujący na odzyskanie bazy danych SQL z odmową dostępu

  2. Hierarchiczna lista typów zdarzeń wyzwalających w SQL Server 2019

  3. CURRENT_TIMESTAMP Przykłady w SQL Server (T-SQL)

  4. Zapytanie o najwyższej wydajności procesora SQL Server -1

  5. Konwencje nazewnictwa baz danych firmy Microsoft?