Social Icons

Mostrando postagens com marcador Desenvolvimento. Mostrar todas as postagens
Mostrando postagens com marcador Desenvolvimento. Mostrar todas as postagens

16 de abr. de 2013

Identificando usuários de aplicações WEB com a package DBMS_APPLICATION_INFO


Olá pessoal,

     No artigo de hoje vou mostrar como identificar usuários de aplicações WEB em sessões de BD, através da package DBMS_APPLICATION_INFO. Essa package, ao ser corretamente utilizada (pelos Desenvolvedores), pode ajudar os DBAs (ou usuários de BD com este papel) a identificar através das visões V$SESSION e/ou V$SQLAREA, quem está usando um determinado sistema que se conecta ao Banco de Dados com uma só conta de usuário de BD, mas cujo sistema possui diversos usuários que são gerenciados no nível da aplicação. Este monitoramento pode ajudar a detectar problemas e até mesmo possibilitar no BD uma auditoria mais fina, no nível de usuário da aplicação!
 
      É muito comum vermos aplicações web que se conectam no BD com uma única conta de BD e que possuem gerenciamento de usuários implementado no nível da aplicação. É importante, neste momento, distinguir a diferença entre contas de usuários de BD e contas de usuários da aplicação. Pegando como exemplo um sistema web de comércio eletrônico chamado ECOMMERCE, podemos dizer que contas de usuários da aplicação são as contas das pessoas que desejam comprar produtos no site deste sistema. No sistema ECOMMERCE, cada pessoa (possíveis compradores) tem uma senha e login, que ficam armazenados em uma tabela do Banco de Dados. Conta de usuário de BD, é a conta utilizada pela aplicação para se conectar no BD toda vez que ela tiver que buscar informações no BD, como por exemplo, para validar o login de um usuário ou pesquisar informações de um produto. Para entender melhor esse ambiente, na Figura 1 podemos ver que existem vários usuários de sistema (Fábio, Ana, José etc.) e uma única conta de usuário de BD (ECOMMERCE), que se conecta no BD "PRD".

Figura 1: Relação entre usuários do sistema de comércio eletrônico e o usuário de Banco de Dados

     Na aplicação acima, sem o uso da package DBMS_APPLICATION_INFO, não dá para identificar ou monitorar qual usuário da aplicação executou determinada operação no BD, pois todos os usuários da aplicação se conectam através de uma única conta (ECOMMERCE). Uma solução, neste caso, para identificar ou monitorar dentro do BD Oracle, usuários específicos da aplicação, é usar a stored procedure SET_CLIENT_INFO da package DBMS_APPLICATION_INFO. Seguem abaixo os passos necessários para implementar e monitorar esta solução:

     1- No código da aplicação, após logon do usuário, chame a stored procedure DBMS_APPLICATION_INFO.SET_CLIENT_INFOpassando como valor para o parâmetro CLIENT_INFO, o nome do usuário da aplicação. Exemplo:

          begin
           DBMS_APPLICATION_INFO.SET_CLIENT_INFO (CLIENT_INFO => 'FABIO');
          end;


     2- Execute a consulta abaixo na V$SESSION para verificar quais usuários da aplicação estão conectados no BD. A coluna CLIENT_INFO informará o nome do usuário que foi configurado no passo anterior:

          select   USERNAME, CLIENT_INFO, 
                   TO_CHAR(LOGON_TIME, 'DD/MM/YYYY HH24:MI:SS') AS LOGON_TIME
          from     v$session 
          where    username = 'ECOMMERCE';

         Resultado:
              USERNAME      CLIENT_INFO   LOGON_TIME
              -------------     ----------------  -----------------------
              ECOMMERCE   FABIO                14/04/2013 22:06:52 


           Obs.: É possível também, rastrear as instruções SQL do usuário consultando a visão V$SQLAREA.

   
    Pronto! Vimos que a implantação e monitoramento do procedimento é muito simples e rápida! A package DBMS_APPLICATION_INFO possui ainda, outras procedures que podem ser utilizadas, por exemplo, para permitir o mapeamento do uso de recursos do BD, por módulo de uma aplicação. Para que aqueles que buscam mais informações sobre o assunto, sugiro a leitura do artigo
