by Roy Rojas
23. octubre 2009 03:37
Algunas veces cuando importamos una base de datos, ya sea por restore, script o cual sea, esta puede venir asociada a algún usuario, el cual no tenemos en nuestro ambiente de seguridad, ni nos interesaría tenerlo, entonces tenemos que cambiarle a cada objeto el owner al que nosotros definamos.
Con el siguiente código generamos el script necesario para cambiarle el owner a los objetos
select 'exec sp_changeobjectowner ''dbo1046.' + name + ''',''dbo''' from sysobjects
where xtype = 'U'
sp_changeobjectowner recibe dos parámentros, nombre del objeto con el prefijo del owner original y el segundo parámetro sería el nuevo owner con el que quedaría este objeto
xtype indica el tipo de objeto al cual le queremos aplicar el código, tabla, vista, función, etc. Los diferentes tipos de objetos son :
C CHECK_CONSTRAINT
D DEFAULT_CONSTRAINT
F FOREIGN_KEY_CONSTRAINT
FN SQL_SCALAR_FUNCTION
FS CLR_SCALAR_FUNCTION
IT INTERNAL_TABLE
P SQL_STORED_PROCEDURE
PK PRIMARY_KEY_CONSTRAINT
S SYSTEM_TABLE
SQ SERVICE_QUEUE
TF SQL_TABLE_VALUED_FUNCTION
TR SQL_TRIGGER
U USER_TABLE
UQ UNIQUE_CONSTRAINT
V VIEW