Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara Mengatur Bahasa Default untuk Semua Login Baru di SQL Server (T-SQL)

Setiap kali Anda membuat login baru di SQL Server, Anda memiliki pilihan untuk menetapkan bahasa default untuk login tersebut. Jika Anda tidak melakukannya, login akan menggunakan bahasa default seperti yang ditentukan dalam opsi konfigurasi server bahasa default.

Artikel ini menunjukkan cara menyetel opsi konfigurasi server bahasa default di SQL Server, menggunakan T-SQL.

Pertama, Periksa Pengaturan Bahasa Default Server

Sebelum kita melanjutkan dan mengubah apa pun, kita harus memeriksa untuk melihat apa pengaturan saat ini.

 sp_configure prosedur tersimpan memungkinkan Anda untuk melihat atau mengubah pengaturan konfigurasi global untuk server saat ini.

Untuk mengembalikan semua opsi konfigurasi, Anda dapat menjalankan prosedur tersimpan ini tanpa memberikan argumen apa pun. Seperti ini:

EXEC sp_configure;

Namun, itu mengembalikan kumpulan hasil yang cukup besar.

Mengingat kami hanya tertarik pada pengaturan bahasa default, kami dapat menjalankan kode berikut:

EXEC sp_configure @configname='default language';

Dan di lingkungan pengujian saya, itu mengembalikan yang berikut:

+------------------+-----------+-----------+----------------+-------------+
| name             | minimum   | maximum   | config_value   | run_value   |
|------------------+-----------+-----------+----------------+-------------|
| default language | 0         | 9999      | 0              | 0           |
+------------------+-----------+-----------+----------------+-------------+

Nilai utama yang kami minati adalah config_value dan run_value . Dalam hal ini, kedua nilai adalah 0 , yang merupakan ID bahasa untuk us_english .

Kita dapat mengubahnya menggunakan kode berikut:

EXEC sp_configure 'default language', 5;
RECONFIGURE;

Hasil:

Configuration option 'default language' changed from 0 to 5. Run the RECONFIGURE statement to install. 

Perhatikan bahwa nilai untuk config_value dan run_value tidak secara otomatis setara. Setelah memperbarui setelan konfigurasi dengan menggunakan sp_configure , Anda harus memperbarui run_value dengan menggunakan RECONFIGURE atau RECONFIGURE WITH OVERRIDE . Mengingat kami sudah melakukannya dalam contoh ini, kami siap melakukannya.

Jadi ketika kami memeriksa pengaturannya lagi, kami dapat melihat nilai baru:

EXEC sp_configure @configname='default language';

Hasil:

+------------------+-----------+-----------+----------------+-------------+
| name             | minimum   | maximum   | config_value   | run_value   |
|------------------+-----------+-----------+----------------+-------------|
| default language | 0         | 9999      | 5              | 5           |
+------------------+-----------+-----------+----------------+-------------+

Dalam hal ini, kami mengubah nilainya menjadi 5 , yang merupakan ID bahasa untuk Español (Spanyol).

Anda juga dapat membuat kueri sys.configurations view untuk mengembalikan nilai opsi konfigurasi server jika Anda mau.

Cara Menemukan ID Bahasa

Jika Anda tidak mengetahui ID bahasa dari bahasa yang ingin Anda ubah, Anda dapat menjalankan sp_helplanguage prosedur tersimpan. Anda dapat menjalankannya tanpa argumen, dalam hal ini semua bahasa akan dikembalikan, atau Anda dapat memberikan nama bahasa atau alias sehingga hanya bahasa tersebut yang dikembalikan.

Ini contohnya:

EXEC sp_helplanguage Spanish;

Inilah hasil yang saya dapatkan ketika saya menjalankannya di mssql-cli:

-[ RECORD 1 ]-------------------------
langid      | 5
dateformat  | dmy
datefirst   | 1
upgrade     | 0
name        | Español
alias       | Spanish
months      | Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octub
shortmonths | Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic
days        | Lunes,Martes,Miércoles,Jueves,Viernes,Sábado,Domingo
lcid        | 3082
msglangid   | 3082

Dan kita dapat melihat bahwa ID bahasa untuk bahasa Spanyol adalah 5 . Jadi itulah nilai yang kami berikan saat menjalankan sp_configure untuk mengubah bahasa default ke bahasa Spanyol.

Jadi sekarang saat kita membuat login baru, bahasa defaultnya adalah bahasa Spanyol (kecuali jika kita secara eksplisit memberikan bahasa default saat membuat login).

Buat Login Baru – Tanpa Menentukan Bahasa Default

Jadi mari kita buat login baru tanpa menentukan bahasa default:

CREATE LOGIN Julio   
    WITH PASSWORD = 't35Tin9345!'

Dan sekarang periksa bahasa default untuk login itu:

SELECT default_language_name 
FROM master.sys.server_principals
WHERE name = 'Julio';

Kami mendapatkan hasil berikut:

+-------------------------+
| default_language_name   |
|-------------------------|
| Español                 |
+-------------------------+

Karena kami tidak menentukan bahasa default untuk login ini, bahasa default akan digunakan seperti yang dikonfigurasi di tingkat server.

Buat Login Baru – Dengan Bahasa Default

Tetapi jika kita menentukan bahasa default saat kita membuat login:

CREATE LOGIN Einstein   
    WITH PASSWORD = 't35Tin9345!',
    DEFAULT_LANGUAGE = German;

Dan kemudian kueri sys.server_principals lagi:

SELECT default_language_name 
FROM master.sys.server_principals
WHERE name = 'Einstein';

Kami mendapatkan hasil berikut:

+-------------------------+
| default_language_name   |
|-------------------------|
| German                  |
+-------------------------+

Jadi konfigurasi server hanya digunakan ketika Anda tidak secara eksplisit menentukan bahasa default untuk login individual.

Perhatikan bahwa pengguna dapat mengubah bahasa yang digunakan dalam sesi mereka. Hanya karena mereka memiliki bahasa default, itu tidak berarti bahwa mereka terjebak dengan itu. Untuk informasi selengkapnya, lihat 3 Cara Mendapatkan Bahasa Sesi Saat Ini di SQL Server (T-SQL) dan Cara Mengatur Bahasa Saat Ini di 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. 13 praktik terbaik keamanan SQL Server

  2. Apa yang dilakukan sp_reset_connection?

  3. Penguncian Optimis vs. Pesimis

  4. Temukan semua tabel yang berisi kolom dengan nama tertentu - MS SQL Server

  5. Cara Menggabungkan String di SQL Server dengan CONCAT()