dbxpressでオラクルの特権を指定して接続するには


dia  2012-05-23 20:59:43  No: 42276

お世話になります。
現在XE2環境でオラクル接続アプリを作成中です。
Dbxpressを利用して、通常の接続は可能なのですが、SYSDBAやSYSOPERなどの
特権を指定する方法がわかりません。私が見る限り該当するプロパティも見当たりませんでした。
指定する方法はありますでしょうか。
ご存じの方がいらっしゃいましたら、ご教示いただけますと
幸いです。
宜しくお願い致します。


HOta  2012-05-24 18:11:25  No: 42277

オラクル接続に特権を持ったIDで接続すればいいのでは?


dia  2012-05-24 19:14:57  No: 42278

返信ありがとうございます。
 少し書き方が悪かったようで、申し訳ありません。 
具体的には、SQLPLUSでSYSユーザーでログインするとき、「AS SYSDBA」を指定しないと権限エラーとなりますが、
DBEXPRESSでSYSでログインする場合、この「AS SYSDBA」の部分をどのように指定すればよいのか、
といった内容です。分かりにくい表現で申し訳ありませんでした。引き続き、よろしくお願いいたします。


HOta  2012-05-25 06:20:53  No: 42279

古いSQLPLUSしか知りませんが、OracleにLoginするのに、UserNameとPasswordを入れれば接続できませんか?
dbExpressも同様です。
TSQLConnectionのUserNameとPasswordを設定すれば接続できます。
UserがSYSDBAなら全ての権限が使えたと思います。


dia  2012-05-26 01:29:38  No: 42280

返信ありがとうございます。DBEXPRESSでSYSでログインを試みると、下記のメッセージが出力されます。 
 ---------------------------エラー---------------------------
ORA-28009: connection as SYS should be as SYSDBA or SYSOPER.
---------------------------OK   --------------------------- 
表現がわかりにくくて申し訳ないのですが、今回DBEXPRESSで行ないたいのは、
「特権ユーザーでログインする」ことではなく、「特権を指定してログインする」ことです。
 SQLPLUSでのログイン時に指定する「as SYSDBA」や、「as SYSOPER」のような
選択をする必要があり、DBEXPRESSでも同様の指定ができないかと考えております。

接続パラメータには指定する場所が無いようですので、何か別方法があればと思い、質問させていただいた次第です。
 よろしくお願いいたします。


nobukoshi802  2012-05-28 21:34:52  No: 42281

気になって調べました。

http://stackoverflow.com/questions/826044/how-can-i-connect-to-an-oracle-database-as-sysdba-using-dbexpress

Stack over flowにそのものズバリが回答されています。

Connection.Params.Append('DBA Privilege=SYSDBA');


dia  2012-05-28 23:31:07  No: 42282

nobukoshi802さん

返信ありがとうございます。

実はそのページは最初に見つけて、試してみました。
結果は、私の環境ではうまくいかなかったです。
ソース上で設定するパターンと、SQLConnectionコントロールのパラメータに
追加する方法を試しましたが、どちらもダメでした。
追加パラメータを読み取っていないのか、それともパラメータ名が違うのか・・・
ちなみに、nobukoshi802さんは、この方法でうまく接続できましたか?
もしよろしければ、詳細な設定手順等教えていただけますと幸いです。

よろしくお願いいたします。


nobukoshi802  2012-05-29 21:26:05  No: 42283

その方法でダメでしたか。
すみませんでした。
時分の場合、Delphi7 Pro+ODAを使用しています。
http://www.allroundautomations.com/doa.html

会社がビンポーなんで、Pro以上を購入していません。
後は、Oracle Clientは32bitをインストールしていますか?
OCIが64bitだと、Call出来ないかもしれませんね。


nobukoshi802  2012-05-29 21:27:02  No: 42284

すみません、自分の漢字が間違っていますね。


dia  2012-05-30 00:10:38  No: 42285

nobukoshi802さん

返信ありがとうございます。

Oracleは32bitです。sysユーザーでのログイン以外は問題なくできているので、
OCIに関しては問題ないと思います。
教えていただいたDOAをちょっと試してみましたが、私のXE2の環境では文字化けが
発生してしまいます。特権指定のプロパティも見当たらないですし、
今回の要件には当てはまらないかもしれません・・・


nobukoshi802  2012-05-30 19:23:08  No: 42286

DOAで# 日本語環境で使う場合の注意点:
OracleSession.BytesPerCharacterを bc2BytesあるいはbcAutoDetect にしてください。

最新情報が英語なので、資料を読み解くだけでも大変です。


nobukoshi802  2012-05-30 19:31:26  No: 42287

単純な質問ですが、SYSTEMユーザで、SYSDBAにしていませんか?
SYSTEMなら、SYSOPER
SYSなら、SYSDBAです。


dia  2012-05-30 22:30:41  No: 42288

nobukoshi802さん

>単純な質問ですが、SYSTEMユーザで、SYSDBAにしていませんか?

その辺は問題ないと思います。SQLPLUSで「AS SYSDBA」を指定すれば
SYSでログインできますので。
DBEXPRESSでも指定さえできれば、ログインできると思うんですけれど・・・


nobukoshi802  2012-05-31 05:20:30  No: 42289

古い情報ですが、
http://www.delphigroups.info/2/6/179489.html

NCOCI8 - Freeware Delphi to Oracle8i direct access
da-softのNCOCI8の作者が、Delphi7のdbexpressは対応していないので
サードパーティを使えって言っていますね。

エンバカのWiki情報にも、TSQL.Connectで記述が無いですね。

ダメ元で、

Connection.Params.Append('DBA_Privilege=SYSDBA');
ブランクの箇所をアンダースコアにしてもダメなら、お手上げです。
サポートに聞いた方が早いですね。


dia  2012-06-01 23:59:39  No: 42290

nobukoshi802さん
情報ありがとうございます。

DBEXPRESSでは無理なんでしょうかね・・・
他のツールを使うことも含めてもう少しこちらでも調べてみます。
いろいろと教えてくださいましてありがとうございました。


nobukoshi802  2012-06-05 22:48:57  No: 42291

A5:SQL Mk-2は、Delphi製で
多分、dbExpressで接続しています。
http://www.wind.sannet.ne.jp/m_matsu/developer/a5m2/


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加