CからIngresを接続する

ingres

私は、Windows上で動作するIngresとCアプリケーションの両方で、OpenAPIを介してIngresが提供するdecrybに接続する必要があります。 私がしたこと:

  1. Ingresネットワークユーティリティで “usernode”という名前の “ノード”を作成しました。

  2. Ingresのインストール( “user”、password、 “user”という名前)とWindowsユーザー管理(同じクレジット)にユーザーアカウントを作成

  3. データベース内のユーザーに必要な特権を付与しました。

  4. Cコードで私はIIAPI_CONNPARM構造体でIIapi_connect()関数を呼び出しました。 使用されるメンバ:co_target = “usernode :: demodb”、co_username = “user”、co_password = “user”

しかしIIapi_connect()呼び出しはエラーを返します。

msgstr “ユーザーがデータベース名の一部としてvnodeを指定しました(vnode

dbname)が、そのvnodeの接続情報がありません。 NETUTILを使用してvnodeの接続情報を入力してください。

誰かが奇妙な概念「ノード」である何かを知っていますか?

正常に接続するために必要な(データベース管理および関数パラメーターの受け渡しにおける)最小ステップは何ですか?

  2  0


ベストアンサー

ユーザーIDがサーバーに追加されていないため、次のエラーが発生します。

_
msgstr “ユーザーがデータベース名の一部としてvnodeを指定しました(vnode :: dbname)が、そのvnodeの接続情報がありません。 NETUTILを使用してvnodeの接続情報を入力してください。
_

渡されるユーザーIDは仮想ノード(別名vnode)定義で定義されており、サーバー上のユーザーリストに追加する必要があるのはそのユーザーです。 以下はコマンドラインからユーザーを追加し、USERNAMEを追加したいユーザー名に変更します。

Windowsの場合

echo "create user USERNAME\g" | sql iidbdb

UNIX / Linux / OS Xの場合

sql iidbdb <

あるいは、_co_target_がすべての接続情報(ユーザーの詳細を含む)を指定するように、動的vノードを接続に使用することもできます。

@server,protocol,listen_address[user,password]::database

例えば

@localhost,tcp_ip,II[ingres,secret]::iidbdb

あなたがIngresのためのOpenAPIコードの実用的な例を見たいならば、Ingres PECL拡張子を見てください。

2


  1. あなたはOSでアカウントWITHパスワードを作成する必要があります。

  2. OSと同じように、同じユーザー名とパスワードでノードを作成する必要があります。 たとえば、 “Connection Information”ブロックの “Remote Node”パラメータを “localhost”(!)に割り当てることを忘れないでください。 それは実アドレスです(!)。 「Listen Address」パラメータは内部的にポートに変換されます。 「II」のままにしてください。

  3. VDBAでは、おそらく、管理者ノード内に「ユーザー」アカウントを作成しました。 そのため、そのアカウントにはパスワードを設定しないでください(!)。 既存のパスワードチェックボックス「古いパスワードを削除」を入力して削除できます。

  4. 承認のためには、通常はプロセスの認証情報を使用する必要があります。

  5. そのため、user :: demodbパラメータのみco_target = “usernode :: demodb”のままにしてください。

質問は?

1


タイトルとURLをコピーしました