[oracle_br] Re:Re: PROXY USER by jlchiappa

2015-10-22 Por tôpico Cristiano Vasconcelos Barbosa cvasconcel...@gmail.com [oracle_br]
Chiappa, primeiramente, gostaria de agradecer sua ajuda, suas colocações e
soluções são sempre de muita valia, OBRIGADO. Em resposta às suas
solicitações, sequem minhas respostas:

01 -- se há um POOL de conexões aí ou não (e qual é ele, se houver,
especificando softwares/APIs/versões/modo pelo qual o pool foi
implementado/criado);
NÃO existe pool de conexão.

02 -- diga se cada comando SQL é executado numa nova sessão ou não, que aí
a gente pode tentar te dar alternativas para permissão POR SESSÃO, isso sim
existe;
SIM, cada comando SQL é executado numa nova sessão. O controle desejado
seria justamente POR SESSÃO CRIADA.

Em um cenário onde os usuários que acessam o sistema via web e que estão
CADASTRADOS no DB com ROLES ATRIBUÍDAS de "CONNECT", "RESOURCE", e uma
"ROLE_X" específica com permissão de ALTER, DELETE,
EXECUTE,INSERT,SELECT,UPDATE em tabelas do sistema, como política de
segurança, o que se deseja é que os usuários fiquem apenas com permissão de
sistema de "CREATE SESSION" adquirindo as ROLES de "CONNECT", "RESOURCE", e
uma "ROLE_X" específica com permissão de ALTER, DELETE,
EXECUTE,INSERT,SELECT,UPDATE em tabelas do sistema PELA SESSÃO
CRIADA/ABERTA, E QUE QUANDO ESTA SESSÃO FOSSE FECHADA, VIA SISTEMA OU
DERRUBADA DO BROWSE, ESTA SESSÃO FOSSE DESFEITA E ESTAS PERMISSÕES FOSSEM
REVOGADAS.

03 -- isso vai passar por roles não-default ou por contextos globais sendo
acessados por trigger de logon ou coisas assim.
SIM. O desejável seria que fossem roles não DEFAULT que seriam ativadas por
conta da conexão e desativadas quando do logoff, ou término da sessão.

Ps.:  Atualmente, com adaptações ao meu cenário, foi implementado trigger
de logon e logoff. Fonte da Implementação:
http://www.dba-oracle.com/art_builder_sec_audit.htm e livro "Physical
Database Design Using Oracle" de "Donald K. Burleson". Gostaria ainda de
sua sugestão nesta trigger para o acréscimo do usuário do S.O., OSuser e
dos IP´s das máquinas.

2.2 Re: PROXY USER

Qua, 21 de Out de 2015 8:01 pm . Enviado por: jlchiappa
Opa, blz ? Sobre o PROXY USER, entre outras fontes vc pode dar uma olhada
no meu blog, em
https://jlc1967.wordpress.com/2015/02/12/conectar-como-outro-usuario/ eu
dou um exemplo curtinho. O mecanismo de funcionamento dele é bem simples :
o usuário X que já existe no database e que recebeu o privilégio de connect
proxy para o schema Y, vai poder criar uma sessão no database conectado
como se fosse o usuário Y - ou seja, o usuário X que recebeu o priv de
proxy em Y para todos os efeitos práticos dentro do database, se tornou o
usuário Y, é como se Y estivesse conectado
OBVIAMENTE, se a pessoa está conectada na prática como se fosse Y, ela vai
poder fazer *** TUDO *** o que Y faz - inclusive , se Y é dono de tabelas,
CLARO que vai poder fazer qualquer coisa, INCLUSIVE dropar, o dono faz TUDO
que quiser com suas tabelas... Um exemplinho disso :

=> crio um usuário zemanéqualquer, que não tem priv de nada:

SQL@system:XE> create user zezinho identified by zezinho;

Usußrio criado.

SQL@system:XE> grant create session to zezinho;

ConcessÒo bem-sucedida.

=> dou permissão pro zezinho se tornar na prática o HR (dono de tabelas) :

