Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Server Windows登录-同名不同用户(SID)_Sql Server_Sql Server 2008 R2_Active Directory - Fatal编程技术网

Sql server SQL Server Windows登录-同名不同用户(SID)

Sql server SQL Server Windows登录-同名不同用户(SID),sql-server,sql-server-2008-r2,active-directory,Sql Server,Sql Server 2008 R2,Active Directory,我在windows登录sql 2008 r2服务器时遇到问题 在active directory中创建了一个名为“mydomain\jon.doe”的用户,并在SQL server上创建了windows登录名 由于exchange出现问题,此广告帐户已被删除,并创建了一个名为“mydomain\jon.doe”的新帐户 我运行以下命令从我的sql server中删除旧用户 EXECUTE('USE ' + @Database + ' IF EXISTS (SELECT [name] FROM

我在windows登录sql 2008 r2服务器时遇到问题

在active directory中创建了一个名为“mydomain\jon.doe”的用户,并在SQL server上创建了windows登录名

由于exchange出现问题,此广告帐户已被删除,并创建了一个名为“mydomain\jon.doe”的新帐户

我运行以下命令从我的sql server中删除旧用户

  EXECUTE('USE ' + @Database + ' IF EXISTS (SELECT [name] FROM sys.Schemas WHERE [name] = ''' + @FullyQualifiedUserName + ''') BEGIN DROP SCHEMA [' + @FullyQualifiedUserName + '] PRINT ''Deletion '' END')

  EXECUTE('USE ' + @Database + ' IF EXISTS (SELECT [name] FROM sys.Schemas WHERE [name] = ''' + @SimpleUserName + ''') BEGIN DROP SCHEMA [' + @SimpleUserName + '] PRINT ''Deletion '' END')

  EXECUTE('USE ' + @Database + ' IF EXISTS (SELECT [name] FROM sys.database_principals WHERE [name] = ''' + @FullyQualifiedUserName + ''') BEGIN DROP USER [' + @FullyQualifiedUserName + '] PRINT ''Deletion '' END')

  EXECUTE('USE ' + @Database + ' IF EXISTS (SELECT [name] FROM sys.database_principals WHERE [name] = ''' + @SimpleUserName + ''') BEGIN DROP USER [' + @SimpleUserName + '] PRINT ''Deletion '' END')
但是,当我将“mydomain\jon.doe”重新添加到sql server时,它似乎保留了旧SID而不是新AD帐户的SID

到目前为止我已经试过了。。。但是没有运气

DBCC FREESYSTEMCACHE('ALL')

解决方法可能是在Active Directory中创建一个只包含“mydomain\jon.doe”的组,并为此组添加SQL登录。

解决方法可能是在Active Directory中创建一个只包含“mydomain\jon.doe”的组,并为此组添加一个SQL登录。

您的代码显示数据库用户删除,但是你从服务器上删除了登录名吗

[your user drops]
Use master 
go
DROP LOGIN [mydomain\jon.doe];
如果不是,则SQL Server仍在使用旧SID链接到AD用户

如果你跑

xp_logininfo 'mydomain\jon.doe'
…您是否收到错误0x534?如果是这样,那么您肯定需要这样做:

  • 从服务器上的所有数据库中删除作为数据库用户的用户
  • 删除登录名
  • 重新添加登录名
  • 重新添加用户

  • 这将从SQL Server中清除旧SID,您将再次正常工作。

    您的代码显示数据库用户已删除,但您是否已从服务器删除登录名

    [your user drops]
    Use master 
    go
    DROP LOGIN [mydomain\jon.doe];
    
    如果不是,则SQL Server仍在使用旧SID链接到AD用户

    如果你跑

    xp_logininfo 'mydomain\jon.doe'
    
    …您是否收到错误0x534?如果是这样,那么您肯定需要这样做:

  • 从服务器上的所有数据库中删除作为数据库用户的用户
  • 删除登录名
  • 重新添加登录名
  • 重新添加用户

  • 这将从SQL Server中清除旧的SID,您将再次正常工作。

    这是正确的预防措施,原因有很多。如果对所有广告访问使用组成员身份,则可以避免这种混乱。但是,它不会清除存在的坏SID,因为看起来NoseBag先生可能删除了DB用户,而不是登录本身。这是正确的预防措施,因为这和许多其他原因。如果对所有广告访问使用组成员身份,则可以避免这种混乱。然而,它不会清除存在的坏SID,因为看起来NoseBag先生可能删除了DB用户,但没有删除登录本身。