[oracle_br] Re:Re: PROXY USER by jlchiappa
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
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