Rastreando SQL com DBMS_APPLICATION_INFO no Oracle 11g R2.
   

Por hoje é só!

30 de nov. de 2011

Consumindo classes JAVA dentro de um Banco de Dados Oracle


 
Olá pessoal,
    
     No artigo de hoje apresentarei um recurso muito interessante e pouco conhecido no Oracle Database, que permite consumir classes desenvolvidas em JAVA dentro de um Banco de Dados (BD) Oracle, para processar ou interagir com dados dentro do próprio BD.  

15 de ago. de 2011

Exportando dados do MS SQL Server para o Oracle



     Olá pessoal, primeiramente gostaria de informar que este artigo não é de minha autoria. O autor deste artigo é o aluno Diego Melo da turma ORTUN01 do meu treinamento de Tuning de Banco de Dados com ênfase em instruções SQL. Neste artigo a minha participação foi apenas a de revisor de contéudo. Segue abaixo o artigo do Diego Melo (após minhas  alterações e revisões): 
     Primeiramente, gostaria de agradecer ao Fábio Prado pela oportunidade de escrever este artigo, que tem como objetivo principal apresentar um método fácil e eficiente para exportar dados de tabelas do Banco de Dados MS SQL Server para o Banco de Dados (BD) Oracle.
     Utilizaremos para exportação dos dados o Oracle SQL Developer 3.0,  que além de ser free, já é uma ferramenta bem estável e consolidada. Para mais informações, consulte neste blog o post Conhecendo o novo Oracle SQL Developer 3.0. Este artigo não ensinará a utilizar o SQL Developer 3.0, portanto, é necessário que você já tenha familiaridade e conhecimentos prévios nesta ferramenta.
     Para iniciar a exportação, abra o SQL Developer e configure-o para acessar o Banco de Dados SQL Server, seguindo os passos descritos no link: http://djiang.wordpress.com/2007/02/27/using-oracle-sqldeveloper-to-access-sqlserver/. Em seguida, crie uma conexão ao BD SQL Server, como no exemplo da Figura 1 (ver abaixo).

Figura 1 - Conexão com o SQL Server
    
     No exemplo utilizado neste artigo, iremos exportar uma tabela chamada CLIENTES, do banco de dados MASTER do SQL Server. Para exportá-la devemos acessar MASTER >> dbo >> Tabelas >> CLIENTES (ver Figura 2).

Obs.: No SQL Server 1 única instância de Banco de Dados pode ter vários Bancos de Dados, que neste BD são agrupamentos lógicos que representam conjuntos de objetos relacionados e que podem ter configurações customizadas. No Oracle o nível máximo de agrupamento lógico de objetos que podemos ter é um SCHEMA. No SQL Server uma instância pode conter vários Bancos de Dados e cada Banco de Dados pode conter múltiplos schemas.



Figura 2 - Localizando a tabela CLIENTES no SQL Server


     Agora, para executar o passo mais simples do artigo, iremos clicar no botão direito da tabela CLIENTES. Ao aparecer o menu suspenso, clique na opção COPIAR NO ORACLE... (ver Figura 3).


Figura 3 - Iniciando a cópia da tabela CLIENTES


    O SQL Developer irá abrir uma caixa de seleção para permitir selecionar o BD Oracle destino. As opções disponíveis são conexões previamente criadas na ferramenta. Selecione o nome de conexão desejada (neste exemplo a conexão chama-se ORACLE) e selecione a opção Incluir Dados (caso contrário somente a estrutura da tabela será copiada) e clique em Aplicar (ver Figura 4).

Figura 4 - Selecionando opções de cópia da tabela CLIENTES


     Neste momento irá aparecer uma barra de progresso indicando a cópia dos dados no BD Oracle, como no exemplo da Figura 5 (ver abaixo).

