Sql-Server
程序未知的使用者/登錄名
SQL Server 版本為 11.0.5569.0。
伺服器上程序的使用者/登錄名如下:
S-1-9-3-412646706-1242810017-220819094-3312857753
這不是孤立使用者(如下所示),因為我在輸入此文章之前檢查過。
我查看了使用 Ideradm、
sp_blitzfirst
和執行的項目sp_whoisactive
。解釋計劃表明這正在使用它顯然在前面的步驟中創建的幾個臨時表。當我針對“主要”表執行腳本時,NADA 什麼也沒有。
還有其他建議嗎?
EXECUTE AS USER = 'SomeUser';
在'SomeUser'
伺服器級別沒有連結登錄名的使用者將導致 SQL Server 將登錄名報告為以s-1-9-3
.您可以使用 中的
original_login_name
列sys.dm_exec_sessions
來確定誰或什麼在冒充使用者而無需登錄;例如:SELECT SessionID = des.session_id , LoginName = des.login_name , OriginalLoginName = des.original_login_name FROM sys.dm_exec_sessions des WHERE des.is_user_process = 1;
我在SQL Server Science上寫了一篇博文,展示了這種行為,以及如何辨識正在模擬的數據庫級主體。
對於沒有登錄伺服器的使用者,請點擊此連結:
失敗使用者報告 - 顯示伺服器上的所有 SQL 使用者
USE [<database>] EXEC sp_change_users_login 'REPORT' --SQL 2000 and earlier USE [<database>] EXEC sp_change_users_login 'Auto_Fix', 'MyUser' --SQL 2005 onwards USE [<database>] ALTER USER [MyUser] WITH LOGIN = [MyUser] --to find database users (windows accounts) without Server login select users.name, logins.name from master..syslogins logins right join sysusers users on logins.sid = users.sid where logins.sid is null and issqlrole <> 1 and isapprole <> 1 and (users.name <> 'INFORMATION_SCHEMA' and users.name not in ('guest', 'dbo', 'sys', 'system_function_schema'))
一些長時間執行的程序被阻塞並導致其他問題
為此,我推薦名為sp_whoisactive的程序