何为孤立用户
在MSSQL中,孤立用户是指在数据库中已存在的用户帐户,但是该用户在服务器层面已经不存在,也就是该用户在Windows服务器上已被删除。在这种情况下,当数据库管理员试图授权该帐户时,将会出现错误,因为系统执行权限检查时无法识别该用户。
如何检测孤立用户
在MSSQL中,可以使用以下命令来检查孤立用户:
SELECT UserName = name ,
UserSID = sid
FROM sys.database_principals
WHERE TYPE ='S' AND sid IS NOT NULL
AND SUSER_SNAME(sid) IS NULL
ORDER BY name;
此命令将返回数据库中存在但无法链接到系统用户的所有用户。
修复孤立用户的方法
方法1:删除孤立用户
如果不再需要该用户,可以删除该孤立用户,以避免在将来授权这个帐户时出现错误。以下是删除孤立用户的步骤:
在MSSQL中打开查询分析器,并使用管理员帐户登录。
运行以下命令删除孤立用户:
USE YourDatabase;
DROP USER [UserName];
注意:将命令中的"YourDatabase"和"UserName"分别替换为您自己的数据库和要删除的孤立用户。
方法2:重新链接到系统用户
如果需要保留该孤立用户,则可以创建一个新的系统用户并将其链接到该用户,以重新授予该用户权限。以下是重新链接到系统用户的步骤:
在MSSQL中打开查询分析器,并使用管理员帐户登录。
运行以下命令创建新的系统用户:
CREATE LOGIN [UserSID] WITH PASSWORD = 'password',
DEFAULT_DATABASE = YourDatabase,
CHECK_POLICY = OFF;
注意:将命令中的"UserSID"替换为孤立用户的SID,将"password"替换为要为新用户设置的密码,将"YourDatabase"替换为数据库名称。
将该用户链接到新系统用户:
USE YourDatabase;
ALTER USER [UserName] WITH LOGIN = [UserSID];
注意:将命令中的"YourDatabase"替换为数据库名称,将"UserName"替换为要重新链接的用户的名称,将"UserSID"替换为刚创建的新系统用户的SID。
总结
在MSSQL中,孤立用户可能会导致授权错误。为了修复这些孤立用户,可以选择删除或重新链接到一个新的系统用户。通过这些方法,管理员可以确保数据库中的用户帐户被正确链接到系统用户,从而有效地管理和授权数据库访问。