INSERT - copiar acessos para outro usuario

15/01/2016

1

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.
Responder

Post mais votado

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?
Responder

Mais Posts

15/01/2016

Bruno Lopes

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.
Responder

15/01/2016

Ricardo

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?
Responder

15/01/2016

Jothaz

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
Responder

15/01/2016

Bruno Lopes

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
Responder

15/01/2016

Bruno Lopes

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.
Responder

15/01/2016

Jothaz

Esta reposta foi para mim ou para o Ricardo Heronides?
Responder

15/01/2016

Bruno Lopes

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'
Responder

15/01/2016

Jothaz

O campo ID é auto incremento?
Responder

15/01/2016

Bruno Lopes

da tabela estoque é o CD_ESTOQUE
Responder

15/01/2016

Jothaz

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?
Responder

15/01/2016

Bruno Lopes

desculpe, automático, o CD_ESTOQUE é auto-incremento
Responder

15/01/2016

Ricardo

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.
Responder

15/01/2016

Bruno Lopes

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

15/01/2016

Ricardo

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?
Responder

15/01/2016

Bruno Lopes

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
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira