|
|
O Smart Menu é uma ferramenta desenvolvida para facilitar o acesso e organizar seus atalhos para os programas mais utilizados. 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> |
|
|
|
|
|
|