SQL Server, ideas y experiencias

Como recuperar la contraseña del SA si se perdió o se olvidó

por Jose Mariano Alvarez 25. febrero 2011

PanicoComo los instaladores del SQL Server de las últimas versiones, no incorporan automáticamente al grupo de administradores de Windows (builtin\Administrators) como administradores del SQL Server (y tampoco es una buena práctica hacerlo), es bastante probable que ocurran este tipo de problemas o accidentes si los procedimientos para la generación, protección y guardado de contraseñas no están documentados y no son estrictos.

A veces, durante los procesos de operación y administración de los servidores, o instalación y configuración, puede suceder que se pierden las contraseñas o los privilegios de los administradores de un motor de base de datos de SQL Server. Entre los casos más habituales se encuentran por ejemplo:

  • Se han quitado todos los inicios de sesión o todos los grupos de Windows que son miembros del rol fijo de servidor sysadmin,
  • Los inicios de sesión que son miembros del rol fijo de servidor sysadmin son personas que no están disponibles porque han dejado la empresa o están de vacaciones por ejemplo
  • Se pierde la contraseña, ya sea del SA o de un inicio de sesión creado como administrador de SQL Server.

Una manera de solucionar este problema es reinstalar SQL Server. Sin embargo este procedimiento tiene algunas consecuencias ya que más allá del tiempo necesario para realizar la reinstalación se pierden en este proceso datos que están grabados en las bases del sistema, como por ejemplo los inicios de sesión (o logins) y por lo tanto se deberá recuperar estos datos desde una copia de seguridad. Se debe tener en cuenta que al realizar este proceso de restauración se vuelve al estado anterior al proceso de instalación porque se reescribe la base de datos del sistema con una copia previa y dependiendo del caso, podría tener los mismos inicios de sesión que antes de la reinstalación y por consiguiente, los administradores aún no tendrán acceso.

Solución

Para resolver este problema, lo mejor es aprovechar las propiedades que tienen los administradores de Windows luego de iniciar la instancia de SQL Server en modo de usuario único utilizando la opción -m. Después de iniciar la instancia del SQL Server en modo de usuario único, cualquier miembro del grupo local de administradores del equipo puede conectarse a la instancia de SQL Server como miembro del rol fijo de servidor sysadmin y realizar tareas administrativas como cambiar permisos. Se debe tener en cuenta que en este modo no se pueden realizar todos los cambios posibles. Esto previene que los administradores de Windows abusen de los privilegios de actuar como un administrador de SQL Server.

Los pasos a seguir son los siguientes:

  1. Abrir el SQL Server Configuration Manager desde el menú de Windows y detener el servicio de la instancia del SQL Server involucrada.
  2. En la solapa de “Avanzado” (Advanced), en el cuadro de texto propiedades (Properties), agregar “;–m” al final de la lista en la opción de parámetros de arranque “Startup parameters”. Debe tenerse en cuenta que no haya espacios entre “;” y “-m” porque si no va a dar error.
  3. Aceptar los cambios presionando “OK”.
  4. Reiniciar la instancia del SQL Server. En este instante se debe verificar que el resto de los servicios que componen el SQL Server están de detenidos, especialmente si alguno de esos corre con una cuenta de servicio que es administrador local, porque estos servicios podrían conectarse utilizando la única conexión disponible antes de que lográramos conectarnos para realizar los cambios necesarios, y ya no sería posible que nos conectáramos porque sería una segunda conexión.
  5. Conectarse al sql server utilizando autenticación Windows mediante la herramienta de línea de comandos “sqlcmd”. El usuario de Windows debe ser administrador local. (*)

    Por ejemplo:

    SQLCMD –S Localhost –E
  6. Ejecutar por ejemplo un comando TSQL como "sp_addsrvrolemember" para agregar un inicio de sesión existente (o uno nuevo recién creado con CREATE LOGIN) como administrador del sql server o cambiar la contraseña de inicio de sesión con ALTER LOGIN.

    Por ejemplo:
    CREATE LOGIN [Dominio\usuario] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
    GO
    EXEC master..sp_addsrvrolemember             
    @loginame = N'Dominio\usuario',
    @rolename = N'sysadmin' GO
  7. Luego de que se tiene acceso al sql server como administrador, eliminar el “;-m” como parámetro de arranque utilizando el configuration manager y reiniciar la instancia del sql server.

(*) Importante: Si el sistema operativo tiene User Account Control (UAC), y está activado,  a pesar de pertenecer al grupo de administradores locales, no es posible conectarse al SQL Server con privilegios de administrador local a menos que la consola se abra con la opción de “ejecutar como administrador” utilizando el menú de contesto que aparece presionando el botón derecho sobre el icono del CMD.EXE.

