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.
- 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
- 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
- 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