Usuario huérfano en SQL Server

Los usuarios huérfanos son los usuarios que están disponibles en el nivel de la base de datos pero sus inicios de sesión asignados no están disponibles en el nivel del servidor. Los usuarios huérfanos se crean cuando una base de datos se restaura a partir de una copia de seguridad de un servidor en otro servidor.

Para obtener los usuarios huérfanos en cualquier base de datos en SQL Server, use lo siguiente:

Sintaxis:

USE DATABASENAME
EXEC sp_change_users_login report
GO

Ejemplo:
supongamos que hemos restaurado GeeksDb del Servidor1 al Servidor2, usando el siguiente comando en el Servidor2.

USE GeeksDb
EXEC sp_change_users_login report
GO 

Producción –

Nombre de usuario ID de usuario
Geek1 0x7A4X871C3EXX7C42X67B5F3CD2C35FXX
Geek2 0x7A4E871C3EXX27C42B67XXF3CC4C35FXX
Geek3 0x7A5E871X3EXX27C42F57XXF3CC4C35FXX
Geek4 0x7A5E871C3EFF27C32D67XXF3CC4C45FXX

Los métodos a continuación podrían usarse para corregir a los usuarios huérfanos.

  1. UTILIZACIÓN CON SID DE USUARIO HUÉRFANO:
    para corregir cualquier usuario huérfano, utilice crear inicio de sesión mediante SID.

    Sintaxis:

    USE MASTER
    CREATE LOGIN [LoginName] 
    WITH PASSWORD = 'Password',
    SID = 0x7A4X871C3EXX7C42X67B5F3CD2C35FXX 

    Ejemplo –

    USE MASTER
    CREATE LOGIN [Geek1] WITH PASSWORD = 'Pa$$W0rd1', 
    SID = 0x7A4X871C3EXX7C42X67B5F3CD2C35FXX 
    
  2. USO DE UPDATE_ONE:
    UPDATE_ONE podría usarse para mapear incluso cuando el nombre de inicio de sesión y el nombre de usuario son diferentes o podría usarse para cambiar el SID del usuario con el SID de inicio de sesión.

    Primero, cree un nuevo inicio de sesión.

    USE MASTER
    CREATE LOGIN [LoginName] WITH PASSWORD = 'Password'

    Una vez que se crea el inicio de sesión, use UPDATE_ONE para corregir el usuario huérfano.

    Sintaxis:

    USE DATABASENAME
    sp_change_users_login UPDATE_ONE, 'UserName', 'LoginName'
    GO

    Ejemplo –

    USE MASTER
    CREATE LOGIN [Geek2] WITH PASSWORD = 'Pa$$W0rd2'
    USE GeekDb
    sp_change_users_login UPDATE_ONE, 'Geek2', 'Geek2'
    GO
    
  3. USO DE AUTO_FIX –
    TIPO 1: cuando el nombre de inicio de sesión y el nombre de usuario son iguales.

    Primero cree el inicio de sesión y luego asigne el SID de inicio de sesión al usuario huérfano.

    Sintaxis:

    USE master
    CREATE LOGIN [LoginName] WITH PASSWORD = 'Password'
    
    USE DATABASENAME
    sp_change_users_login AUTO_FIX, 'LoginName/UserName'
    Go

    Ejemplo :

    USE master
    CREATE LOGIN [Geek3] WITH PASSWORD = 'Pa$$W0rd3'
    USE GeekDB
    sp_change_users_login AUTO_FIX, 'Geek3/Geek3'
    Go 

    TIPO 2: Sin crear el inicio de sesión.

    Sintaxis:

    USE DATABASENAME
    sp_change_users_login AUTO_FIX, 'UserName', NULL, 'Password'
    GO

    Ejemplo :

    USE GeekDb
    sp_change_users_login AUTO_FIX, 'Geek4', NULL, 'Pa$$W0rd4'
    GO 

    Para obtener los usuarios huérfanos en cualquier base de datos después de usar los métodos anteriores:

    USE GeeksDb
    EXEC sp_change_users_login report
    GO 

    Producción –

    1. Nombre de usuario 2. ID de usuario

    Una vez que los usuarios huérfanos se solucionen con éxito, no habrá ningún usuario huérfano (Nombre de usuario y SID de usuario) como resultado del comando anterior.

Publicación traducida automáticamente

Artículo escrito por khushboogoyal499 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *