sql >> データベース >  >> RDS >> Sqlserver

ログイン中でもSQLログインを削除

    OK、これが私が思いついたスクリプトです。 processadmin のメンバーである必要があることに注意してください 接続を見つけて強制終了するサーバー ロールと securityadmin のメンバー ログインを削除します。 (もちろん、sysadmin 何でもできます。)

    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. Oracle-複数の値で使用する場合のCLAUSEの質問で、動的にする

    2. Oracleデータベースでは、ROWNUMとROW_NUMBERの違いは何ですか?

    3. SQL Serverのvarbinary(max)の最大実スペース

    4. MicrosoftAccessでフォームヘッダーにタイトルを追加する方法