お世話になります。
現在XE2環境でオラクル接続アプリを作成中です。
Dbxpressを利用して、通常の接続は可能なのですが、SYSDBAやSYSOPERなどの
特権を指定する方法がわかりません。私が見る限り該当するプロパティも見当たりませんでした。
指定する方法はありますでしょうか。
ご存じの方がいらっしゃいましたら、ご教示いただけますと
幸いです。
宜しくお願い致します。
オラクル接続に特権を持ったIDで接続すればいいのでは?
返信ありがとうございます。
少し書き方が悪かったようで、申し訳ありません。
具体的には、SQLPLUSでSYSユーザーでログインするとき、「AS SYSDBA」を指定しないと権限エラーとなりますが、
DBEXPRESSでSYSでログインする場合、この「AS SYSDBA」の部分をどのように指定すればよいのか、
といった内容です。分かりにくい表現で申し訳ありませんでした。引き続き、よろしくお願いいたします。
古いSQLPLUSしか知りませんが、OracleにLoginするのに、UserNameとPasswordを入れれば接続できませんか?
dbExpressも同様です。
TSQLConnectionのUserNameとPasswordを設定すれば接続できます。
UserがSYSDBAなら全ての権限が使えたと思います。
返信ありがとうございます。DBEXPRESSでSYSでログインを試みると、下記のメッセージが出力されます。
---------------------------エラー---------------------------
ORA-28009: connection as SYS should be as SYSDBA or SYSOPER.
---------------------------OK ---------------------------
表現がわかりにくくて申し訳ないのですが、今回DBEXPRESSで行ないたいのは、
「特権ユーザーでログインする」ことではなく、「特権を指定してログインする」ことです。
SQLPLUSでのログイン時に指定する「as SYSDBA」や、「as SYSOPER」のような
選択をする必要があり、DBEXPRESSでも同様の指定ができないかと考えております。
接続パラメータには指定する場所が無いようですので、何か別方法があればと思い、質問させていただいた次第です。
よろしくお願いいたします。
気になって調べました。
Stack over flowにそのものズバリが回答されています。
Connection.Params.Append('DBA Privilege=SYSDBA');
nobukoshi802さん
返信ありがとうございます。
実はそのページは最初に見つけて、試してみました。
結果は、私の環境ではうまくいかなかったです。
ソース上で設定するパターンと、SQLConnectionコントロールのパラメータに
追加する方法を試しましたが、どちらもダメでした。
追加パラメータを読み取っていないのか、それともパラメータ名が違うのか・・・
ちなみに、nobukoshi802さんは、この方法でうまく接続できましたか?
もしよろしければ、詳細な設定手順等教えていただけますと幸いです。
よろしくお願いいたします。
その方法でダメでしたか。
すみませんでした。
時分の場合、Delphi7 Pro+ODAを使用しています。
http://www.allroundautomations.com/doa.html
会社がビンポーなんで、Pro以上を購入していません。
後は、Oracle Clientは32bitをインストールしていますか?
OCIが64bitだと、Call出来ないかもしれませんね。
すみません、自分の漢字が間違っていますね。
nobukoshi802さん
返信ありがとうございます。
Oracleは32bitです。sysユーザーでのログイン以外は問題なくできているので、
OCIに関しては問題ないと思います。
教えていただいたDOAをちょっと試してみましたが、私のXE2の環境では文字化けが
発生してしまいます。特権指定のプロパティも見当たらないですし、
今回の要件には当てはまらないかもしれません・・・
DOAで# 日本語環境で使う場合の注意点:
OracleSession.BytesPerCharacterを bc2BytesあるいはbcAutoDetect にしてください。
最新情報が英語なので、資料を読み解くだけでも大変です。
単純な質問ですが、SYSTEMユーザで、SYSDBAにしていませんか?
SYSTEMなら、SYSOPER
SYSなら、SYSDBAです。
nobukoshi802さん
>単純な質問ですが、SYSTEMユーザで、SYSDBAにしていませんか?
その辺は問題ないと思います。SQLPLUSで「AS SYSDBA」を指定すれば
SYSでログインできますので。
DBEXPRESSでも指定さえできれば、ログインできると思うんですけれど・・・
古い情報ですが、
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');
ブランクの箇所をアンダースコアにしてもダメなら、お手上げです。
サポートに聞いた方が早いですね。
nobukoshi802さん
情報ありがとうございます。
DBEXPRESSでは無理なんでしょうかね・・・
他のツールを使うことも含めてもう少しこちらでも調べてみます。
いろいろと教えてくださいましてありがとうございました。
A5:SQL Mk-2は、Delphi製で
多分、dbExpressで接続しています。
http://www.wind.sannet.ne.jp/m_matsu/developer/a5m2/
ツイート | ![]() |