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

Hạn chế một máy chủ được liên kết với một đăng nhập cục bộ duy nhất (Ví dụ T-SQL)

Trong bài viết này, tôi cấu hình một máy chủ được liên kết trong SQL Server để chỉ một thông tin đăng nhập cục bộ duy nhất có thể truy cập nó. Để thực hiện việc này, tôi xóa mọi ánh xạ được tạo tự động khi tôi tạo máy chủ được liên kết, trước khi thêm ánh xạ đăng nhập cho đăng nhập cục bộ duy nhất.

Định cấu hình bản đồ đăng nhập &máy chủ được liên kết

EXEC sp_addlinkedserver 
    @server=N'Homer', 
    @srvproduct=N'', 
    @provider=N'MSOLEDBSQL', 
    @datasrc=N'172.17.0.2',
    @catalog='Music';

EXEC sp_droplinkedsrvlogin 'Homer', NULL;

EXEC sp_addlinkedsrvlogin 
    @rmtsrvname=N'Homer', 
    @useself=N'FALSE', 
    @locallogin='Milhouse', 
    @rmtuser=N'Maggie', 
    @rmtpassword=N'BigStrong#Passw0rd';

Ví dụ này tạo một máy chủ được liên kết có tên là Homer. Sau đó, nó loại bỏ tất cả các ánh xạ đăng nhập được tạo tự động, trước khi thêm thông tin đăng nhập cho một đăng nhập cục bộ cụ thể có tên là Milhouse.

Đối với mục đích của chúng tôi, dòng có liên quan trong ví dụ này là @locallogin='Milhouse' . Đây là dòng chỉ định rằng ánh xạ đăng nhập sẽ được tạo cho đăng nhập cục bộ được chỉ định (trong trường hợp này là "Milhouse").

Giờ đây, Milhouse sẽ là thông tin đăng nhập cục bộ duy nhất có thể kết nối với máy chủ được liên kết.

Cách thức hoạt động

Khi bạn sử dụng sp_addlinkedserver để tạo máy chủ được liên kết trong SQL Server, ánh xạ mặc định giữa tất cả thông tin đăng nhập trên máy chủ cục bộ và thông tin đăng nhập từ xa trên máy chủ được liên kết sẽ tự động được tạo. SQL Server sử dụng thông tin đăng nhập cục bộ khi kết nối với máy chủ được liên kết thay mặt cho việc đăng nhập.

Điều này thật tuyệt nếu bạn thực sự muốn những ánh xạ này - nó giúp bạn không phải tạo chúng một cách rõ ràng. Nhưng nếu bạn không muốn có chúng, bạn sẽ cần sử dụng sp_droplinkedsrvlogin để loại bỏ chúng. Đó là những gì tôi đã làm trong ví dụ trên.

Khi bạn đã loại bỏ tất cả các ánh xạ đăng nhập được tạo tự động, bạn có thể thoải mái sử dụng sp_addlinkedsrvlogin để thêm ánh xạ cho đăng nhập cục bộ cụ thể.

Cho phép tất cả Thông tin đăng nhập cục bộ chia sẻ bản đồ đăng nhập

Bạn cũng có thể định cấu hình nó để tất cả thông tin đăng nhập cục bộ sử dụng cùng một ánh xạ đăng nhập (ví dụ:để nó không chỉ giới hạn ở Milhouse). Ngoài ra, thay vì có từng bản đồ đăng nhập cục bộ đến đăng nhập từ xa tương ứng, họ có thể sử dụng thông tin đăng nhập mà bạn định cấu hình cho máy chủ được liên kết. Để thực hiện việc này, chỉ cần đặt @locallogin=NULL . Điều này cho phép tất cả thông tin đăng nhập cục bộ kết nối với máy chủ được liên kết, cho dù chúng có đăng nhập từ xa tương ứng trên máy chủ được liên kết hay không.

Xem Cách đăng nhập hoạt động trên máy chủ được liên kết để biết ví dụ về các thông tin đăng nhập cục bộ khác nhau đang cố gắng truy cập thông tin đăng nhập máy chủ được liên kết trong các tình huống khác nhau.


  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âu lệnh SQL SELECT INTO

  2. Mô hình dữ liệu để giao dịch cổ phiếu, quỹ và tiền điện tử

  3. Lỗi chung:Phiên bản hệ điều hành không khớp

  4. 2 cách để chọn hàng phù hợp với tất cả các mục trong một danh sách (T-SQL)

  5. Các cột chỉ mục mới nên nằm trong khóa, hay được bao gồm?