Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apakah mungkin untuk menolak akses ke SQL Server dari program tertentu?

Ini TIDAK mungkin dan semua klaim yang bertentangan adalah minyak ular.

Meskipun benar bahwa Anda dapat memeriksa nama aplikasi dan membuat pemicu login yang menolak login berdasarkan properti ini, nama aplikasi bukanlah properti yang aman dan dapat dengan mudah dipalsukan oleh siapa pun. Mengandalkannya untuk keamanan (mis. penolakan login) adalah #fail.

Jadi selama Anda menurunkan bilah dan menghapus istilah sebagai 'tolak akses' dari pertanyaan Anda, dimungkinkan untuk memberikan Pemicu Masuk yang memeriksa program_name session sesi di sys.dm_exec_sessions :

CREATE TRIGGER application_limit_trigger
ON ALL SERVER WITH EXECUTE AS '...'
FOR LOGON
AS
BEGIN
IF EXISTS (SELECT *
   FROM sys.dm_exec_sessions
   WHERE session_id = @@SPID
   AND program_name IN (N'Bad Program', N'Worse Program', N'Unmentionable')
    ROLLBACK;
END;

Program_name diatur oleh beberapa aplikasi, saya tidak tahu apakah Office suite mengatur properti ini menjadi sesuatu yang berguna atau membiarkannya default. Dan Anda harus memahami bahwa ini dapat dielakkan oleh siapa saja hanya dengan mengubah ApplicationName properti dalam string koneksi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. jarak antara dua garis bujur dan garis lintang

  2. Replikasi SQL Server 2008 gagal dengan:proses tidak dapat menjalankan 'sp_replcmds'

  3. Permintaan SQL Server untuk menemukan semua nama database saat ini

  4. ekspor dari sql server ke file excel menggunakan asp.net dan vb.net?

  5. SQL Server Query untuk Hubungan Banyak ke Banyak - bagaimana cara membuat kueri?