Điều kiện tiên quyết
- SQL Server 2016 trở lên, Azure SQL Database hoặc Azure SQL Managed Instance, mà CloudThinker truy cập được qua cổng SQL (mặc định
1433). - Quyền tạo login hoặc contained database user và cấp quyền truy cập cho user đó.
- SQL Server authentication được bật trên server. Server chỉ cho phép Windows authentication sẽ từ chối login. Trang này chỉ đề cập SQL login. Windows authentication và managed identity không thể hoạt động, vì kết nối chạy trên CloudThinker Cloud, bên ngoài domain và Azure tenant của bạn.
Agent làm việc với bảng, không phải SQL thô. Kết nối này không có SQL console, không gọi stored procedure và không thay đổi schema. Các đối tượng trong
sys và INFORMATION_SCHEMA luôn bị loại trừ.Thiết lập
1
Tạo người dùng riêng
- SQL Server hoặc Managed Instance
- Azure SQL Database
Tạo login trong
master, rồi tạo user cho login đó trong cơ sở dữ liệu của bạn:2
Cấp quyền đọc các bảng agent cần thấy
Cấp trên một schema, hoặc chặt hơn, từng bảng một:Bảng mà user không đọc được sẽ hoàn toàn không hiển thị với agent.
3
Mở quyền truy cập mạng
Tài liệu này không công bố danh sách egress IP của CloudThinker: hãy hỏi đầu mối liên hệ CloudThinker của bạn, hoặc liên hệ chúng tôi.
- Azure SQL: trong Azure portal, mở SQL server, vào Networking và thêm một firewall rule cho mỗi IP của CloudThinker.
- SQL Server: cho phép TCP
1433chiều vào từ các IP đó và xác nhận giao thức TCP/IP đã bật, vì một số bản cài đặt mặc định tắt giao thức này.
4
Thêm kết nối trong CloudThinker
Trên thanh bên, nhấn More → Workspace settings → Connections, rồi ở tab Builtin Connections chọn Microsoft SQL Server. Dán connection string vào Connection string:Nhấn Connect.Trạng thái thành công: kết nối hiển thị trạng thái Connected. Chạy prompt xác minh bên dưới để xác nhận agent thấy được các bảng của bạn.
Chi tiết kết nối
Trường Connection string duy nhất nhận một ADO.NET connection string.Quyền yêu cầu
Khả năng của agent
Mỗi lần đọc chỉ áp dụng cho một bảng, nên một lần gọi không thể join nhiều bảng. Thao tác đọc trả về 25 dòng theo mặc định và tối đa 100 dòng mỗi trang. Thao tác tổng hợp hết thời gian chờ sau 30 giây, và mỗi phản hồi giới hạn ở 4 MB.
Mỗi thao tác thêm, cập nhật và xóa được kiểm tra riêng, từng lần gọi một. Phê duyệt một lần xóa không có nghĩa là lần xóa tiếp theo cũng được duyệt. Vì cập nhật và xóa nhắm vào khóa chính, một bộ lọc sai không thể quét sạch cả bảng.
Mọi thay đổi do agent thực hiện đều đi qua Approvals của workspace trước. Ở chế độ mặc định Auto · Rules + AI · Ask me, AI judgment có thể cho một thay đổi an toàn chạy mà không cần hỏi. Allow Rule cũng vậy, sau khi CloudThinker bật Rule enforcement cho workspace của bạn. Chọn Manual nếu bạn muốn tự phê duyệt mọi thay đổi.
Rule cũng có thể từ chối thẳng một thay đổi, còn thiết lập người phê duyệt quyết định ai được phép đồng ý.
Xác minh kết nối
<schema>_<table>, chẳng hạn dbo_orders, kèm danh sách cột. Trong prompt bạn có thể viết dbo.orders như thường lệ, và agent sẽ khớp với dbo_orders.
Ví dụ prompt
Khắc phục sự cố
Login failed for user
Login failed for user
User nằm sai chỗ, mật khẩu sai, hoặc server chỉ chấp nhận Windows authentication. Login nằm trong
master. Contained user nằm trong cơ sở dữ liệu của bạn và cần đặt Initial Catalog. Kiểm tra mật khẩu có khoảng trắng ở đầu hoặc cuối không, và đặt trong dấu nháy đơn nếu chứa ; hoặc =.Kết nối thất bại do lỗi chứng chỉ
Kết nối thất bại do lỗi chứng chỉ
Với
Encrypt=True, client từ chối chứng chỉ server mà client không xác minh được thay vì chuyển sang plaintext. Cài đặt một chứng chỉ đáng tin cậy. Với chứng chỉ tự ký hoặc do CA nội bộ cấp trên mạng riêng, thêm TrustServerCertificate=True. Lưu lượng vẫn được mã hóa, nhưng danh tính của server không còn được kiểm tra.Không truy cập được server hoặc kết nối hết thời gian chờ
Không truy cập được server hoặc kết nối hết thời gian chờ
Kiểm tra
Server dùng dấu phẩy (host,1433). Với Azure SQL, xác nhận firewall rule có bao gồm CloudThinker. Với SQL Server, xác nhận cổng 1433 chiều vào đã mở và TCP/IP đã bật.Agent không tìm thấy một bảng
Agent không tìm thấy một bảng
User cần quyền
SELECT trên bảng đó hoặc schema của nó. Gọi tên bảng kèm schema, chẳng hạn dbo.orders, vì tên không kèm schema có thể mơ hồ.Một thao tác cập nhật hoặc xóa bị từ chối
Một thao tác cập nhật hoặc xóa bị từ chối
Bảng không có khóa chính, hoặc user thiếu quyền
UPDATE hay DELETE tương ứng. Đọc và tổng hợp vẫn hoạt động. Thêm khóa chính hoặc cấp quyền nếu agent cần thay đổi bảng đó.Agent không chạy câu lệnh SQL của tôi
Agent không chạy câu lệnh SQL của tôi
Đúng như dự kiến. Kết nối này không có SQL console hay quyền gọi stored procedure. Thay vào đó, hãy yêu cầu kết quả bạn muốn, chẳng hạn một lần đọc có lọc hoặc một phép đếm theo nhóm.
Bảo mật
- Quyền tối thiểu — chỉ cấp các quyền mà agent cần cho trường hợp sử dụng của bạn; bắt đầu với quyền chỉ đọc và mở rộng sau.
- Chỉ đọc theo mặc định — sử dụng thông tin xác thực chỉ đọc trừ khi bạn muốn agent thực hiện thay đổi qua kết nối này.
- Xoay vòng thông tin xác thực — xoay vòng khóa và token theo lịch trình thông thường của bạn; CloudThinker sẽ lấy giá trị mới khi bạn cập nhật kết nối.
- Thu hồi khi bàn giao — xóa thông tin xác thực tại nhà cung cấp khi bạn xóa một kết nối hoặc khi đồng nghiệp rời nhóm.
- Cấp quyền theo schema, không theo cơ sở dữ liệu: giới hạn
SELECTtrong schema chứa các bảng agent cần, mọi thứ khác sẽ không hiển thị với agent. - Chỉ đọc nhờ không cấp quyền: user chỉ có
SELECTkhông thể ghi, bất kể điều gì được phê duyệt trong cuộc trò chuyện.
Liên quan
Approvals
Quyết định thay đổi dòng nào được chạy, chờ người duyệt hay bị từ chối.
Kết nối PostgreSQL
Kết nối cơ sở dữ liệu PostgreSQL bằng user chỉ đọc. Không như SQL Server, kết nối này chạy ở chế độ hạn chế, không có thao tác ghi, dù được phê duyệt hay không.