如何使用MSSQL修复孤立用户

何为孤立用户

在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中,孤立用户可能会导致授权错误。为了修复这些孤立用户,可以选择删除或重新链接到一个新的系统用户。通过这些方法,管理员可以确保数据库中的用户帐户被正确链接到系统用户,从而有效地管理和授权数据库访问。

数据库标签