I SQL Server kan du finde ud af standardsproget for en given bruger ved at forespørge på sys.server_principals
systemkatalogvisning.
Denne visning indeholder en række for hver principal på serverniveau. Den indeholder information såsom rektors navn, type, oprettelse/ændringsdato, standarddatabase, standardsprog osv. En rektor er en enhed, der kan anmode om SQL Server-ressourcer.
En rektor kan være en af følgende:
principper på Windows-niveau
- Windows-domænelogin
- Lokalt Windows-logon
SQL-server-niveau principal
- SQL-serverlogin
Rektorer på databaseniveau
- Databasebruger
- Databaserolle
- Applikationsrolle
Eksempel på returnering af standardsproget for en rektor
For at få standardsproget for en given principal kan du forespørge sys.server_principals
se og brug en WHERE
klausul for hovednavnet, som du er interesseret i.
Sådan:
SELECT type_desc, default_database_name, default_language_name FROM master.sys.server_principals WHERE name = 'sa';
Resultat:
+-------------+-------------------------+-------------------------+ | type_desc | default_database_name | default_language_name | |-------------+-------------------------+-------------------------| | SQL_LOGIN | master | us_english | +-------------+-------------------------+-------------------------+
Dette eksempel får standardsproget for sa
rektor. Hovednavnet er unikt på en server. Dette eksempel returnerer også standarddatabasen såvel som principaltypen. I dette tilfælde er principalen et SQL Server-login.
Her er et andet eksempel med en anden bruger:
SELECT type_desc, default_database_name, default_language_name FROM master.sys.server_principals WHERE name = 'Bach';
Resultat:
+-------------+-------------------------+-------------------------+ | type_desc | default_database_name | default_language_name | |-------------+-------------------------+-------------------------| | SQL_LOGIN | Music | German | +-------------+-------------------------+-------------------------+
I dette tilfælde har login en anden standarddatabase og et andet sprog.
Du kan selvfølgelig altid bruge en stjerne til at returnere alle kolonner, hvis det kræves.
Bemærk, at ethvert login kan se deres eget loginnavn, systemlogin og de faste serverroller. For at se andre logins skal du ALTER ANY LOGIN
, eller en tilladelse til login. For at se brugerdefinerede serverroller kræves ALTER ANY SERVER ROLE
, eller medlemskab af rollen.
Standardsprog vs. nuværende sprog
I de fleste tilfælde vil en brugers aktuelle sprog for deres session være deres standardsprog. Men dette er ikke altid nødvendigvis tilfældet, fordi en bruger kan ændre det aktuelle sprog ved at bruge SET LANGUAGE
udmelding. Dette vil ændre sproget for den aktuelle session, men deres standardsprog forbliver på, hvad det er.
For at finde ud af mere, se Sådan indstilles det aktuelle sprog i SQL Server (T-SQL) og 3 måder at få sproget for den aktuelle session i SQL Server (T-SQL).