Figura 5 - Copiando a tabela CLIENTES

    Quando a cópia dos dados terminar, irá aparecer uma mensagem indicando que ela foi finalizada com sucesso. Clique em OK (ver Figura 6).

Figura 6 - Cópia finalizada

     Na conexão do Oracle, verifique em Tabelas, se CLIENTES aparece na lista de tabelas (ver figura 7).

Figura 7 - Tabela CLIENTES copiada no ORACLE


     Se a tabela CLIENTES aparecer, pronto! De forma simples e rápida conseguimos exportar dados de uma tabela do MS SQL Server para o Oracle!

Um abraço a todos e até a próxima.




3 de abr. de 2011

Conhecendo o novo Oracle SQL Developer 3.0


Olá Pessoal,

      Neste artigo farei apenas alguns comentários sobre algumas das novas características do Oracle SQL Developer 3.0, a nova versão (lançada em 03/2011) da já bastante conhecida e utilizada ferramenta SQL Developer. Para consultar informações gerais sobre o SQL Developer, indico ler o artigo Quickview/Instalação do Oracle SQL Developer 2.1, que foi publicado neste blog em 11/08/2011.

     Na versão 3.0 o SQL Developer está mais completo. Entre as novas características, ele possui agora funcionalidades para efetuar modelagem de dados (Data Modeler) e para administrar bancos de dados, o que poderá agradar bastante aos AD's (Administradores de Dados) e DBA's (Administradores de Bancos de Dados).

     As 3 principais características que eu mais gostei no SQL Developer 3.0 são:

     1- Funcionalidades para administração de bancos de dados:
         Inclusão de funcionalidades para gerenciar a configuração do Bancos de Dados, o Gerenciador de Recursos, Segurança (usuários, roles e profiles) e Armazenamento do Banco de Dados.
          Estas funcionalidades são muito úteis para o dia-a-dia dos DBA's. Para criar usuários, roles e profiles eu utilizava o Console do Enterprise Manager, que é instalado opcionalmente com o cliente do Oracle.

     2- Data Modeler:
          Funcionalidades para projetar e desenvolver modelos de dados.
          A interface gráfica do Data Modeler acoplada ao SQL Developer poderá substituir ferramentas CASE que são utilizadas para esta finalidade.

     3- DBMS Scheduler:
          Funcionalidades gráficas para gerenciar Scheduler Jobs.
          Para criar scheduler jobs eu tenho vários scripts que eu sempre utilizo como base para criar novos  scheduler jobs quando eu preciso. A partir de agora, não precisarei mais destes scripts, pois será mais fácil criar e gerenciar scheduler jobs utilizando a funcionalidade gráfica que foi inclusa no SQL Developer para esta finalidade.


     Segue abaixo uma imagem do SQL Developer 3.0 onde podem ser visualizadas as funcionalidades dos itens acima (ver indicações em vermelho):


     Link para download:
          http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
  
   
COMENTÁRIOS FINAIS:
    Na empresa em que trabalho alguns DBA's utilizam versões desatualizadas de outras ferramentas que não são gratuitas, para administrar Bancos de Dados Oracle, porque o SQL Developer em versões anteriores não possuía funcionalidades para administrar Bancos de Dados. Nesta nova versão muitas funcionalidades para administrar bancos de dados foram inclusas, por isso acho que eles e muitos outros DBA's passarão a partir de agora a utilizar o SQL Developer 3.0. Eu que já usava o SQL Developer, estou mais satisfeito, pois gosto bastante desta ferramenta e agora terei que usar com menos frequência outras ferramentas.
     
  
    
Referências:     
     http://www.oracle.com/technetwork/developer-tools/sql-developer/rel3-featurelist-ea-189447.html

25 de mar. de 2011

Desenvolvendo aplicações web com o Oracle Application Express (Apex)


