- Este tópico contém 9 respostas, 2 vozes e foi atualizado pela última vez 10 anos, 10 meses atrás por C-S-R.
-
AutorPosts
-
8 de março de 2014 às 1:18 am #106382C-S-RParticipante
Salve pessoal do GPO,
Estou tentando criar uma view da vsession que so mostre as sessões de um determinado usuário. Porém estou tomando o erro ORA-01031: privilégios insuficientes.
Segue oq estou tentando fazer
grant select on sys.v_$session to hr;
create view hr.vw_teste as select * from sys.v_$session where username = ‘csr’
grant select on hr.vw_teste to csr;ORA-01031
Mesmo se eu der a grant
grant select on sys.v_$session to csr;
Aparece o mesmo erro.
Alguém consegue me ajudar?
10 de março de 2014 às 9:08 pm #106384rmanParticipante@C-S-R
Utilize o usuário SYS as DBA para realizar o GRANT. 🙂
10 de março de 2014 às 10:05 pm #106388C-S-RParticipante@rman
Estou utilizando o usuário sys para dar as grants.
10 de março de 2014 às 11:52 pm #106389rmanParticipante@C-S-R
Bom, acabei de executar aqui exatamente os seus comandos e não deu problema nenhum. :blink:
11 de março de 2014 às 12:48 am #106390C-S-RParticipante@rman
Voce conseguiu fazer select na view, vw_teste, com o usuario csr?
Com o usuário hr eu consigo fazer o select.
11 de março de 2014 às 4:56 pm #106391rmanParticipante@C-S-R
Realmente ao realizar o SELECT apresenta o erro de permissão.
Qual o problema de liberar a V_$SESSION direto para o usuário? Quais informações são realmente necessárias para o usuário? Dependendo da situação essas informações podem ser obtidas através da função SYS_CONTEXT.
11 de março de 2014 às 6:42 pm #106392C-S-RParticipante@rman
Vou colocar na aplicação e enviar para o cliente, se for a grant na v_$session a aplicação vai conseguir ver as sessions de todas as aplicações, inclusive as que não são nossas. Isso torna a aprovação pelo cliente mais complicada.
A ideia era fazer a view somente para nossa aplicação limitando pelo usuário. Para conseguir a aprovação.
Com isso quero achar os processos que estão com problema de lock.
Com a coluna event da view posso saber quem ta em lock.13 de março de 2014 às 8:09 pm #106396C-S-RParticipanteAlguem com ideias para o problema?
@rman, muito obrigado pela ajuda
13 de março de 2014 às 9:37 pm #106397rmanParticipante@C-S-R
Bom, consegui resolver o problema, mas não sei se facilita ou dificulta a aprovação. A sacada é utilizar o GRANT com WITH GRANT OPTION, essa opção possibilita o usuário que recebeu a permissão passar a permissão para frente, que de certa forma é o que acontece. O usuário HR recebeu a permissão e implicitamente repassa para o usuário CSR quando o mesmo acessa a VIEW. Um detalhe o usuário HR agora pode conceder a permissão para qualquer outro usuário de maneira explicita também, ou seja, ele pode executar GRANT SELECT ON SYS.V_$SESSION TO RMAN. :woohoo:
grant select on sys.v_$session to hr WITH GRANT OPTION;
create view hr.vw_teste as select * from sys.v_$session where username = 'csr'
grant select on hr.vw_teste to csr;
14 de março de 2014 às 11:28 pm #106400C-S-RParticipante@rman,
Opa funcionou aqui.
Muito obriagdo rman.
Acredito que não tenha problema.
O schema não pode conectar na aplicação e todo alter é passado por validação, então não tem como mudar a view para outro usuario. -
AutorPosts
- Você deve fazer login para responder a este tópico.