Это кажется, что у Вас уже был загрузчик Windows на одном диске, и когда Вы установили Ubuntu, принял решение установить личинку на том же диске и никогда не помещать загрузчик на второй диск. Если Вы хотите отложить загрузчик Windows, необходимо загрузить CD установки Windows, войти в консоль восстановления и использовать эти FIXMBR
команда.
В SqlServer Studio на главной базе данных.
Используйте команду sp_who2 для просмотра списка открытых сессий.
В списке найдите спид для вашего пользователя - их может быть несколько - например, 999
Используйте kill и spid для закрытия всех сеансов, например: kill 999
Затем DROP LOGIN [theuser]
Если вы знаете, к какой базе данных они будут подключены, вы можете установить базу данных в однопользовательский режим с немедленным откатом, который прекратит их сеансы.
Это не всегда возможно, но я только что перезапустил SQL-сервер из служб. Это очистило все открытые связи.
ALTER DATABASE [DATABASE_NAME]
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE
как сказал SqlACID, или вы можете найти все процессы и убить по одному за раз, а затем удалить пользователя
Пользователь может быть удален после прекращения сеанса, идентифицируя session_id
пользователя.
SELECT session_id
FROM sys.dm_exec_sessions
WHERE login_name = 'test'
KILL 69 --69 is session_id here, you may get different id
Теперь вы можете удалить имя входа, просто выполнив приведенный ниже запрос (или) с помощью параметров студии управления сервером sql.
DROP LOGIN 'test'
Хорошо, вот сценарий, который я придумал, который работал для меня. Обратите внимание, что вам нужно быть участником серверной роли processadmin , чтобы найти и уничтожить соединение, и членом securityadmin , чтобы сбросить имя входа. (Конечно, сисадмин может делать все что угодно.)
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