Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tavares.leo

Mudança de Owner

Recommended Posts

Pessoal, vê se vocês podem me ajudar.Fiz um Restore de um BD, mas o Owner das tabelas esta com outro usuário. E agora eu preciso trocar este usuario. Para trocar de tabela em tabela se utiliza o comando sp_changeobjetctowner.Mas são muitas tabelas e trocar uma a uma vai demorar 1 dia. Alguem tem um script para trocar o owner de todas as tabelas de uma vez ?Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já passei pelo mesmo problema, tenho um script que faz esta alteração, segue....DECLARE @dynsql varchar(1000)SET @dynsql = ''DECLARE @Obj_Owner sysnameSET @Obj_Owner = ''DECLARE @Obj_Type VARCHAR(30)SET @Obj_Type = ''DECLARE @Obj_Name sysnameSET @Obj_Name = ''DECLARE @ObjCounter INTSET @ObjCounter = 0DECLARE @DBO CHAR(3)SET @DBO = 'DBO'create table #ChangeOwners(id int identity(1,1),Obj_Owner sysname,Obj_Name sysname,Obj_Type varchar(30))INSERT #ChangeOwners (Obj_Owner, Obj_Name)select su.name, so.namefrom sysusers sujoin sysobjects soon su.uid = so.uidwhere su.name not in ('information_schema', 'dbo')and so.type in ('p', 'u', 'v')select * from #ChangeOwnersSET @ObjCounter = @@rowcountWHILE @Objcounter > 0 BEGIN SELECT @Obj_Name = Obj_Owner + '.' + Obj_Name FROM #ChangeOwners WHERE id = @ObjCounter SELECT @Obj_Type = Obj_Type FROM #ChangeOwners WHERE id = @ObjCounter SET @dynsql = 'sp_ChangeObjectOwner ''' + @Obj_Name + ''', ' + @DBO print 'changing ownership on ' + @Obj_Type + ': ' + @Obj_Name EXEC(@dynsql) SET @ObjCounter = @ObjCounter - 1 ENDdrop table #ChangeOwnersBasta você ir no Query Analyzer, se logar e selecionar a base de dados que deseja alterar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E como eu faria para reverter esse script?

 

/]@t' date='23/01/2006 - 09:38' post='502506']

Já passei pelo mesmo problema, tenho um script que faz esta alteração, segue....

 

 

DECLARE @dynsql varchar(1000)

SET @dynsql = ''

 

DECLARE @Obj_Owner sysname

SET @Obj_Owner = ''

 

DECLARE @Obj_Type VARCHAR(30)

SET @Obj_Type = ''

 

DECLARE @Obj_Name sysname

SET @Obj_Name = ''

 

DECLARE @ObjCounter INT

SET @ObjCounter = 0

 

DECLARE @DBO CHAR(3)

SET @DBO = 'DBO'

 

create table #ChangeOwners(

id int identity(1,1),

Obj_Owner sysname,

Obj_Name sysname,

Obj_Type varchar(30))

 

INSERT #ChangeOwners (Obj_Owner, Obj_Name)

select su.name, so.name

from sysusers su

join sysobjects so

on su.uid = so.uid

where su.name not in ('information_schema', 'dbo')

and so.type in ('p', 'u', 'v')

 

select * from #ChangeOwners

SET @ObjCounter = @@rowcount

 

WHILE @Objcounter > 0

BEGIN

SELECT @Obj_Name = Obj_Owner + '.' + Obj_Name

FROM #ChangeOwners

WHERE id = @ObjCounter

 

SELECT @Obj_Type = Obj_Type

FROM #ChangeOwners

WHERE id = @ObjCounter

 

SET @dynsql = 'sp_ChangeObjectOwner ''' + @Obj_Name + ''', ' + @DBO

 

print 'changing ownership on ' + @Obj_Type + ': ' + @Obj_Name

EXEC(@dynsql)

SET @ObjCounter = @ObjCounter - 1

END

 

 

drop table #ChangeOwners

 

 

 

Basta você ir no Query Analyzer, se logar e selecionar a base de dados que deseja alterar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voltar ao owner de origem, ou seja, antes da mudança. Há alguma maneira caso não dê certo ou preciso fazer tudo na mão msm?

Obrigada!

 

/]@t' date='21/09/2006 - 17:21' post='642254']

Como assim reverter ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá...

Na verdade eu até tenho, mas não tenho permissão para restaurar ou fazer outro backup dessa base de dados no servidor, e a pessoa responsável não está presente, então prefiro nem mexer muito para não atrasar, mas sem problema, eu usei esse script e deu certo, consegui oq queria, se tiver q voltar ao q era eu faço na mão msm :D

Valeu, você me ajudou muito!

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

/]@t' date='22/09/2006 - 09:59' post='642573']

Mas você não tem uma backup ou algo do tipo do seu banco de dados ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.