Pessoal,

     O conteúdo do artigo de hoje faz parte de uma apresentação que fiz para propor o Oracle Application Express (Apex) como ferramenta para desenvolver pequenas e médias aplicações web na empresa em que trabalho.

     Irei apresentar a definição, arquitetura, principais conceitos, componentes e recursos do Apex na versão 3.0.1.  A 3.0.1 não é a última versão do Apex, ainda assim, creio que este artigo servirá como referência para quem está analisando e quer conhecer melhor esta ferramenta (versão 3.0.1 ou superior).

11 de ago. de 2010

Quickview/Instalação do Oracle SQL Developer 2.1


Olá Pessoal,

     Este é o 1º artigo deste blog. Nele farei uma apresentação rápida do Oracle SQL Developer, uma ferramenta criada pela Oracle em 2006, que permite conectar-se em Bancos Dados Oracle, a partir da versão 9i Release 2. Informarei a seguir, as principais características e como instalar esta ferramenta.


     O Oracle SQL Developer, atualmente na versão 2.1, é uma ferramenta gráfica gratuita, que simplifica as atividades de desenvolvimento em Bancos de Dados Oracle, oferecendo alta produtividade e ótimos recursos para quem necessita executar as principais atividades de desenvolvimento em um Banco de Dados Oracle, tais como:
             - Criar/atualizar: stored procedures, funções, packages, tabelas, visões, visões materializadas e outros objetos.
             - Criar e testar instruções DML e DDL em geral.

     O Oracle SQL Developer é uma ótima ferramenta para executar atividades gerais de desenvolvimento em Bancos de Dados Oracle e nela é até possível executar algumas atividade rotineiras de Administração de Bancos de Dados, mas ela não é uma ferramenta direcionada para Administração do Banco de Dados. No Oracle SQL Developer  não é possível gerenciar roles, planos de recursos, profiles e outras atividades/funcionalidades de Administração do Banco de Dados. Para Administração do Banco de Dados indico as seguintes ferramentas da Oracle: Console do Enterprise Manager (instalação opcional com o Oracle Client) e a ferramenta web Enterprise Manager (Database Control ou Grid Control).

    
      Para instalar o SQL Developer 2.1 efetue os seguintes passos:

      PASSO 1: Efetuando download do SQL Developer 2.1:

         Faça o download do SQL Developer 2.1 a partir do link oficial da Oracle em http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html

           
      PASSO 2: Descompacte o SQL Developer 2.1:

         Descompacte o arquivo baixado no download do passo anterior em uma pasta qualquer (Ex.: C:\2.1).

  
      PASSO 3: Finalizando a instalação do SQL Developer 2.1:

         Mova a pasta em que os arquivos foram descompactados no passo anterior (que eu passarei a chamar de pasta 2.1) para uma pasta qualquer de sua preferência.
  
         Nas instalações que eu faço em máquinas com SO Windows, eu gosto de mover a pasta 2.1 para C:\Arquivos de Programas\Oracle\Oracle Sql Developer.

          Para finalizar crie um atalho na sua área de trabalho para o arquivo executável sqldeveloper.exe que encontra-se na pasta 2.1Se a pasta 2.1 foi criada de acordo com as indicações deste artigo, o arquivo sqldeveloper.exe encontra-se no seguinte caminho: C:\Arquivos de Programas\Oracle\Oracle Sql Developer/2.1/sqldeveloper.exe.


COMENTÁRIOS FINAIS:
   Recomendo o uso desta ferramenta a todos os desenvolvedores que trabalham com Banco de Dados Oracle e para os DBA´s Oracle que precisam de maior produtividade e que gostam de uma interface mais amigável que o SQL Plus para realizar determinadas atividades, tais como: atualizar ou extrair DDL de objetos do Banco de Dados.
  

OBSERVAÇÕES  
   Comparando-se a versão 1.5 com a versão 2.1 (última versão do SQL Developer até a data da publicacão deste artigo), na 2.1 o Oracle SQL Developer apresenta dentre as principais melhorias (que eu percebi): melhor performance e recursos visuais mais elaborados, como por exemplo, barra de progresso para acompanhar a execução de um script SQL.     
 

LINKS ÚTEIS

Total de visualizações de página

Seguidores

Meu One Drive (antigo Sky Drive)