Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách tìm ngôn ngữ mặc định của người dùng trong SQL Server (T-SQL)

Trong SQL Server, bạn có thể tìm ra ngôn ngữ mặc định cho một người dùng nhất định bằng cách truy vấn sys.server_principals chế độ xem danh mục hệ thống.

Dạng xem này chứa một hàng cho mọi hiệu trưởng cấp máy chủ. Nó chứa thông tin như tên, loại, ngày tạo / sửa đổi, cơ sở dữ liệu mặc định, ngôn ngữ mặc định, v.v. Người chính là một thực thể có thể yêu cầu tài nguyên SQL Server.

Hiệu trưởng có thể là bất kỳ trường hợp nào sau đây:

Hiệu trưởng cấp Windows

  • Đăng nhập miền Windows
  • Đăng nhập cục bộ Windows

Chính cấp SQL Server

  • Đăng nhập Máy chủ SQL

Hiệu trưởng cấp cơ sở dữ liệu

  • Người dùng cơ sở dữ liệu
  • Vai trò của Cơ sở dữ liệu
  • Vai trò ứng dụng

Ví dụ về việc trả lại ngôn ngữ mặc định của ngôn ngữ chính

Để nhận ngôn ngữ mặc định cho một ngôn ngữ chính nhất định, bạn có thể truy vấn sys.server_principals xem và sử dụng WHERE mệnh đề cho tên chính mà bạn quan tâm.

Như thế này:

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

Kết quả:

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

Ví dụ này lấy ngôn ngữ mặc định cho sa hiệu trưởng. Tên chính là duy nhất trong một máy chủ. Ví dụ này cũng trả về cơ sở dữ liệu mặc định cũng như kiểu chính. Trong trường hợp này, tài khoản chính là Đăng nhập máy chủ SQL.

Đây là một ví dụ khác sử dụng một người dùng khác:

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

Kết quả:

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

Trong trường hợp này, thông tin đăng nhập có cơ sở dữ liệu và ngôn ngữ mặc định khác.

Tất nhiên, bạn luôn có thể sử dụng dấu hoa thị để trả về tất cả các cột nếu được yêu cầu.

Lưu ý rằng bất kỳ thông tin đăng nhập nào cũng có thể thấy tên đăng nhập của chính họ, thông tin đăng nhập hệ thống và vai trò máy chủ cố định. Để xem các thông tin đăng nhập khác, yêu cầu ALTER ANY LOGIN , hoặc một sự cho phép khi đăng nhập. Để xem các vai trò máy chủ do người dùng xác định, yêu cầu ALTER ANY SERVER ROLE hoặc tư cách thành viên trong vai trò.

Ngôn ngữ mặc định so với Ngôn ngữ hiện tại

Trong hầu hết các trường hợp, ngôn ngữ hiện tại của người dùng cho phiên của họ sẽ là ngôn ngữ mặc định của họ. Nhưng điều này không nhất thiết luôn đúng như vậy vì người dùng có thể thay đổi ngôn ngữ hiện tại bằng cách sử dụng SET LANGUAGE tuyên bố. Thao tác này sẽ thay đổi ngôn ngữ cho phiên hiện tại, nhưng ngôn ngữ mặc định của chúng sẽ vẫn ở bất kỳ ngôn ngữ nào.

Để tìm hiểu thêm, hãy xem Cách đặt ngôn ngữ hiện tại trong SQL Server (T-SQL) và 3 cách lấy ngôn ngữ của phiên hiện tại trong 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. Cách tạo một thủ tục được lưu trữ trong SQL Server

  2. Làm cách nào để xác định trong SQL Server nếu một phạm vi dateTime chồng lên một phạm vi khác

  3. Tôi có thể đặt một lược đồ mặc định cho trong một quy trình được lưu trữ không?

  4. Tham gia loại bỏ:Khi máy chủ SQL loại bỏ các bảng không cần thiết

  5. Làm thế nào để xác định số ngày trong một tháng trong SQL Server?