ODBC

Discussão em 'Progress 4GL' iniciado por rodhentz, Janeiro 19, 2010.

  1. rodhentz

    rodhentz Sem Pontuação

    Fala pessoal!

    Vamos se alguem pode me ajudar.

    preciso fazer uma integracao com o Progress. Minha solucao vai usar ODBC, pois bem. no caso progress openedge 10.1B driver.

    Eu consigo fazer o acesso ao banco na porta especificado do servico , com usuario e senha, sem problema, mas quando faco um siples "select * from pub.customer" me da erro de acesso ao banco.

    ja procurei por tudo na net e nao consigo dar as permicoes para o usuario que criei.

    Alguem ja fez isso? pode me dar uma ajuda?

    Eu criei um banco do zero pelo Database Administration e coloquei a base de demonstracao sports. Criei um usuario chamado 'super'. depois foi o erro que estou me deparando acima

    qq ajuda é bem vinda, valeu pessoal
  2. Cobra.cne

    Cobra.cne Equipe de Suporte Moderador

    Olá,

    utilize a informação do suporte Progress abaixo para auxiliar:
    http://progress.atgnow.com/esprogre...=5002&docProp=$solution_id&docPropValue=19170
    Código:
    D: 19170
    Title: "How to grant privileges to SQL-92 users from SQL explorer?"
    Created: 10/01/1999	Last Modified: 10/13/2009
    Status: Verified
    
    
    Goals:  
    How to grant privileges to SQL-92 users from SQL explorer?
    Steps on how to grant privileges to SQL-92 users?
    How to verify SQL-92 users privileges
    
    
    Facts:  
    Progress 9.x
    Progress SQL92
    All Supported Operating Systems
    
    
    Fixes:  
    
    For SQL-92 users, if privileges are not granted properly, you can receive the error:
    
    [MERANT][ODBC PROGRESS driver][PROGRESS]Access denied
    (Authorization failed)
    
    after trying to connect with ODBC to a Progress Database with a user_ID
    
    
    Firstly, you have to use GRANT command to give any kind of privileges to users (DBA,RESOURCE, SELECT, INSERT, etc..).
    
    But there is a detail not clearly stated: make sure you have the "Auto commit transactions" option in the "Connection Control" window (View menu->Options) checked, otherwise you must run the COMMIT command after granting the users. It's not necessary to run it right after the grant command, but before closing the database connection. Otherwise, when you connect to the database again, you will figure out that the privileges are not set.
    
    Below is an example how to use it:
    
    GRANT DBA TO myuser;
    GRANT SELECT ON customer TO myuser2;
    COMMIT;
    
    To make sure that the commands were properly executed, connect again to the database using SQL Explorer Tool and look at:
    
    -SYSDBAUTH view from SYSPROGRESS schema if you ran grant DBA/RESOURCE:
    
    SELECT * FROM sysprogress.sysdbauth;
    
    -SYSTABAUTH view from SYSPROGRESS schema to specific table permissions. For example:
    
    SELECT * FROM sysprogress.systabauth WHERE grantee = 'myuser2';
    
    
    Notes:  
    References To Written Documentation:
    - SQL-92 Guide and Reference
    Chapter 2 - SQL-92 Language Elements
  3. rodhentz

    rodhentz Sem Pontuação

    Estou utilizando o progress 10.1B e esta ferramenta, o SQl Explorer Tools, nao esta no menu do OpenEdge. A unica coisa que tem é um .bat na pasta bin chamado sqlexp.bat . mas tb nao sei como fazer isso utilizando este cara ai.

    alguma outra ideia?

    obrigado pela resposta.
  4. Cobra.cne

    Cobra.cne Equipe de Suporte Moderador

    Desculpe,

    O que acontece é o seguinte, quando se cria um usuário pelo Data Administration ele esta habilitando este usuário somente para acesso para conexão nativa Progress, para que através de uma conexão ODBC o usuário tenha permissão é necessário dar permissão para SQL. Com exceção do usuário sysprogress que já tem direito de SQL porém sua senha só é atribuída quando criado no banco.

    Tenta fazer assim, cria um usuário no Data Administration com o nome de sysprogress e define uma senha, entra na sua conexão ODBC com este usuário e senha utilizando sua ferramenta e executa do código:

    Código:
    GRANT DBA TO super;
    COMMIT;
    Teoricamente seu usuário super tem toda permissão no seu banco, ou seja, é o DBA. Agora se você for querer atribuir direitos específicos em tabelas específicas, ai tem que pesquisar as opções de Grant.

    []'s
  5. rodhentz

    rodhentz Sem Pontuação

    Deu certo. Tive de entrar no sqlexp.bat :

    sqlexp -db sports -S 20500 , no caso o meu banco e a porta que estava o serviço

    depois rodei os comandos que me enviou:

    grant DBA to super;

    e depois:

    commit;

    a''i rodei minha aplicacao e consegui ler os dados.

    obrigado pelo help.
  6. marcioricardo

    marcioricardo Membro Participativo

    Olá, estou tendo problemas com a minha conexão ODBC também, fui tentar o que você fez mas deu pau no acesso ao sqlexp, deu Access Denied. Pode me ajudar?

Compartilhe esta Página