Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Batasi Server Tertaut ke Login Lokal Tunggal (Contoh T-SQL)

Pada artikel ini, saya mengonfigurasi server tertaut di SQL Server sehingga hanya satu login lokal yang dapat mengaksesnya. Untuk melakukannya, saya menghapus semua pemetaan yang dibuat secara otomatis saat saya membuat server tertaut, sebelum menambahkan pemetaan login untuk login lokal tunggal.

Konfigurasi Server Tertaut &Pemetaan Login

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';

Contoh ini membuat server tertaut yang disebut Homer. Kemudian menghapus semua pemetaan login yang dibuat secara otomatis, sebelum menambahkan login untuk login lokal tertentu yang disebut Milhouse.

Untuk tujuan kita, baris yang relevan dalam contoh ini adalah @locallogin='Milhouse' . Ini adalah baris yang menentukan bahwa pemetaan login akan dibuat untuk login lokal yang ditentukan (dalam hal ini 'Milhouse').

Sekarang Milhouse akan menjadi satu-satunya login lokal yang dapat terhubung ke server tertaut.

Cara Kerjanya

Saat Anda menggunakan sp_addlinkedserver untuk membuat server tertaut di SQL Server, pemetaan default antara semua login di server lokal dan login jarak jauh di server tertaut dibuat secara otomatis. SQL Server menggunakan kredensial login lokal saat menghubungkan ke server tertaut atas nama login.

Ini bagus jika Anda benar-benar menginginkan pemetaan ini – ini akan menyelamatkan Anda dari pembuatannya secara eksplisit. Tetapi jika Anda tidak menginginkannya, Anda harus menggunakan sp_droplinkedsrvlogin untuk menghapusnya. Itulah yang saya lakukan dalam contoh di atas.

Setelah Anda menghapus semua pemetaan login yang dibuat secara otomatis, Anda bebas menggunakan sp_addlinkedsrvlogin untuk menambahkan pemetaan untuk login lokal tertentu.

Mengizinkan semua Login Lokal untuk Berbagi Pemetaan Login

Anda juga dapat mengonfigurasinya agar semua login lokal menggunakan pemetaan login yang sama (sehingga tidak hanya terbatas pada Milhouse, misalnya). Selain itu, daripada memiliki setiap peta login lokal ke login jarak jauh yang sesuai, mereka dapat menggunakan login yang Anda konfigurasikan untuk server tertaut. Untuk melakukannya, cukup setel @locallogin=NULL . Ini memungkinkan semua login lokal untuk terhubung ke server tertaut, terlepas dari apakah mereka memiliki login jarak jauh yang sesuai atau tidak di server tertaut.

Lihat Cara Kerja Login di Server Tertaut untuk contoh berbagai login lokal yang mencoba mengakses login server tertaut dalam skenario yang berbeda.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pengemudi ODBC PayPal

  2. Memulihkan Cadangan Database di OpenCart 1.5

  3. Pantau kinerja basis data dengan Monitor Infrastruktur Uptime

  4. Menerapkan Pencadangan dan Pemulihan Basis Data Otomatis dengan Cara Default

  5. Kasus Perkiraan Kardinalitas Red Herring