Bỏ qua, đến nội dung

Câu hỏi thường gặp — Microsoft SQL Server Data Source ​

Cài đặt và kết nối ​

Không thể kết nối đến SQL Server, báo lỗi timeout? ​

Cách xử lý theo thứ tự:

  1. Kiểm tra SQL Server đang chạy: systemctl status mssql-server (Linux) hoặc SQL Server Configuration Manager (Windows)
  2. Đảm bảo TCP/IP protocol đã bật trong SQL Server Network Configuration
  3. Xác nhận firewall cho phép port 1433 từ IP server Digiforce
  4. Kiểm tra SQL Server không chỉ bind localhost — phải cho phép kết nối remote
  5. Thử kết nối thủ công: sqlcmd -S <host>,1433 -U <user> -P <password>
  6. Nếu dùng named instance, đảm bảo SQL Server Browser service đang chạy

Kết nối thành công nhưng không thấy bảng? ​

Nguyên nhân có thể:

  1. User không có quyền SELECT trên bảng
  2. Bảng nằm trong schema khác (không phải dbo)
  3. Tên database sai

Cách xử lý:

  1. Kiểm tra quyền: SELECT * FROM fn_my_permissions(NULL, 'DATABASE');
  2. Kiểm tra schema: SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES;
  3. Nhấn Refresh để introspect lại

SQL Authentication vs Windows Authentication? ​

Plugin sử dụng SQL Authentication (username + password). Windows Authentication hiện chưa được hỗ trợ trực tiếp qua giao diện. Nếu SQL Server chỉ cho phép Windows Auth, cần:

  • Bật mixed mode authentication trên SQL Server
  • Hoặc cấu hình reverse proxy/NTLM authentication ở tầng hạ tầng

Sử dụng hằng ngày ​

Dữ liệu có đồng bộ real-time không? ​

Có. Plugin truy vấn trực tiếp SQL Server mỗi lần request — không có cache. Dữ liệu luôn phản ánh trạng thái hiện tại của database.

Có thể liên kết bảng SQL Server với bảng nội bộ không? ​

Không. Chỉ hỗ trợ relation giữa các bảng trong cùng một data source. Cross-datasource relation chưa được hỗ trợ.

Hiệu năng với bảng lớn? ​

  • Plugin sử dụng Sequelize connection pool
  • SQL Server sử dụng OFFSET FETCH cho phân trang (hiệu quả hơn TOP)
  • Đảm bảo có index trên cột thường filter/sort
  • Phân trang mặc định 20 bản ghi/trang

Kiểu bit được xử lý như thế nào? ​

SQL Server dùng bit thay vì boolean. Plugin đăng ký MSSQLBitField để tự động chuyển đổi giá trị 0/1 thành true/false trên giao diện.

Azure SQL Database có được hỗ trợ không? ​

Có. Cấu hình tương tự, nhưng:

  • Bắt buộc bật Encrypt connection
  • Host dạng server.database.windows.net
  • Port mặc định vẫn 1433
  • Username dạng user@server (tùy cấu hình)

Lỗi thường gặp ​

Lỗi "Login failed for user" ​

Nguyên nhân: Sai username/password hoặc user chưa được tạo trên SQL Server.

Cách xử lý:

  1. Kiểm tra username/password
  2. Đảm bảo SQL Server Authentication đã được bật (mixed mode)
  3. Kiểm tra user đã được map vào database: USE my_db; SELECT * FROM sys.database_principals;

Lỗi "Cannot open database" ​

Nguyên nhân: Tên database sai hoặc user không có quyền truy cập database.

Cách xử lý:

  1. Kiểm tra tên database: SELECT name FROM sys.databases;
  2. Cấp quyền: USE my_db; CREATE USER [username] FOR LOGIN [username];

Lỗi "Encrypt connection" khi kết nối Azure SQL ​

Nguyên nhân: Azure SQL Database bắt buộc mã hóa kết nối.

Cách xử lý: Bật Encrypt connection trong cấu hình data source. Nếu vẫn lỗi, bật thêm Trust server certificate.

Lỗi "plugin need data-source-manager plugin enabled" ​

Cách xử lý: Vào Plugin Manager, bật data-source-manager trước, sau đó bật plugin-data-source-external-mssql.

Kiểu uniqueidentifier không hiển thị đúng ​

Nguyên nhân: GUID format có thể khác khi hiển thị.

Cách xử lý: Plugin map uniqueidentifier → uuid. Nếu cần format tùy chỉnh, chỉnh interface của trường sau khi introspect.

Kết nối nhiều SQL Server instance ​

Có thể tạo nhiều data source type mssql, mỗi cái trỏ đến instance/database khác nhau. Mỗi data source hoàn toàn độc lập.