INSERT - copiar acessos para outro usuario

Oracle

15/01/2016

boa tarde, tenho uma dois usuários no sistema que acessam o BD, um usuário (usu_1) tem acesso na tabela estoque a vários cd_estoques, preciso liberar o mesmo acesso para o usu_2, para isso pensei em fazer um insert e copiar os acessos so que não sei de que forma.
Bruno Lopes

Bruno Lopes

Curtidas 0

Melhor post

Jothaz

Jothaz

15/01/2016

Fazer INSERT´s direto na base de dados e principalmente se for produção não é recomendável, pois qualquer engano pode ser catastrófico e causar muitos transtornos.

Porque você não libera o aceso direto na interface da sua aplicação é muito mais seguro?
GOSTEI 1

Mais Respostas

Bruno Lopes

Bruno Lopes

15/01/2016

eu ja faço direto na aplicação mais queria uma forma de fazer via query, pois são muitos estoques e o fato de fazer via select iria me facilitar, eu tenho uma base de homologação para testar e caso fique ok implemento em producao.
GOSTEI 0
Ricardo

Ricardo

15/01/2016

Bruno,

Você não consegue recuperar o script SQL que é executado pela aplicação, quando você libera a permissão de acesso direto na aplicação?
GOSTEI 0
Jothaz

Jothaz

15/01/2016

Só fiz a observação, pois no post não tinham detalhes, então fica muito dificil sugerir algo sem a visão do cenário completo.

insert into table1 seus_campos
select seus_campos 
from table1
where sua_condição
GOSTEI 0
Bruno Lopes

Bruno Lopes

15/01/2016

Sim, mais la me apresenta o select e não como faço para inserir, eu preciso saber como fazer o insert pegando os acessos de um usuário e colocando para outro, esse é o script da tela de acesso ao estoque

SELECT
CD_ID_DO_USUARIO,CD_ESTOQUE,TP_USUARIO,SN_AUTORIZA_ALTE_SOLICITACAO,SN_AUTORIZA_EXCL_SOLICITACAO,SN_AUTORIZA_ALTE_MOVIMENTACAO,SN_AUTORIZA_EXCL_MOVIMENTACAO,SN_PERMITE_ALT_ORD_COMPRAS,SN_ALT_VL_UNIT_OC,VL_PERC_VAR_VL_UNIT,SN_TRANS_QUANT_COTA
FROM DBAMV.USU_ESTOQUE
WHERE DBAMV.USU_ESTOQUE.CD_ESTOQUE IN (SELECT ESTOQUE.CD_ESTOQUE FROM DBAMV.ESTOQUE WHERE ESTOQUE.CD_MULTI_EMPRESA = 1) and order by CD_ID_DO_USUARIO ,CD_ESTOQUE
GOSTEI 0
Bruno Lopes

Bruno Lopes

15/01/2016

onde coloco o ID do usuário que irá receber os acessos, sei que o usuário de onde irei copiar os acessos fica no where do select.
GOSTEI 0
Jothaz

Jothaz

15/01/2016

Esta reposta foi para mim ou para o Ricardo Heronides?
GOSTEI 0
Bruno Lopes

Bruno Lopes

15/01/2016

PARA VC, FIZ UM RASCUNHO:

INSERT INTO DBAMV.USU_ESTOQUE (CD_ESTOQUE)
select CD_ESTOQUE from dbamv.USU_ESTOQUE
where CD_ID_DO_USUARIO = 'JOAOSILVA'
GOSTEI 0
Jothaz

Jothaz

15/01/2016

O campo ID é auto incremento?
GOSTEI 0
Bruno Lopes

Bruno Lopes

15/01/2016

da tabela estoque é o CD_ESTOQUE
GOSTEI 0
Jothaz

Jothaz

15/01/2016

da tabela estoque é o CD_ESTOQUE


Você não respondeu o que perguntei, no caso o campo CD_ESTOQUE é auto-incremento?

Quer dizer que ao fazer o INSERT ele é incrementado automaticamente ou é manualmente?
GOSTEI 0
Bruno Lopes

Bruno Lopes

15/01/2016

desculpe, automático, o CD_ESTOQUE é auto-incremento
GOSTEI 0
Ricardo

Ricardo

15/01/2016

Certo, Bruno.

Para montar o insert você apenas precisa pegar as informações que são retornadas neste SELECT e colocar no INSERT.

Você conhece a estrutura de um INSERT? Pois está me parecendo que você tem dúvidas em relação ao INSERT.
GOSTEI 0
Bruno Lopes

Bruno Lopes

15/01/2016

tenho uma duvida, onde coloco o nome do usuário que quero que receba os acessos? é possível?
GOSTEI 0
Ricardo

Ricardo

15/01/2016

Pelo que entendi da estrutura da sua tabela, seria no campo CD_ID_DO_USUARIO.

Quando você roda um SELECT, qual é a informação retornada neste campo?
GOSTEI 0
Bruno Lopes

Bruno Lopes

15/01/2016

retorna os usuários que tem acessos a algum estoque, o usuarios que não tem nenhum acesso a estoque algum não aparece.

select e.cd_id_do_usuario from dbamv.usu_estoque e
GOSTEI 0
Ricardo

Ricardo

15/01/2016

Então cara, não aparece porque é o usuário que você está criado.

No INSERT você vai colocar todos os dados do usuário que está copiando. EXCETO o nome do usuário. Pois irá colocar o novo ID.

Ou se o campo for auto incremento, pois aí o banco já irá gerar um ID na sequência.
GOSTEI 0
Bruno Lopes

Bruno Lopes

15/01/2016

ok, vlw.
GOSTEI 0
POSTAR