Melindungi kekayaan intelektual SQL Server Anda

Aplikasi ke:SQL Server

Pengembang perangkat lunak sering bertanya cara mendistribusikan aplikasi data SQL Server mereka kepada pelanggan sambil mencegah pelanggan menganalisis dan mendekonstruksi aplikasi mereka. Prinsip utama di sini adalah bahwa melindungi kekayaan intelektual Anda adalah masalah hukum, dan perlindungan berada dalam perjanjian lisensi Anda. Ketika SQL Server diinstal pada komputer yang dikelola orang lain, Anda secara inheren kehilangan beberapa aspek kontrol.

Sifat masalah

Pemilik atau administrator komputer selalu dapat access instans SQL Server yang diinstal pada komputer tersebut. Jika Anda menyebarkan aplikasi ke komputer pelanggan, karena mereka adalah administrator, mereka dapat terhubung ke SQL Server sebagai anggota peran server tetap sysadmin. Ini termasuk kemampuan untuk memberikan izin, mengelola cadangan (termasuk memulihkan cadangan ke komputer lain), mendekripsi dan memindahkan file data, dan banyak lagi. Untuk informasi selengkapnya, lihat Hubungkan ke SQL Server Saat Administrator Sistem Dikunci.

Prosedur dan data tersimpan dapat dienkripsi, tetapi struktur data tidak dapat disembunyikan, dan pengguna yang dapat melampirkan debugger ke proses server dapat mengambil prosedur dan data yang didekripsi dari memori saat runtime.

Jika klien bukan administrator di komputer, Anda dapat mencegah access oleh klien. Anda dapat menggunakan Transparent Data Encryption untuk mengenkripsi file data, Anda dapat mengenkripsi cadangan, dan Anda dapat mengaudit tindakan semua pengguna. Tetapi SQL Server administrator dan admin komputer SQL Server dapat membalikkan tindakan ini.

Solusi

Ada berbagai cara untuk mengonfigurasi akses data klien tanpa menginstal SQL Server di komputer klien Anda. Yang paling mudah mungkin menggunakan Azure SQL Database sehingga klien bukan admin, mungkin dalam kombinasi dengan Always Encrypted. Untuk informasi selengkapnya tentang memulai dengan SQL Database, lihat Apa itu Azure SQL Database?.

Anda juga dapat menghosting SQL Server di jaringan Anda sendiri, dan memungkinkan klien untuk access data melalui jaringan Anda, baik secara langsung atau melalui aplikasi web.