Referencias:

Solucionar problemas: conectarse a SQL Server cuando los administradores del sistema no tienen acceso

http://msdn.microsoft.com/es-ar/library/dd207004.aspx

Iniciar SQL Server en modo de usuario único

http://msdn.microsoft.com/es-ar/library/ms188236.aspx

Tags: ,

Artículos

Paquete de actualización acumulativa 1 para SQL Server 2005 Service Pack 4

por Jose Mariano Alvarez 27. diciembre 2010

sql2005logoEnlosadoMicrosoft ha liberado el 24 de diciembre de 2010 la actualización acumulativa 1 del Microsoft SQL Server 2005 (build 9.00.5254) que solo se debe aplicar a una revisión de SQL Server 2005 Service Pack 4 (build 9.00.5000). Esta actualización contiene soluciones para problemas que han sido corregidos desde el lanzamiento de SQL Server 2005 Service Pack 4.

Es importante tener en cuenta que es recomendable instalar esta actualización solo en sistemas que experimenten los problemas específicos que corrige este paquete y solo si estos sistemas se ven muy afectados por dichos problemas.  El próximo service pack del SQL Server 2005 va a contener los hotfix de este paquete de actualización.

Pueden encontrar los detalles de la actualización (incluidos los problemas resueltos) y el enlace de descarga en:

http://support.microsoft.com/kb/2464079

También pueden encontrar el paquete como Cumulative update package 1 for SQL Server 2005 Service Pack 4 o CU1 for SQL Server 2005 Service Pack 4

Tags: , , , , ,

Actualizaciones

SQL Server 2005 Service Pack 4 - SP4

por Jose Mariano Alvarez 25. diciembre 2010

Microsoft ha liberado el 17 de diciembre 2010 el Service Pack 4 del SQL Server 2005 (BUILD 9.00.5000). El SQL Server 2005 SP4 incluye las actualizaciones acumulativas del SQL Server 2005 SP3 desde la 1 a la 11, además de otras correcciones solicitadas por los clientes.

Debido a que las compilaciones de estas actualizaciones son acumulativas, cada nueva actualización contiene todas las mejoras anteriores y por lo tanto no es necesario instalarla antes de esta actualización.

En el SQL Server 2005 las actualizaciones no son multilenguaje. Por lo tanto debe ser utilizado el paquete del idioma que coincide con la instalación que se desea actualizar. Este service pack 4 incluye actualizaciones de todos los componentes del SQL Server, pero solo se instalarán los correspondientes a los componentes que ya están instalados en el sistema.

Esta actualización se puede utilizar para actualizar las siguientes ediciones de SQL Server 2005:

  • Enterprise
  • Developer
  • Standard
  • Workgroup

Para obtener SQL Server 2005 Express Edition , se debe descargar la versión SP4 del SQL Server 2005 Express o el SQL Server 2005 Express Edition con Advanced Services.

Para obtener más información, puede ver los siguientes links:

Microsoft SQL Server 2005 SP4 Release Notes
Notas de la versión de Microsoft SQL Server 2005 SP4 (es-ES)

Lista de los errores corregidos en SQL Server 2005 Service Pack 4
http://support.microsoft.com/kb/2463332

Descargas del Service Pack 4 de Microsoft SQL Server 2005


Service Pack 4 de Microsoft SQL Server 2005 (Inglés)

Service Pack 4 de Microsoft SQL Server 2005 (Español)

SQL Server 2005 Express Edition SP4

Service Pack 4 de Microsoft SQL Server 2005 Express Edition (Español)

Microsoft SQL Server 2005 Express Edition Service Pack 4 (Inglés)

Microsoft SQL Server Management Studio Express Service Pack 4 (Inglés)

Service Pack 4 de Microsoft SQL Server Management Studio Express (Español)

Otras descargas

Feature Pack for Microsoft SQL Server 2005 SP4 (Inglés)

Feature Pack de Microsoft SQL Server 2005 SP4 (Español)

Sistemas operativos compatibles:

  • Windows 7
  • Windows Server 2003
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows Vista
  • Windows XP

NOTA: Siempre es recomendable que pruebe las actualizaciones antes de implementarlas en un entorno de producción.

Tags: , , , , ,

Actualizaciones

FIX para el Error 315 The backup set holds backup of a database other than the existing database

por Jose Mariano Alvarez 25. noviembre 2010

Hace poco migrando de equipo y edición (pero no de versión) una base de datos de SQL Server utilizada por Blackberry que estaba en un SQL Server 2005 SP3 me dio un error al realizar un RESTORE con el siguiente comando en el nuevo servidor:


