Compare Produtos, Lojas e Preços
Register |  Login

SQL Lite

Gerenciador open-source para bases de dados SQL Server, MSDE/Express e Microsoft Access. Acessar
   

Smart Menu

O Smart Menu é uma ferramenta desenvolvida para facilitar o acesso e organizar seus atalhos para os programas mais utilizados. Acessar
   

Car Manager

 Gerenciador de gastos e média de consumo (Windows Mobile) para o seu veículo. Acessar.
   

Bem vindo ao novo site da Friendship

Em sua criação, em 1999, a Friendship surgiu como uma empresa voltada à pesquisa no desenvolvimento de soluções para acessos a bancos de dados e desenvolvimento de sistemas na Internet. O principal produto desse esforço é o SQL Lite, uma ferramenta gratuita de acesso a banco de dados, que já conta com mais de 9 mil usuários ao redor do mundo.
 
No ano de 2002, consciente da importância que a Internet representa para as empresas, principalmente na questão da democratização da informação e da redução dos custos, resolvemos aplicar nossos conhecimentos em diversos negócios no desenvolvimento de soluções que utilizem a Internet como meio.
   


Alterar owner de tabelas, consultas, procedures, etc

Localização: Blogs Leverson Carlos SQL Lite    
Publicado por:  Leverson Carlos 23/9/2007 14:16
Outra dúvida comum é:
_ Rodei um script logado na base com determinado usário, e o script não especificava o owner (dbo, por exemplo). Agora os demais usuários para poderem se referenciar ao objeto criado, precisam especificar meu usuário na frente do nome do objeto.

Típico, o camarada está logado como JOAO na base de dados e roda um CREATE TABLE Clientes. A partir daí, as consultas à tabela precisam ser feitas especificando o usuário proprietário do objeto (owner), algo como: SELECT * FROM JOAO.Clientes.

Agora, se o João tivesse rodado a querie: CREATE TABLE dbo.Clientes, os demais usuários poderiam se referenciar à tabela simplesmente pelo nome da mesma: SELECT * FROM Clientes.

Mas agora é tarde, o objeto já fora criado, como podemos alterar o proprietário do objeto ? A querie abaixo resolve o problema:

EXEC sp_changeobjectowner 'Joao.Clientes', 'dbo'

Lembrando que isso serve para Tables, Views, Procedures, Functions, etc.

editado: Conforme solicitado, abaixo uma dica de como proceder para executar o processo para diversos objetos de uma única vez. Primeiramente vamos montar uma querie para listar todos os objetos.
 SELECT
  [Name], xType,
  convert(sysname,USER_NAME(uid)) As [Owner]
 FROM sysObjects

Dessa forma teríamos uma lista de todos os objetos, isso inclui TABLEs, VIEWs, PROCs, até mesmo TIGGERs, PKs, etc. Se quisermos filtrar apenas algum(ns) tipo(s) de objeto(s) precisamos incluir condições where na query acima, por exemplo; xType='U', traria apenas User Tables (tabelas que não sejam de sistema), xType='V' apenas views, xType='P' apenas procedures, e assim por diante.
Uma vez listado os objetos desejados, vamos filtrar apenas aqueles cujo owner seja diferente de dbo e acrescentar o retorno de uma coluna que irá trazer, para cada objeto, a instrução montada para ser executada.
 SELECT
  [Name], xType,
  'EXEC sp_changeobjectowner ''' + [Owner] + '.' + [Name] + ''', ''''dbo' + '''' As Instrucao
 FROM
 (

  SELECT
   [Name], xType,
   convert(sysname,USER_NAME(uid)) As [Owner]
  FROM sysObjects

  ) As Sub
 WHERE
  [Owner] <> 'dbo'

O retorno dessa querie, devemos exportar para um TXT (da forma que achar mais prático), copiar e colar (apenas a coluna instrucao) de volta em uma outra janela do SQL Lite (ou a ferramenta que estiver usando) e executar.
Espero ter ajudado. Qualquer dúvida ou sugestão, comentem.
 |  Permalink  |  Trackback

Comentários (4)    Novo Comentário
Re: Alterar owner de tabelas, consultas, procedures, etc    por Dandy em 25/9/2007 17:21
Show de bola. Parabéns, Leverson.

Re: Alterar owner de tabelas, consultas, procedures, etc    por Allan em 11/10/2007 7:36
OK perfeita a query.<br><br>Mas e quando quero mudar vários objetos???<br>Existe alguma forma de alterar de uma só vez?<br>Estou alterando uma por uma e isso é um saco<br>

Re: Alterar owner de tabelas, consultas, procedures, etc    por Leverson em 11/10/2007 13:40
Alan, como pode ver eu editei o post acrescentando uma sugestão para a sua dúvida. Experimente e qualquer coisa, volte a comentar.

Re: Alterar owner de tabelas, consultas, procedures, etc    por gleidson em 4/12/2007 12:12
cara parabens, isso me ajudou muito.<br>


Seu Nome:
Título:
Comentário:
Atualizar   Cancelar 
   

 Pesquisa


Saiba onde tem o melhor preço antes de comprar