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

Membatasi Sesi Pengguna Serentak untuk Login Tertentu di SQL Server

Di SQL Server, Anda dapat menggunakan pemicu logon untuk mengaudit dan mengontrol sesi server, seperti melacak aktivitas login, membatasi login ke SQL Server, atau membatasi jumlah sesi untuk login tertentu.

Artikel ini memberikan contoh penggunaan pemicu login untuk membatasi jumlah sesi simultan untuk login tertentu.

Contoh

Berikut adalah contoh pemicu login yang membatasi jumlah sesi simultan untuk login tertentu menjadi 1.

Buat login:

CREATE LOGIN Marge WITH PASSWORD = 'SQLServer123';
GRANT VIEW SERVER STATE TO Marge;

Buat pemicu masuk:

CREATE TRIGGER trg_limit_concurrent_sessions
ON ALL SERVER WITH EXECUTE AS 'Marge'
FOR LOGON  
AS  
BEGIN  
IF ORIGINAL_LOGIN() = 'Marge' AND  
    (SELECT COUNT(*) FROM sys.dm_exec_sessions  
            WHERE is_user_process = 1 AND  
                original_login_name = 'Marge') > 1
    ROLLBACK;  
END;

Sekarang, ketika pengguna itu mencoba masuk pada koneksi kedua, mereka akan mendapatkan kesalahan berikut:

Error message: Logon failed for login 'Marge' due to trigger execution.
Changed database context to 'master'.
Changed language setting to us_english.

Perhatikan bahwa semua pesan yang berasal dari dalam pemicu yang biasanya mencapai pengguna, seperti pesan kesalahan dan pesan dari PRINT pernyataan, dialihkan ke log kesalahan SQL Server.

Selain itu, pemicu masuk tidak diaktifkan jika autentikasi gagal.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server DATEPART() vs DATENAME() – Apa Bedanya?

  2. Kolom Jarang di SQL Server:Dampak pada Waktu &Ruang

  3. ROUND() Contoh di SQL Server

  4. Cara Mendapatkan Definisi Kolom Terhitung di SQL Server menggunakan T-SQL

  5. Cara Mengonversi Integer ke Desimal di SQL Server