RESTORE
DATABASE [BESMgmt] FROM DISK = N'O:\MSSQL\Blackberry\BESMgmt20101125.bak' WITH MOVE N'BESMgmt_data' TO N'O:\MSSQL\Blackberry\BESMgmt.mdf', MOVE N'BESMgmt_log' TO N'O:\MSSQL\Blackberry\BESMgmt.ldf', NOUNLOAD, STATS = 10 GO

El error fue el siguiente

Error 3154: The backup set holds a backup of a database other than the existing database.

Lo extraño fue que había hecho el Backup con el siguiente comando con lo cual estaba totalmente seguro que el archivo de Backup contenía la base de datos correcta.

BACKUP DATABASE [BESMgmt] 
TO  DISK = N'C:\Backup\BESMgmt20101125.bak' 
WITH NOFORMAT, NOINIT,  
NAME = N'BESMgmt-Full Database Backup', 
SKIP, NOREWIND, NOUNLOAD,  STATS = 10
GO

La solución

La solución es simple e ingeniosa. Únicamente debemos “mentirle” para que crea que debe sobrescribir una base de datos existente utilizando WITH REPLACE. Aunque la base de datos no existe la ejecución es exitosa y resuelve el problema, permitiendo realizar el RESTORE.

Ejemplo

RESTORE DATABASE [BESMgmt] 
FROM  DISK = N'O:\MSSQL\Blackberry\BESMgmt20101125.bak' 
WITH REPLACE,  
MOVE N'BESMgmt_data' 
TO N'O:\MSSQL\Blackberry\BESMgmt.mdf',  
MOVE N'BESMgmt_log'      
TO N'O:\MSSQL\Blackberry\BESMgmt.ldf',  
NOUNLOAD,  STATS = 10
GO

Tags: , ,

Artículos

Truco para diseñar una dimensión tiempo de un Data Warehouse

por Jose Mariano Alvarez 18. noviembre 2010

CalendarioLa dimensión de tiempo existe habitualmente en cada data warehouse y la granularidad más usada es el día. Generalmente tiene muchos atributos pero solo algunos de estos atributos como por ejemplo el nombre del mes y el año pueden ser obtenidos fácilmente usando una expresión SQL aplicada a la fecha. Si la dimensión tiene atributos para dar soporte a múltiples lenguajes resulta a veces complicado construirla con el lenguaje SQL. Otros atributos no se pueden obtener mediante SQL ya que no hay mecanismos predecibles y dependen de decisiones humanas.

Otra característica de la dimensión tiempo es que suele tener muchos atributos como por ejemplo marcas de días feriados o no laborables, atributos de períodos fiscales o de temporadas, atributos relacionados a la fecha como el número de semana, la marca de último día del mes, y otros atributos muy útiles usados especialmente para la navegación y que deben estar integrados en la dimensión fecha mediante atributos dimensionales.

La gran ventaja de esta dimensión es que está completamente definida y especificada desde el inicio del proyecto del data warehouse. Pero la desventaja es que no tiene una fuente de datos convencional sino que se suele generar mediante algún mecanismo como una planilla o tabla cargada manualmente o mediante algún proceso.

La clave de la dimensión fecha

Todas las dimensiones fecha necesitan un atributo que representa a la fecha y un atributo para relacionar con la tabla de hechos. Debe haber al menos un registro que permita representar situaciones especiales como una fecha no aplicable o no informada o que no ha ocurrido aún y además es posible que desee distinguir varias de estas condiciones inusuales.

En estos casos en que se deben representar hechos relacionados a estas “fechas especiales”, las referencias foreign key en la tabla de hechos deben permitir referenciar a estos registros con “fechas inusuales” en la tabla de la dimensión fecha. Recordemos que el valor de estos atributos en los campos de la tabla de hechos no puede ser nulo, ya que debe estar relacionado con la tabla de la dimensión tiempo.

La clave principal de la dimensión fecha ideal debería ser una clave subrogada sin representación semántica, como por ejemplo un numero entero (que no representa una fecha), pero muchos diseñadores no pueden resistir la tentación de hacer que la clave sea legible como por ejemplo 20101116 significando el 16 de noviembre de 2010. Sin embargo, como con todas las claves inteligentes, los pocos registros especiales en la dimensión fecha harán que el diseñador utilice trucos para representarlas. Por ejemplo, la clave inteligente para una fecha “no aplicable” tendría que ser un valor sin sentido como por ejemplo 99999999, y esto trae aparejado que las aplicaciones que tratan de interpretar la fecha directamente para obtener información (como por ejemplo el mes) sin usar los atributos de la dimensión tengan inconvenientes porque no es una fecha válida.

Conclusión

