Array
(
)

pra virar o Owner do objeto

Andernaval
   - 28 mar 2006

Prezados,

Favor me instruir em como tornar o meu usuário sendo owner de um objeto.
Pois, um usuário que formatou o backup de nossa empresa, foi mandado embora, então, ao reiniciar o servidor, o backup está informando a seguinte mensagem:
MESSAGES:The job failed. Unable to determine if the owner (BETUNEL\dlima) of job LOG - 13:00 as 19:00 has server access (reason: Could not obtain information about Windows NT group/user ´BETUNEL\dlima´. [SQLSTATE 42000] (Error 8198)).

Sendo que o usuário Dlima não possui mais conta no win2003. acho que não está efetuando backup por está procurando o usuário dlima. então favor me ajudarem em como resolver este problema me tornando o meu usuário como owner do objeto?
grato

Falcolandrao
   - 29 mar 2006

:o Olá Anderson, eu tenho um script que roda no Query Analiser, e ele troca o owner da tabela, espero que te ajude, veja o seguinte:

DECLARE cursor_sys CURSOR FOR
SELECT [name] FROM sysobjects WHERE type=´U´ AND uid=5 ORDER BY [name] ASC

DECLARE @nome_obj VARCHAR(70)
DECLARE @sql VARCHAR(100)
DECLARE @user_old VARCHAR(50)
DECLARE @user_new VARCHAR(50)

SET @user_old = ´dlima´
SET @user_new = ´anderson´

OPEN cursor_sys
FETCH NEXT FROM cursor_sys INTO @nome_obj
WHILE @@fetch_status=0
BEGIN
SELECT @sql=´sp_changeobjectowner ´´´+ @user_old +´.´ + @nome_obj + ´´´,´´´+ @user_new +´´´ ´
EXEC(@sql)
--print(@sql)
FETCH NEXT FROM cursor_sys INTO @nome_obj
END
CLOSE cursor_sys
DEALLOCATE cursor_sys

Preste atenção aqui --> SET @user_old = ´dlima´
SET @user_new = ´dbo´ coloque o antigo em user_old dlima para trocar pelo novo, sei lá anderson em user_new e depois execute o script e vá no Enterprise Manager, o owner sera trocado, ok e espero te-lo ajudado.

It3r
   - 17 abr 2006

Andernaval, creio que dessa maneira... irá funcionar...

-- Gera um script com todos os objetos com owner <> de dbo
-- Para alterar o owner dos objetos para dbo, basta executar o script gerado

select ´exec sp_changeobjectowner ´´+ b.name+ ´.´ +a.name +´´,´DBO´´
from sysobjects a Join sysusers b
on a.uid = b.uid
where a.uid <>1

Espero ter ajudado.