1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

ODBC

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

  1. kirchner

    kirchner Membro Participativo Moderador

    marcioricardo,

    O erro ocorreu na hora da conexão ou de executar o comando?

    Se foi na conexão, login/senha inválidos. Se foi no comando, usuário pitoco. Tem que ter permissão para dar permissão para outro usuário, senão seria muito fácil :)
  2. Luigi_Bertoni

    Luigi_Bertoni Sem Pontuação

    Olá pessoal,

    Estou com algumas dúvidas de como proceder...

    Trabalho com Datasul, e preciso restringir acessos para conexão ODBC.

    Pretendo criar 1 usuário para cada setor da empresa no banco de dados, restringindo os acessos as tabelas para cada usuário, para que cada setor tenha acesso apenas ao que lhe cabe ter acesso.

    Verifiquei que há como restringir os acessos aos usuários tabela a tabela, mas como exceção, através do Data Administration do OpenEdge.

    Gostaria de saber se há alguma outra solução, pois essa seria muito trabalhosa e demorada, e ainda pouco viavel, ter de ficar alterando acesso por acesso em todas as tabelas a cada novo usuário.

    Desde ja agradeço.
  3. LFBuozi

    LFBuozi Membro Participativo

    Boa tarde, Sr. Luigi, como vão as coisas na Padtec?rs
    Então, após criar os usuário pelo _admin.r, pelo _datadic.r você vai em view/show hidden tables e verá as tabelas internas que começam com _ e definem toda a estrutura do banco.
    Assim, pelo _edit.r você pode usar o código abaixo:
    Código:
    FOR EACH mgcad._file WHERE _file-name = "item":
        DISP _file-name
            _can-read
            _can-write
            _can-create
            _can-delete.
    END.
    E assim pode fazer um assign seguindo as mesmas regras definidas na tela do _admin.r, mas cuidado, isto vai estragar o acesso dos usuários no Datasul, então deixe o * nas permissões e exclua os usuários ODBC, exemplo:
    Código:
    _can-read = "*, !odbc_financeiro". /* para tirar acesso do usuário de ODBC do financeiro */
  4. kirchner

    kirchner Membro Participativo Moderador

    Luigi,

    O acesso via ODBC (ou JDBC, que é a mesma coisa para o banco) já é restrito por padrão.
    A não ser que você utilize o usuário sysprogress ou qualquer outro usuário com privilégios DBA, o usuário não tem permissões.

    E daí você começa a dar as permissões que precisa, para o usuário e objetos corretos.
    Você concede permissões conectando como DBA e usando GRANT:
    Código:
    GRANT SELECT, INSERT, UPDATE, DELETE ON tabelaFin TO userFin;
    GRANT SELECT ON tabelaConsulta TO userConsulta;
    COMMIT;
  5. elinoia

    elinoia Sem Pontuação

    Olá Amigos, estou com um problema e pesquisei bastante sobre o assunto e ainda não encontrei a solucão. Então, o problema é o seguinte:

    --> Fiz um linked server a partir do MSSQL2K8 via driver ODBC pro banco de dados Progress 10.2A. Tudo certo, consigo rodar alguns comandos e tal. Mas como tenho comandos T-SQL mais complexos que envolvem em torno de 8 tabelas (pois dou carga de informações que é um projeto de BI) o broker rejeita as conexões pois já existem diversas conexões do sysprogress abertas....Em suma, o que estou tentando fazer é de alguma forma quando a transação no SQL terminar que a conexão no progress seja finalizada.

    Pesquisando e conversando com alguns técnicos (o que também acho que é o certo) o próprio windows (driver ODBC) deveria fechar essa conexão após a finalização da transação, mas não é o que está ocorrendo.

    Bem, alguém sabe como resolver isso ou alguma dica pra solucionar este problema que?

    Desde já agradeço a ajuda...

    Forte Abraço,

    Elisandro.
  6. tavio_g

    tavio_g Sem Pontuação

    pessoal, estou precisando fazer uma conexao ODBC de outra aplicação para o progress usando o sysprogress.
    estou usando o access para testar e ele valida a senha e tudo mais, ai qdo quero fazer os links nas tabelas(banco especifico) ele da um erro e nao abre.
    para nao falar que nada abre, as tabelas do sysprogress abre e consigo ver os dados, sem alterar.
    pelo proenv consigo conectar:
    sqlexp -user sysprogress -password sysprogress -db mg2esp -S 15021 -H 192.168.1.201
    isso no antigo servidor.

    no novo dou o mesmo comando mudando a porta e ip e nao funciona.
    há algo que precisa ser feito? algum parametro?

    proenv>sqlexp -user sysprogress -password sysprogress -db mgesp -S 15010 -H 192.
    168.1.18
    OpenEdge Release 10.2B as of Mon Dec 14 17:02:01 EST 2009
    Conectando usußrio "sysprogress" para URL "jdbc:datadirect:eek:penedge://192.168.1.
    18:15010;databaseName=mgesp"... (8920)
    Erro: [DataDirect][OpenEdge JDBC Driver]OE Broker rejects the connection.. (8933
    )
    Veja os arquivos "C:\dlc101a\WRK\sqlexp.log" e "C:\dlc101a\WRK\SQLExplorer.excep
    tions" para mais informaþ§es. (8950)
    e o arquivo diz o seguinte:
    [27/06/12 16:22:24] [3] [SQLExplorer] O arquivo local C:\dlc101a\WRK\SQLExplorer.properties será usado. (SQLMsg036)
    [27/06/12 16:22:24] [3] [SQLExplorer] Setting Connect to jdbc:datadirect:eek:penedge://192.168.1.18:15010;databaseName=mgesp
    [27/06/12 16:22:24] [3] [SQLExplorer] === SQLExplorer starting. ===
    [27/06/12 16:22:24] [3] [SQLExplorer] ### ARGS: -user sysprogress -password xxx -db mgesp -S 15010 -H 192.168.1.18
    [27/06/12 16:22:24] [3] [SQLExplorer] Conectando usuário "sysprogress" para URL "jdbc:datadirect:eek:penedge://192.168.1.18:15010;databaseName=mgesp"... (8920)
    [27/06/12 16:22:24] [3] [SQLExplorer] Loading JDBC driver com.ddtek.jdbc.openedge.OpenEdgeDriver.
    [27/06/12 16:22:24] [0] [*UnexpectedError*] * recorded as exception #7 in file C:\dlc101a\WRK\SQLExplorer.exceptions.
    [27/06/12 16:22:24] [3] [SQLExplorer] === SQLExplorer ending. ===

    ====== Start exception logging == "C:\dlc101a\WRK\SQLExplorer.exceptions" opened == Wed Jun 27 16:22:24 BRT 2012 ======


    **** 7 ****

    Exception at Wed Jun 27 16:22:24 BRT 2012: java.sql.SQLException
    Message (throw): ### Connect stack trace. ###
    Message (excp): [DataDirect][OpenEdge JDBC Driver]OE Broker rejects the connection.
    Stack Trace:
    java.sql.SQLException: [DataDirect][OpenEdge JDBC Driver]OE Broker rejects the connection.
    at com.ddtek.jdbc.openedgebase.BaseExceptions.createSQLException(Unknown Source)
    at com.ddtek.jdbc.openedgebase.BaseExceptions.createException(Unknown Source)
    at com.ddtek.jdbc.openedgebase.BaseExceptions.getException(Unknown Source)
    at com.ddtek.jdbc.openedge.client.OpenEdgeClientLoginRequest.preOpenConnection(Unknown Source)
    at com.ddtek.jdbc.openedge.client.OpenEdgeClientLoginRequest.preSubmitRequest(Unknown Source)
    at com.ddtek.jdbc.openedge.OpenEdgeImplConnection.open(Unknown Source)
    at com.ddtek.jdbc.openedgebase.BaseConnection.doConnect(Unknown Source)
    at com.ddtek.jdbc.openedgebase.BaseConnection.connect(Unknown Source)
    at com.ddtek.jdbc.openedgebase.BaseConnection.setupImplConnection(Unknown Source)
    at com.ddtek.jdbc.openedgebase.BaseConnection.open(Unknown Source)
    at com.ddtek.jdbc.openedgebase.BaseDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(DriverManager.java:525)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at com.progress.sql.explorer.SQLConnectServer.call(SQLConnectServer.java:41)
    at com.progress.common.rmiregistry.TryIt.run(TryIt.java:186)

Compartilhe esta Página