(解決策)テーブルを作成しようとしたらORA-01950エラーで権限が無いと怒られたとき

dba権限が無いユーザーでOracleデータベースにテーブルを作成しようとしたところ、『SQLエラー: ORA-01950: 表領域’HOGEDATA’に対する権限がありません』といったエラーが表示されてテーブルが作成できませんでした。

SQLエラー: ORA-01950: 表領域'HOGEDATA'に対する権限がありません
01950. 00000 -  "no privileges on tablespace '%s'"
*Cause:    User does not have privileges to allocate an extent in the
           specified tablespace.
*Action:   Grant the user the appropriate system privileges or grant the user
           space resource on the tablespace.

デフォルト表領域なのになんでや…。

仕方がないので alter user で表領域への無制限の権限を付与します。

alter user TESTUSER quota unlimited on HOGEDATA;

これで完了。無事にテーブルが作成できるようになりました。

どうして権限が無くなったのか

ちなみにどうしてデフォルト表領域なのに権限が無くなったのかな‥と思いよくよく確認してみたところ、どうやらdba権限を剥奪した時に権限が消えてしまったようでした。オーマイガ。

ユーザーを作成した直後は UNLIMITED TABLESPACE 権限が付与されており、表領域への無制限の権限が付与されていました。これはdba権限の有り無し関係なく。
2015-07-07_10h47_16
ところが、ユーザー作成後に REVOKE dba でdba権限を剥奪したところ、権限が消滅‥。
2015-07-07_10h48_16
これにより表領域の利用権限が消えてしまったようです。
ぐぬぬ。

コメントを残す

メールアドレスが公開されることはありません。