Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Bỏ đăng nhập SQL ngay cả khi đã đăng nhập

OK, đây là kịch bản tôi đã nghĩ ra, phù hợp với tôi. Lưu ý rằng bạn cần phải là thành viên của processadmin vai trò máy chủ để tìm và hủy kết nối và thành viên của securityadmin để bỏ đăng nhập. (Tất nhiên, sysadmin có thể làm bất cứ điều gì.)

DECLARE @loginNameToDrop sysname
SET @loginNameToDrop = '<victim login ID>';

DECLARE sessionsToKill CURSOR FAST_FORWARD FOR
    SELECT session_id
    FROM sys.dm_exec_sessions
    WHERE login_name = @loginNameToDrop
OPEN sessionsToKill

DECLARE @sessionId INT
DECLARE @statement NVARCHAR(200)

FETCH NEXT FROM sessionsToKill INTO @sessionId

WHILE @@FETCH_STATUS = 0
BEGIN
    PRINT 'Killing session ' + CAST(@sessionId AS NVARCHAR(20)) + ' for login ' + @loginNameToDrop

    SET @statement = 'KILL ' + CAST(@sessionId AS NVARCHAR(20))
    EXEC sp_executesql @statement

    FETCH NEXT FROM sessionsToKill INTO @sessionId
END

CLOSE sessionsToKill
DEALLOCATE sessionsToKill

PRINT 'Dropping login ' + @loginNameToDrop
SET @statement = 'DROP LOGIN [' + @loginNameToDrop + ']'
EXEC sp_executesql @statement


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để thay đổi ràng buộc khóa chính bằng cú pháp SQL?

  2. Cách lấy giá trị tự động tăng của hàng cuối cùng tại phần chèn

  3. cách tạo và gọi hàm vô hướng trong sql server 2008

  4. Trả về 0 khi kết quả trống

  5. Tự động xóa ngày / giờ bản ghi MSSQL