SQL melalui VPN: klien terus atau stesen kerja dalaman?
SQL terus daripada komputer riba VPN dan SSMS pada stesen kerja terurus ialah laluan kepercayaan yang berbeza. Bandingkan alamat sumber dan kebenaran yang dicipta oleh setiap satu.
Pasukan mahu SSMS pada komputer riba mereka, dan penyelesaian pantas ialah menerbitkan port SQL kepada kumpulan VPN. Jawapan yang lebih perlahan bertanya di mana proses klien patut berjalan, kerana akses terus dan stesen kerja dalaman menghasilkan alamat sumber, kepercayaan titik akhir dan laluan data yang berbeza. Kedua-duanya tidak selamat secara automatik, dan keahlian VPN semata-mata tidak menentukan apa-apa. Bandingkan reka bentuk sebelum wujud peraturan kebenaran.
Dua laluan, dua alamat sumber
Dengan akses terus, komputer riba membawa konfigurasi klien dan membuka sambungan pangkalan data sendiri. Dengan stesen kerja jauh, komputer riba membuka sesi desktop, dan stesen kerja membuat sambungan SQL dari alamatnya sendiri. Jadi pangkalan data melihat kumpulan VPN atau gerbang yang diterjemah dalam reka bentuk pertama, dan alamat stesen kerja dalam yang kedua. Perbezaan itulah yang menentukan peraturan firewall dan kebenaran SQL mana yang benar-benar terpakai.
Komputer riba masih mengawal sesi jauh, jadi stesen kerja bukan pengganti pengesahan pengguna atau dasar sesi.
Semak apa yang sebenarnya dilihat oleh pangkalan data
Alamat sumber ialah perkara yang diukur, bukan disimpulkan daripada rajah. Bacalah dari sebelah pelayan bagi sambungan aktif.
Test-NetConnection sql.example.com -Port 1433
sqlcmd -S tcp:sql.example.com,1433 -N -d appdb -Q "select SUSER_SNAME() as login_name, DB_NAME() as db"Ujian ketersambungan membuktikan pendengar menerima TCP daripada rangkaian itu, manakala pertanyaan membuktikan log masuk dan pangkalan data mana yang dicapai oleh sesi. Untuk melihat alamat yang direkodkan pelayan, tanyakan sys.dm_exec_connections untuk sesi semasa, yang mengembalikan alamat klien selepas sebarang terjemahan. Jika nilai itu gerbang dan bukan komputer riba, peraturan hos bagi setiap pengguna tidak boleh berfungsi pada mesin pangkalan data. Catat nilai yang diperhatikan di sebelah reka bentuk yang dipilih, kerana sambungan semula dan perubahan kumpulan menggerakkannya.
Buka pendengar dan tiada yang lain
Buka hanya perkhidmatan yang diperlukan oleh penggunaan. Port 1433 yang biasa ialah port contoh lalai, bukan pemalar sejagat.
Get-NetTCPConnection -State Listen -LocalPort 1433Contoh bernama sering mendengar pada port dinamik, dengan SQL Server Browser menjawab penemuan pada UDP 1434, dan kebergantungan itu ialah pendedahan berasingan yang perlu dijustifikasi. Menetapkan port tetap untuk contoh menghapuskan keperluan Browser dan menjadikan peraturan firewall stabil. Kekalkan pemeriksaan penyulitan dan sijil yang sudah dilakukan klien, bukannya mematikannya supaya ujian lulus. Kemudian berikan peranan pangkalan data untuk beban kerja, bukannya menambah seluruh kumpulan VPN kepada peranan pelayan.
Buktikan laluan yang dibenarkan dan yang ditolak
Buka sesi baharu sebagai pengguna biasa yang diluluskan, dan sahkan identiti pelayan, pangkalan data dan operasi yang diperlukan. Kemudian sahkan pengecualian: sumber atau akaun di luar dasar mesti gagal dalam ujian yang sama. Untuk reka bentuk stesen kerja, sahkan komputer riba tidak boleh memintas sempadan dengan mencapai pangkalan data secara terus. Untuk akses terus, sahkan laluan dan peraturan sumber masih sah selepas sambungan semula.
Rekodkan di mana klien berjalan, sumber mana yang diperhatikan pangkalan data dan peraturan mana yang membenarkannya. Itulah bukti yang akan diminta oleh semakan seterusnya.