In SQL Server können Sie die Standardsprache für einen bestimmten Benutzer herausfinden, indem Sie sys.server_principals
abfragen Systemkatalogansicht.
Diese Ansicht enthält eine Zeile für jeden Prinzipal auf Serverebene. Es enthält Informationen wie Name, Typ, Erstellungs-/Änderungsdatum, Standarddatenbank, Standardsprache usw. des Prinzipals. Ein Prinzipal ist eine Entität, die SQL Server-Ressourcen anfordern kann.
Ein Prinzipal könnte einer der folgenden sein:
Prinzipale auf Windows-Ebene
- Windows-Domänenanmeldung
- Lokale Windows-Anmeldung
Prinzipal auf SQL Server-Ebene
- SQL Server-Anmeldung
Principals auf Datenbankebene
- Datenbankbenutzer
- Datenbankrolle
- Anwendungsrolle
Beispiel für die Rückgabe der Standardsprache eines Prinzipals
Um die Standardsprache für einen bestimmten Prinzipal abzurufen, können Sie sys.server_principals
abfragen ein WHERE
anzeigen und verwenden -Klausel für den Prinzipalnamen, an dem Sie interessiert sind.
So:
SELECT type_desc, default_database_name, default_language_name FROM master.sys.server_principals WHERE name = 'sa';
Ergebnis:
+-------------+-------------------------+-------------------------+ | type_desc | default_database_name | default_language_name | |-------------+-------------------------+-------------------------| | SQL_LOGIN | master | us_english | +-------------+-------------------------+-------------------------+
Dieses Beispiel ruft die Standardsprache für sa
ab Rektor. Der Prinzipalname ist innerhalb eines Servers eindeutig. Dieses Beispiel gibt auch die Standarddatenbank sowie den Prinzipaltyp zurück. In diesem Fall ist der Prinzipal eine SQL Server-Anmeldung.
Hier ist ein weiteres Beispiel mit einem anderen Benutzer:
SELECT type_desc, default_database_name, default_language_name FROM master.sys.server_principals WHERE name = 'Bach';
Ergebnis:
+-------------+-------------------------+-------------------------+ | type_desc | default_database_name | default_language_name | |-------------+-------------------------+-------------------------| | SQL_LOGIN | Music | German | +-------------+-------------------------+-------------------------+
In diesem Fall hat das Login eine andere Standarddatenbank und -sprache.
Natürlich können Sie bei Bedarf immer ein Sternchen verwenden, um alle Spalten zurückzugeben.
Beachten Sie, dass jeder Login seinen eigenen Login-Namen, die System-Logins und die festen Serverrollen sehen kann. Um andere Logins zu sehen, ist ALTER ANY LOGIN
erforderlich , oder eine Berechtigung für die Anmeldung. Um benutzerdefinierte Serverrollen anzuzeigen, ist ALTER ANY SERVER ROLE
erforderlich , oder Mitgliedschaft in der Rolle.
Standardsprache vs. aktuelle Sprache
In den meisten Fällen ist die aktuelle Sprache eines Benutzers für seine Sitzung seine Standardsprache. Dies ist jedoch nicht immer unbedingt der Fall, da ein Benutzer die aktuelle Sprache ändern kann, indem er SET LANGUAGE
verwendet Erklärung. Dadurch wird die Sprache für die aktuelle Sitzung geändert, aber ihre Standardsprache bleibt unverändert.
Weitere Informationen finden Sie unter How to Set the Current Language in SQL Server (T-SQL) und 3 Ways to Get the Language of the Current Session in SQL Server (T-SQL).