SQL 2000: Update sysxlogins

17/07/2008 - 20:26 por Juan Carlos Mendoza | Informe spam
Estaba revisando una bd que me pasaron para evaluar si se puede migrar
a SQL 2005. Ejecutando la herramienta Advisor me salio que elimine las
referencias a tablas de sistema no documentadas.

Revisando un poco mas era un procedure que permite cambiar el
password. les recreo en forma abreviada la ocurrencia, y si alguien
pudiera explicarme el porque funciona, se lo agradecere.

UPDATE MASTER.DBO.SYSXLOGINS
SET PASSWORD = CONVERT(VARBINARY(256), PWDENCRYPT('clave1')), XDATE2
= GETDATE(), XSTATUS = XSTATUS & (~2048)
WHERE NAME = 'usuario' AND SRVID IS NULL
Server: Msg 259, Level 16, State 2, Line 1
Ad hoc updates to system catalogs are not enabled. The system
administrator must reconfigure SQL Server to allow this.


Al crear un procedure conteniendo esta sentencia si funciona, aunque
para crearlo debo hacer algunas cosas previas como system
administrator.


EXEC sp_configure 'allow updates', 1
reconfigure with override
GO
create proc dbo.up_cambio as
UPDATE MASTER.DBO.SYSXLOGINS
SET PASSWORD = CONVERT(VARBINARY(256), PWDENCRYPT('clave1')), XDATE2
= GETDATE(), XSTATUS = XSTATUS & (~2048)
WHERE NAME = 'usuario' AND SRVID IS NULL
GO
EXEC sp_configure 'allow updates', 0
reconfigure with override


luego con cualquier usuario puedo ejecutar el stored procedure..y
lo hace!!! cambia el password.

exec up_cambio
(1 row(s) affected)


Alguien podria explicarme el porque funciona la actualizacion si no
esta activa la opcion "allow Updates"?

Saludos,

Juan Carlos Mendoza

Preguntas similare

Leer las respuestas

#1 Carlos A.
17/07/2008 - 22:56 | Informe spam
Buen Dia:
Fácil, por que el allow updates , AUTORIZA a realizar cambios sobre las
tablas catálogos del sistema, como son:
sysservers, sysdatabases, sysxlogism, syslogins, etc.
No es recomendable dejar esta opción por defecto habilitada ya que por error
puede modificar una de las tablas del sistema y la instancia puede quedar
inestable.
Solo se recomienda dejarla habilitada cuando se realiza una tarea específica
y luego volverla a dejar deshabilitada.

Un saludo,


"Juan Carlos Mendoza" wrote:

Estaba revisando una bd que me pasaron para evaluar si se puede migrar
a SQL 2005. Ejecutando la herramienta Advisor me salio que elimine las
referencias a tablas de sistema no documentadas.

Revisando un poco mas era un procedure que permite cambiar el
password. les recreo en forma abreviada la ocurrencia, y si alguien
pudiera explicarme el porque funciona, se lo agradecere.

UPDATE MASTER.DBO.SYSXLOGINS
SET PASSWORD = CONVERT(VARBINARY(256), PWDENCRYPT('clave1')), XDATE2
= GETDATE(), XSTATUS = XSTATUS & (~2048)
WHERE NAME = 'usuario' AND SRVID IS NULL
Server: Msg 259, Level 16, State 2, Line 1
Ad hoc updates to system catalogs are not enabled. The system
administrator must reconfigure SQL Server to allow this.


Al crear un procedure conteniendo esta sentencia si funciona, aunque
para crearlo debo hacer algunas cosas previas como system
administrator.


EXEC sp_configure 'allow updates', 1
reconfigure with override
GO
create proc dbo.up_cambio as
UPDATE MASTER.DBO.SYSXLOGINS
SET PASSWORD = CONVERT(VARBINARY(256), PWDENCRYPT('clave1')), XDATE2
= GETDATE(), XSTATUS = XSTATUS & (~2048)
WHERE NAME = 'usuario' AND SRVID IS NULL
GO
EXEC sp_configure 'allow updates', 0
reconfigure with override


luego con cualquier usuario puedo ejecutar el stored procedure..y
lo hace!!! cambia el password.

exec up_cambio
(1 row(s) affected)


Alguien podria explicarme el porque funciona la actualizacion si no
esta activa la opcion "allow Updates"?

Saludos,

Juan Carlos Mendoza

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida