none
Cambio de propietario de unas tablas RRS feed

  • Pregunta

  • Hola a todos, tengo un problema, tengo una aplicación que crea una base de datos con todas y sus tablas, mi problema que he tenido es que utilizo el usuario DELTA para realizar dicha acción, lo cual me trae una problemática muy fuerte en la búsqueda de dichas tablas ya que necesito indicarle a mi programa primero el propietario DELTA y después el nombre de la tabla lo cual tendría que cambiar gran parte de mi código, alguien conoce algún método o instrucción que me permita re-nombrar el propietario de cada tabla. De antemano gracias a todos y espero sus respuestas.


    Ah por cierto estoy utilizando SQL Server 2000 Enterprise

    martes, 17 de abril de 2007 16:46

Respuestas

  • En tu analizador de consultas ejecuta:

     

    SELECT 'EXEC sp_changeobjectowner '+CHAR(39)+NAME+CHAR(39)+','+CHAR(39)+'dbo'+CHAR(39)

    FROM sysobjects

    WHERE xtype = 'U'

    AND uid IN(SELECT uid FROM SYSUSERS WHERE name = 'DELTA')

     

    El resultado de este query, lo ejecutas en el mismo analizador de consultas.

    martes, 17 de abril de 2007 19:53

Todas las respuestas

  • Consulta:

     

    EXEC sp_changeobjectowner 'authors', 'dbo'

     

    authors = objeto

    dbo = usuario propietario

     

    Para que esto no te suceda, debes indicar en tu creacion de objeto, el usuario al cual va a pertenecer.

     

    CREATE TABLE dbo.MyTabla

    martes, 17 de abril de 2007 19:45
  • En tu analizador de consultas ejecuta:

     

    SELECT 'EXEC sp_changeobjectowner '+CHAR(39)+NAME+CHAR(39)+','+CHAR(39)+'dbo'+CHAR(39)

    FROM sysobjects

    WHERE xtype = 'U'

    AND uid IN(SELECT uid FROM SYSUSERS WHERE name = 'DELTA')

     

    El resultado de este query, lo ejecutas en el mismo analizador de consultas.

    martes, 17 de abril de 2007 19:53
  • Muchas gracias Isaías Islas, lo que pasa es que ejecuto una instruccion para evitar estarlas creandolas una por una, es alrededor de unas 50 tablas y con 8 columnas como promedio, es una labora que es mejor ejecutarla desde un script, pero con el problema es que siempre necesito logear el programa como DELTA para que creé las tablas.

     

    Gracias nuevamente. Saludos a todos.

    miércoles, 18 de abril de 2007 22:24
  • Carlos

     

    No importa que el usuario de conexion sea DELTA, simplemente en tu script de creacion integra el usuario propietario

     

    (suponiendo que DELTA abra un analizador de consultas y ejecute)

     

    CREATE TABLE iislas.TablaCliente.......................

     

    El usuario al que pertenece la tabla TABLACLIENTE es 'iislas'

    miércoles, 18 de abril de 2007 23:05