En definitiva utilizar un tipo de dato fecha para el atributo clave de la dimensión fecha no es una buena elección y conviene que el valor este subrogado utilizando una clave entera que está oculto al usuario dentro de la meta data. El atributo representativo de la fecha debe ser un atributo que acepte representaciones especiales y no solamente representación de fechas válidas.

Referencia:

[PDF] Kimball Design Tip #51: Latest Thinking On Time Dimension Tables
http://www.rkimball.com/html/designtipsPDF/KimballDT51LatestThinking.pdf

Tags: ,

Ideas y nociones | Artículos

Libros en linea de SQL Server 2011 “Denali”

por Jose Mariano Alvarez 13. noviembre 2010

Quienes quieran ver las novedades disponibles en la próxima versión de SQL Server 2011 “DENALI” además de poder descargar el CTP1 que ya está disponible pueden acceder en línea a los libros en línea disponibles en inglés.

Books Online for SQL Server "Denali"
http://msdn.microsoft.com/en-us/library/ms130214(SQL.110).aspx

Novedades

What's New (SQL Server "Denali")
http://msdn.microsoft.com/en-us/library/bb500435(SQL.110).aspx

Tags:

Novedades

Ya se puede descargar el CTP1 de SQL Server 2011 “Denali”

por Jose Mariano Alvarez 9. noviembre 2010

Ayer fue anunciado en la conferencia PASS que está disponible para descargar el CTP1 de la próxima versión del SQL Server 2011 cuyo nombre de proyecto es "Denali". Si bien falta algo de tiempo para que este entre nosotros la versión final, se pueden ver y probar algunas de las nuevas características.

El CTP1 de “Denali”, está disponible para el que quiera probarlo. Sus objetivos son proporcionar una plataforma altamente disponible y escalable con una mayor flexibilidad, facilidad de uso, menor coste total de propiedad, y el rendimiento requerido por la mayoría de las aplicaciones de misión crítica.

Siempre debe tenerse en cuenta que en el proceso de desarrollo pueden cambiar, o desaparecer algunas de las características que tiene durante el proceso de pruebas.

 

Les dejo algunos links:

Información de SQL Server 2011 “Denali”:

http://www.microsoft.com/sqlserver/en/us/product-info/future-editions.aspx,

Anuncio del Parallel Data Warehouse 2008 R2:

http://www.microsoft.com/Presspass/press/2010/nov10/11-09PASS10PR.mspx.

Descarga del Microsoft® SQL Server® code-named 'Denali' - Community Technology Preview 1 (CTP1)

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=6a04f16f-f6be-4f92-9c92-f7e5677d91f9

 

Algunas novedades que tendrá

  • SQL Server AlwaysOn (Siempre activo), proporciona un conjunto de capacidades para ayudar a las empresas a maximizar el tiempo de funcionamiento de sus aplicaciones de misión crítica, simplificar las implementaciones de alta disponibilidad y ofrecer un mejor rendimiento de las inversiones de hardware.
  • Acelerador de consultas basado en columnas, ayudará a aumentar drásticamente el rendimiento de consultas (~ 10x) y reducir las tareas de optimización del rendimiento a través de experiencias interactivas con los datos y eliminar la necesidad de construir agregaciones.
  • Mejorar el cumplimiento mediante la auditoría en todas las ediciones de SQL Server
  • Gestionar eficazmente la separación de funciones con las funciones de servidor de grano fino.
  • Las mejoras de compatibilidad ayudarán a simplificar las pruebas de aplicaciones y reducir los errores con los cambios en las aplicaciones y las actualizaciones distribuidas utilizando Replay.
  • Un rendimiento más rápido de FileStream y búsqueda de texto completo, el apoyo espaciales 2D y FileTable.
  • Experiencia unificada de desarrollo, herramientas de SQL Server con nombre en código " "
  • Entorno único para el desarrollo de bases de datos, BI y soluciones web.
  • Ampliación del alcance de BI a través de la visualización basada en web altamente interactivas y storyboard.
  • Exploración de datos en Internet y soluciones de visualización.
  • Análisis en memoria y disco para toda la organización
  • Proporcionar el mayor rendimiento de análisis desde el desktop al centro de datos a través de la tecnología Vertipaq
  • Modelo semántico, tanto para la presentación de informes y análisis.
  • Integración de datos empresariales
  • Dos componentes nuevos para la gestión de datos, servicios de datos de calidad de la limpieza de datos basada en el conocimiento y análisis de impacto y linaje.

Tags: , ,

Novedades

Powered by SQL Total Consulting


View Jose Mariano Alvarez's profile on LinkedIn

 Add to Technorati Favorites 

Calendar

<<  septiembre 2014  >>
lumamijuvido
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

View posts in large calendar

Locations of visitors to this page

Widget Twitter not found.

Root element is missing.X


Valid XHTML 1.0 Transitional

Valid CSS!