SQL@system:XE> alter user HR grant connect THROUGH zezinho;

Usußrio alterado.

===> prontinho : fornecendo a sua própria senha o zezinho vai poder se
tornar o HR, conectar como se fosse o HR,mesmo sem saber a senha do HR :

SQL@system:XE> connect zezinho[HR]/zezinho
Conectado.

SQL@zezinho:XE> select * from departments;

DEPARTMENT_ID DEPARTMENT_NAME MANAGER_ID LOCATION_ID
- -- -- ---
10 Administration 200 1700
20 Marketing 201 1800
30 Purchasing 114 1700
40 Human Resources 203 2400
50 Shipping 121 1500
...

270 Payroll 1700

27 linhas selecionadas.

==> como o zezinho "virou" o HR, pode até dropar as tabelas do HR, pode
MESMo fazer tudo o que o HR faz :


SQL> drop table hr.tab_teste;

Tabela eliminada.

SQL>

Blz  COM ABSOLUTA CERTEZA  não é isso  que vc quer, não é
portanto caso pro PROXY USER, ** a não ser ** que vc dê permissão de fazer
proxy para um usuário que só tenha recebido os GRANTs de
INSERT/UPDATE/DELETE que vc quer dar - proxy pro usuário dono das tabelas
da aplicação não faz O MENOR SENTIDO..
Já que vc fala de dar GRANTs de INSERT/UPDATE/DELETE, o que eu faria na
verdade é o simples : como DBA, crio (apenas uma vez) uma role
ROLE_INS_UPD_DEL_APPLIC, dou os GRANTs de INSERT, UPDATE e DELETE nas
tabelas em questão paraa role, e ok : daí pra frente , quando e se cada
usuário necessitar, eu como DBA (ou a Aplicação via uma tela específica,
enfim, se tiver que ser Automatizado) dou o grant da Role parao usuário, e
quando necessário retiro o aceso à role via REVOKE

===> O único senão é que vc diz : " determinadas permissões do dono do
sistema/tabelas para efetuar ** transações ** específicas tais como:
Insert, Update, Delete" - vamos deixar bem claro, primeiro, que no
RDBMS Oracle uma TRANSAÇÃO é o 

Re: [oracle_br] RMAN

2015-10-22 Por tôpico Andre Luiz Reis Marques aandre...@yahoo.com.br [oracle_br]
Combinado,
Obrigado mais uma vez a atençao do Grupo!!
 Atenciosamente, 
André Luiz R. Marques 
Administrador de Banco de Dados - SQL Server/OracleTel: (21) 99978-4564 Evite 
imprimir. Colabore com o Meio Ambiente! "Embora ninguém possa voltar atrás e 
fazer um novo começo, qualquer um pode
começar agora e fazer um novo fim."    Chico Xavier

 


 Em Quarta-feira, 21 de Outubro de 2015 20:19, "jlchia...@yahoo.com.br 
[oracle_br]"  escreveu:
   

     Blz ? Então, a primeira recomendação seria vc procurar não por Apostila, 
referências ou coisas assim, mas sim que vc fosse nos Manuais Oracle que 
ensinam os conceitos básicos do RMAN e os estude - pra versão 9i o link é 
https://docs.oracle.com/cd/B10501_01/server.920/a96566/toc.htm e pra versão 10g 
o link é  http://docs.oracle.com/cd/B19306_01/backup.102/b14191/toc.htm 

 Uma vez os conceitos básicos compreendidos, aí se vc nos dizer os detalhes que 
não diz (ie, Qual o Sistema Operacional do servidor, se vc vai fazer backup pra 
disco ou pra fita, se é backup full ou incremental, se é backup online/hot - 
com o banco ligado/ativo - ou offline/cold - com banco offline/inacessível, se 
o database está registrando as alterações das transações pararecuperação (modo 
archive) ou não, se os arquivos desse database tão em raw device,em ASM ou em 
filesystem, etc) a gente COM CERTEZA pode te indicar links de exemplos para o 
seu caso específico, ou mesmo pode compartilhar o shell script/procedimkento de 
backup que já tenhamos... OK ? 

  []s

   Chiappa  #yiv8921629932 #yiv8921629932 -- #yiv8921629932ygrp-mkp {border:1px 
solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv8921629932 
#yiv8921629932ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv8921629932 
#yiv8921629932ygrp-mkp #yiv8921629932hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv8921629932 #yiv8921629932ygrp-mkp #yiv8921629932ads 
{margin-bottom:10px;}#yiv8921629932 #yiv8921629932ygrp-mkp .yiv8921629932ad 
{padding:0 0;}#yiv8921629932 #yiv8921629932ygrp-mkp .yiv8921629932ad p 
{margin:0;}#yiv8921629932 #yiv8921629932ygrp-mkp .yiv8921629932ad a 
{color:#ff;text-decoration:none;}#yiv8921629932 #yiv8921629932ygrp-sponsor 
#yiv8921629932ygrp-lc {font-family:Arial;}#yiv8921629932 
#yiv8921629932ygrp-sponsor #yiv8921629932ygrp-lc #yiv8921629932hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv8921629932 
#yiv8921629932ygrp-sponsor #yiv8921629932ygrp-lc .yiv8921629932ad 
{margin-bottom:10px;padding:0 0;}#yiv8921629932 #yiv8921629932actions 
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv8921629932 
#yiv8921629932activity 
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv8921629932
 #yiv8921629932activity span {font-weight:700;}#yiv8921629932 
#yiv8921629932activity span:first-child 
{text-transform:uppercase;}#yiv8921629932 #yiv8921629932activity span a 
{color:#5085b6;text-decoration:none;}#yiv8921629932 #yiv8921629932activity span 
span {color:#ff7900;}#yiv8921629932 #yiv8921629932activity span 
.yiv8921629932underline {text-decoration:underline;}#yiv8921629932 
.yiv8921629932attach 
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 
0;width:400px;}#yiv8921629932 .yiv8921629932attach div a 
{text-decoration:none;}#yiv8921629932 .yiv8921629932attach img 
{border:none;padding-right:5px;}#yiv8921629932 .yiv8921629932attach label 
{display:block;margin-bottom:5px;}#yiv8921629932 .yiv8921629932attach label a 
{text-decoration:none;}#yiv8921629932 blockquote {margin:0 0 0 
4px;}#yiv8921629932 .yiv8921629932bold 
{font-family:Arial;font-size:13px;font-weight:700;}#yiv8921629932 
.yiv8921629932bold a {text-decoration:none;}#yiv8921629932 dd.yiv8921629932last 
p a {font-family:Verdana;font-weight:700;}#yiv8921629932 dd.yiv8921629932last p 
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv8921629932 
dd.yiv8921629932last p span.yiv8921629932yshortcuts 
{margin-right:0;}#yiv8921629932 div.yiv8921629932attach-table div div a 
{text-decoration:none;}#yiv8921629932 div.yiv8921629932attach-table 
{width:400px;}#yiv8921629932 div.yiv8921629932file-title a, #yiv8921629932 
div.yiv8921629932file-title a:active, #yiv8921629932 
div.yiv8921629932file-title a:hover, #yiv8921629932 div.yiv8921629932file-title 
a:visited {text-decoration:none;}#yiv8921629932 div.yiv8921629932photo-title a, 
#yiv8921629932 div.yiv8921629932photo-title a:active, #yiv8921629932 
div.yiv8921629932photo-title a:hover, #yiv8921629932 
div.yiv8921629932photo-title a:visited {text-decoration:none;}#yiv8921629932 
div#yiv8921629932ygrp-mlmsg #yiv8921629932ygrp-msg p a 
span.yiv8921629932yshortcuts 
{font-family:Verdana;font-size:10px;font-weight:normal;}#yiv8921629932 
.yiv8921629932green {color:#628c2a;}#yiv8921629932 .yiv8921629932MsoNormal 
{margin:0 0 0 0;}#yiv8921629932 o {font-size:0;}#yiv8921629932 
#yiv8921629932photos div