Error 15025 SQL Server. The server principal already exists

Error 15025 SQL Server. The server principal already exists

Error 15025 SQL Server, en el mundo de la administración de bases de datos, es común enfrentarse a problemas relacionados con la creación y gestión de logins en SQL Server. Estos inconvenientes pueden surgir debido a varios factores, como cambios en la estructura organizativa o migraciones de sistemas. En este blog, exploraremos cómo identificar y resolver problemas de login en SQL Server, específicamente aquellos relacionados con el identificador único SID (Security Identifier).

Error 15025 SQL Server. The server principal already exists
Error 15025 SQL Server. The server principal already exists

Identificando Logins Existentes

Antes de proceder con la resolución de cualquier problema, es fundamental verificar si el login en cuestión ya existe en el sistema. Dependiendo de la versión de SQL Server que estés utilizando, puedes utilizar una de las siguientes consultas:

Para SQL Server 2016 y superiores:

SELECT * FROM master.sys.sql_logins WHERE name='login_a_buscar';

Para SQL Server 2019:

SELECT * FROM master.sys.syslogins WHERE name='login_a_buscar';

Si la consulta confirma la existencia del login, no es necesario realizar ninguna acción adicional. Sin embargo, si el login no está creado, es crucial determinar si el problema está relacionado con el SID.

El Rol del SID en SQL Server

El SID es un identificador único asignado a cada login en SQL Server. Este identificador es esencial para la autenticación y autorización del usuario. Supongamos que un usuario de dominio de Windows cambió su nombre de «dominio\aperez» a «dominio\E2572» debido a una reorganización empresarial. Aunque el nombre del usuario ha cambiado, el SID permanece igual. Esta situación puede causar conflictos al intentar crear un nuevo login en SQL Server.

Identificando el SID del Login Antiguo

Para resolver el problema, primero necesitamos conocer el SID del login antiguo. Puedes obtenerlo con la siguiente consulta:

sqlCopiar códigoSELECT SUSER_SID('dominio\omoran');

La consulta devolverá un SID similar a:

0x010500000000000515000000335089052D4CEC75E0276300F0190100

Verificando el Login Asociado al SID

Con el SID en mano, podemos verificar que está asociado al login antiguo y obtener todos sus datos:

SELECT * FROM sys.server_principals sp WHERE sid=0x010500000000000515000000335089052D4CEC75E0276300F0190100

Reemplazando el Login Antiguo con el Nuevo

Una vez localizado el login, el siguiente paso es utilizar SQL Server Management Studio para eliminar el login antiguo y crear uno nuevo con el mismo SID pero con el nuevo nombre de usuario. A continuación, se detalla el proceso paso a paso:

  1. Generar el Código SQL:
    • En SQL Server Management Studio, localiza el login antiguo.
    • Haz clic derecho sobre él y selecciona «Incluir inicio de sesión como -> DROP and CREATE to -> Nueva ventana del editor de consultas».
    • Esta acción generará el código necesario para eliminar y volver a crear el login.
  2. Modificar el Código SQL:
    • En la nueva ventana de consultas, reemplaza el nombre del login antiguo por el nuevo en la instrucción CREATE LOGIN.

Ejemplo de código modificado:

USE [master]
GO
DROP LOGIN [dominio\omoran]
GO
CREATE LOGIN [dominio\nuevo_omoran] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
GO
ALTER SERVER ROLE [sysadmin] ADD MEMBER [dominio\nuevo_omoran]
GO
  1. Ejecutar el Código:
    • Ejecuta el código modificado para eliminar el login antiguo y crear el nuevo login con las mismas características.

Verificación Final

Para asegurarnos de que todo ha funcionado correctamente, podemos repetir la consulta inicial para verificar la existencia del login con el nuevo nombre pero el mismo SID:

SELECT * FROM sys.server_principals sp WHERE sid=0x010500000000000515000000335089052D4CEC75E0276300F0190100

Si la consulta devuelve el nuevo login, habrás resuelto exitosamente el problema.

Conclusión

Gestionar logins en SQL Server puede ser desafiante, especialmente cuando se trata de conflictos relacionados con el SID. Sin embargo, con las consultas y pasos adecuados, es posible solucionar estos problemas de manera efectiva. Esperamos que esta guía te haya proporcionado las herramientas necesarias para enfrentar y resolver conflictos de login en tu entorno de SQL Server.

Script para saber el histórico de queries ejecutados SQL

¿Qué es un SGBDR SQL Server? Todo lo que Necesitas Saber

Eliminar usuarios huérfanos SQL server

Operador NOT IN de SQL: Una Guía Completa

Sacar permisos de Base de Datos SQL scripts

Entendiendo Kerberos en SQL Server: Seguridad y Autenticación

Guía Completa para Formatear Fechas en SQL FORMAT Server 2022

Descarga de SQL Server Management Studio (SSMS)

Deja una respuesta

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


El periodo de verificación de reCAPTCHA ha caducado. Por favor, recarga la página.

error: Contenido protegido :)