Oracle 質問総合スレ3at DB
Oracle 質問総合スレ3 - 暇つぶし2ch17:NAME IS NULL
08/10/21 20:33:45 sw348KkR
 10gに詳しい人に質問です。

 sysやsystemで、ユーザーにロールで権限を与えるときに不思議なこと
がおきます。
 RESOURCEロールに「CREATE TABLE」の記述がありますが、RESOURCEロール
だけでは、SQLPLUSなどででユーザーがテーブルを作ろうとしても、エラー
になります。
 この点を調べても見ると、RESOURCEロールの「CREATE TABLE」には、
「表領域」の権限しかないからとの事でした(後述しますが、表領域しか
ない時点で「TABLESPACE」の表記じゃないのがおかしく思えます)。

次に、RESOURCEロールをはずした状態で、「GRANT CREATE TABLE」で、
単独で権限を与えてから、ユーザーでテーブルをつくろうとすると、
またもやエラ-になりました。
 この点も調べてみると、単独の「GRANT CREATE TABLE」には、「表作
成」の権限はあるが、「表領域」の権限がないからとの事でした。

 つまり、
                    表領域  表作成
RESOURCEロールの中の「CREATE TABLE」   ○    ×
単独の「CREATE TABLE」          ×    ○

ということになるようです。

 そこで、RESOURCEロールを与えた後で,「CREATE TABLE」を与えてみると
ユーザーでテーブルをつくることができました。
 テーブル作成ができた事で結果オーライといきたいことですが、ユーザー
権限を付け加えるときに、Object Browserで権限の表示を観察してみたら
とても不思議なことがおこったのです。

 まず、最初にユーザーにRESOURCEロールを付与します。この時の権限の
一覧には「CREATE TABLE」の他に「TRIGGER」などいくつかの権限が表記され
ていました。
 次に、単独の「CREATE TABLE」の権限を与えてみてから、Object Browserで
権限の表示一覧を見ると

「CREATE TABLE」
「TABLESPACE」

の二つしか載っていないのです。

 ここで頭が「???」となりました。

①RESOURCEロールの「CREATE TABLE」には表領域しかないのに
「TABLESPACE」と表記しないのか?

②RESOURCEロールに単独の「CREATE TABLE」を新たに付与すると
なぜ今まで出てこなかった「TABLESPACE」が出てくるのか?

③RESOURCEロールについていた他の権限(TRIGGERなど)は、なんで
消えてしまうのか?

 この①②③について、詳しい方、ご教授くださいませ。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch