• ベストアンサー

シーケンス取得について

AスキーマとBスキーマがあり AにはSというシーケンスが作成されて、GRANTでBに権限付与されています。 BのUSER_SEQUENCESにはもちろん存在しないため、 SELECT MAX_VALUE FROM USER_SEQUENCES WHERE SEQUENCE_NAME でMAX_VALUEの取得でエラーになります。 これを回避する方法ってありますでしょうか?? もしくはBのUSER_SEQUENCES に追加する方法がありますでしょうか? どなたかお願い致します。

  • Oracle
  • 回答数1
  • ありがとう数12

質問者が選んだベストアンサー

  • ベストアンサー
  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.1

こんにちわ。 > これを回避する方法ってありますでしょうか?? 他スキーマが所有者なのでuser_sequences ではなく、all_sequences を使って下さい。

tresure7878
質問者

お礼

どうもありがとうございました。 勉強になりました。

関連するQ&A

  • シーケンスの取得の権限付与

    権限付与について質問です。 他ユーザーが自分が作成したシーケンスを取得できるようにしたいのですが、どう権限付与を行なえば良いかわかりません。 そもそも他のユーザーのシーケンスを取得することは可能なんでしょうか。

  • 参照権限の付与方法

    環境は、Windows Server 2003、Oracle 9.2.0.6.0 になります。 userAが持っている表、ビューの参照権限を userBに与えようと思います。 userAでログインし、以下のSQLを発行したところ、  grant select any table to userB; 以下のエラーが出ました。  ORA-01031:権限が不足しています。 これは、userAに権限を付与する権限がないのだと 理解しました。 ■疑問1 この現象は、userAに権限を付与する権限がない との理解で正しいでしょうか? また、userAに「権限を付与する権限」を付与するには どのようなSQLを発行すればよいでしょうか? ■疑問2 systemユーザでログインし、userBに権限を与える方法も あると思います。 その場合、以下のSQL文になると思います。  grant select on userA.testtable to userB この場合、表、ビュー1つずつ与える必要がありますが、  grant select any table to userB; のように、全ての表、ビューを参照権限を与えることはできるでしょうか?

  • MySQLでシーケンス番号の前後数を知りたい

    user_table ---------------------------- id | group_id | sequence| name | ---------------------------- 1 | 1 | 1 | emi | ---------------------------- 2 | 1 | 2 | shun | ---------------------------- 3 | 2 | 1 | yumi | ---------------------------- 4 | 1 | 5 | jo | … group_idごとにシーケンス番号(グループ内のユニーク番号)を振っています。 shun(group_id=1,sequence=2)のページでシーケンス番号の前後を取りたいのですがどうすればいいでしょうか? すでに辞めたユーザもいるためシーケンス番号は必ず連続しているとは限らず、抜けている場合もあります。 例として、shun(group_id=1,sequence=2)の前後を取る場合はemiとjoのシーケンス番号を取得したいのです。 下記で出来ましたがサブクエリなしでもできそうなのとあまりきれいでないのでご教示お願いいたします。 select (select min(sequence) from t_files where album_id=1 and sequence>2) next,( select min(sequence) prev from t_files where album_id=1 and sequence<2) prev;

    • ベストアンサー
    • MySQL
  • 異なるスキーマのビューを元にしたマテリアライズドビューの作成

    「所有していないマテリアライズド・ビューのマスター表にアクセスする場合は、各表に対するSELECTオブジェクト権限またはSELECT ANY TABLEシステム権限が必要です。」 ということから、selectオブジェクト権限をつけた『ビュー』をもとに、マテリアライズドビューの作成はできないのでしょうか? 例)Aスキーマが所有するTESTビュー表をもとに、Bスキーマでマテリアライズドビューを作成する。 create materialized view mview as select * from A.TESTビュー; create materialized view 権限は付与しました。 A.TESTビューに対するSELECTオブジェクト権限は付与しました。 結果としては、表またはビューがありません。とエラーがでます。 しかし、Aスキーマが所有するテーブルに対しては、問題なくマテリアライズドビューの作成はできます。 異なるスキーマの『ビュー』を元にマテリアライズドビューの作成は できない。といった記述はないのですが、実際に作成ができません。 ご教授ください。

  • SQL(Sequence)の問題が分かりません。

    こんにちは。 SQLの学習をしているのですが、Sequenceの問題で解き方が分からないため質問させて頂きます。 問題は以下となります。 A sequence was created with the DDL statement shown below: CREATE SEQUENCE my_seq START WITH 5 INCREMENT BY 5 CACHE 5 User1 successfully executes the following statements in Connection1: VALUES NEXT VALUE FOR my_seq INTO :con1hvar VALUES NEXT VALUE FOR my_seq INTO :con1hvar User2 successfully executes the following statement in Connection2: VALUES NEXT VALUE FOR my_seq INTO :con2hvar After User1 & User2 are finished, User3 executes the following statement in Connection3: SELECT NEXT VALUE FOR my_seq FROM sysibm.sysdummy1 Which value will be returned by the query? A. 20 B. 25 C. 50 D. 55 Answer: D 上記の解き方をご存じの方はご回答お願い致します。

  • oracleの順序のexp/impにつて

    oracleの順序のEXP/IMPについてです。 oracle 11gでlinuxなのですが、別サーバ上にあるAというスキーマ(例:hon1)の シーケンスを、別サーバ上にあるBというスキーマ(例:dev1)に、expdp/impdp コマンドで、sequenceのみを、export/importをしようとしています。 expdpコマンドでsequenceのみはexportできたのですが、impdpコマンドで、sequence をimportするとエラーがでて失敗します。 SEQUENCEの処理はできるのですが、OBJECT_GRANTの作成でエラーで失敗します。 別環境の別スキーマに入れようとしているので、権限の作成で失敗するのは当たり前 かもしれませんが。 回避する方法、grantを実行しない方法はないのでしょうか。 また、表のimportみたいに、記述したテーブルのみをimportするような、ターゲットの sequenceのみをimportするような記述はできないのでしょうか。 宜しくお願い致します。 環境:oracle 11g、Linux

  • Access(Jet4.0)SQLでGRANTが使用できない

    AccessでGrantを使った以下のようなSQLクエリを実行し、 特定のユーザに読み取り権限の付与・削除を 行おうとしているのですが、正常に実行されません。    grant select on [DbName] to [UserName] エラーの内容としては 『SQLステートメントが正しくありません。 'Delete'、'Insert'、'プロシージャー'、'Select'または 'update'を使用してください』 とのメッセージが表示されます。 管理者権限でログインしてユーザー権限のユーザを 指定して処理を行っています。 構文も間違っていないと思うので、原因がつかめず困惑しています。 心当たり、間違い等、可能性レベルでも結構ですので ご教授・ご指摘いただけますようお願いいたします。

  • DBリンク経由の参照について

    サーバ【A】のスキーマ【あ】にDB【テーブル1】があります。 サーバ【A】のスキーマ【い】に、【あ】からセレクト権限を与えた所、【い】から【テーブル1】を参照できるようになりました。 次に、 サーバ【B】からサーバ【A】にDBLINKをはりました。 (tnspingで接続されているのを確認済)。 これで、 サーバ【B】のスキーマ【あ】からDBLINK経由で【テーブル1】を参照できるようになりました。 しかし、サーバ【B】のスキーマ【い】から【テーブル1】が参照できません。 私としては、スキーマ同士の権限を与え、DBLINKが正しく繋がっているので、参照できるのでは??と思うのですが、 何度やっても、 --------------------------------------------------------------- ORA-04043: オブジェクト"【あ】"."【テーブル1】"は存在しません。 --------------------------------------------------------------- が表示されてしまいます。 原因として何が考えられるでしょうか…?? 説明不足だったらすみません。 何か考えられる可能性があったら教えて下さい。

  • Oracle 10g 権限付与

    はじめまして Oracle10gで、今度新しいデータベースが始動します。 問題なのが、管理者向けに発行するIDと、一般ユーザ向けに発行するIDの違いです。 管理者には参照・更新、参照権限付与・更新権限付与。 一般ユーザには参照、更新(それぞれテーブルごとに申請を出してもらう)、管理者から権限をもらう。 という仕組みになりました。 月に3度から4度、新しいテーブルができます。そのたびにgrantオプション付で管理者に権限付与するのも大変です。 select anyでは、テーブルごとの切り分けができません。 Oracle10gには詳しくないのですが(そもそもOracleにそんなに詳しくないのですが)、何かOracle10gの新機能など、使えそうなものはないでしょうか。 よろしくお願いいたします。

  • oracleユーザーの権限確認方法について

    お世話になります。 例えばですが、oracleでsysユーザからaaaというユーザーを作成し、 selectやcreateなどの権限を付与したとします。 そこでaaaユーザーでログインして、aaaユーザーが行うことのできる 権限を調べたいと思ったのですが、いまいちわかりません…。 (1)select * from session_privs; ではcreate系の権限は表示されますが、select系(DML文)の権限が何を付与されているか表示されませんでした。 (2)select * from user_sys_privs; でもselect等の権限の確認はできませんでした。 (3)select * from user_tab_privs; では一件も出てきませんでした。 上記3つは何か間違えているのでしょうか? それとも他にも何か調べ方があるのでしょうか? よろしくお願い致します。