Bagikan melalui


Keamanan di LINQ to SQL

Risiko keamanan selalu ada saat Anda tersambung ke database. Meskipun LINQ ke SQL mungkin menyertakan beberapa cara baru untuk bekerja dengan data dalam SQL Server, LINQ tidak menyediakan mekanisme keamanan tambahan.

Access Control dan Autentikasi

LINQ ke SQL tidak memiliki model pengguna atau mekanisme autentikasinya sendiri. Gunakan SQL Server Security untuk mengontrol akses ke database, tabel database, tampilan, dan prosedur tersimpan yang dipetakan ke model objek Anda. Berikan akses yang diperlukan minimal kepada pengguna dan memerlukan kata sandi yang kuat untuk autentikasi pengguna.

Informasi Pemetaan dan Skema

Informasi pemetaan jenis SQL-CLR dan skema database dalam model objek atau file pemetaan eksternal Anda tersedia untuk semua orang yang memiliki akses ke file-file tersebut dalam sistem file. Anggap saja informasi skema akan tersedia untuk semua orang yang dapat mengakses model objek atau file pemetaan eksternal. Untuk mencegah akses yang lebih luas ke informasi skema, gunakan mekanisme keamanan file untuk mengamankan file sumber dan file pemetaan.

String Koneksi

Menggunakan kata sandi dalam string koneksi harus dihindari sedapat mungkin. Bukan hanya string koneksi memiliki risiko keamanannya sendiri, tetapi string koneksi juga dapat ditambahkan dalam teks yang jelas ke model objek atau file pemetaan eksternal saat menggunakan Object Relational Designer atau alat baris perintah SQLMetal. Siapa pun yang memiliki akses ke model objek atau file pemetaan eksternal melalui sistem file dapat melihat kata sandi koneksi (jika disertakan dalam string koneksi).

Untuk meminimalkan risiko tersebut, gunakan keamanan terintegrasi untuk membuat koneksi tepercaya dengan SQL Server. Dengan menggunakan pendekatan ini, Anda tidak perlu menyimpan kata sandi dalam string koneksi. Untuk informasi selengkapnya, lihat Blog Keamanan SQL Server.

Dengan tidak adanya keamanan terintegrasi, kata sandi teks yang jelas akan diperlukan dalam string koneksi. Cara terbaik untuk membantu mengamankan string koneksi Anda, dalam meningkatkan urutan risiko, adalah sebagai berikut:

  • Gunakan Keamanan Terpadu.

  • Amankan string koneksi dengan kata sandi dan minimalkan melewati string koneksi.

  • Gunakan kelas System.Data.SqlClient.SqlConnection, bukan string koneksi karena membatasi durasi paparan. Kelas LINQ ke SQL System.Data.Linq.DataContext dapat dibuatkan instansnya menggunakan SqlConnection.

  • Minimalkan masa pakai dan titik sentuh untuk semua string koneksi.

Lihat juga