dポイントプレゼントキャンペーン実施中!

Oracle 10g 他スキーマの参照権限をはずす方法

ユーザを2個作成したら、ユーザ名と同一のスキーマが2個できました。
デフォルトで他スキーマの参照権限がついているようです。
この権限をはずす事はできますでしょうか。
以下のSQLでははずせませんでした。

REVOKE ALL ON YAMADA.* TO TANALA;

A 回答 (4件)

>ためしに SELECT 文を実行したところ 参照できてしまったのです


そうですか。DBの内容やそのSQLが分からないので確認方法として正しいのかはこちらで判断できませんね。
システム権限やロール、個別にオブジェクト権限が付与されていないかを確認してみて、
なぜ参照できているのかの原因をはっきりさせるところからですね。

参考URL:http://www.atmarkit.co.jp/fdb/ref/ref_oracle/pri …
    • good
    • 1

まず、なに経由で権限が与えれているのかを調査すべきです。



個別のオブジェクト権限が与えれれているなら以下で調査します。
select * from dba_tab_privs
where grantee = 'TANAKA';

システム権限やロールで与えれている可能性はありますので以下も調査します。
select * from dba_sys_privs
where grantee = 'TANAKA';

select * from dba_role_privs
where grantee = 'TANAKA';

何らかの方法で[SELECT ANY TABLES]が与えられている可能性が高い気がします。

この回答への補足

CREATE VIEW
CREATE TRIGGER
CREATE PROCEDURE
CREATE TABLE
CREATE SESSION
CREATE SEQUENCE

ご提示のSQLを実行しましたが
上記の権限しか与えられていませんでした。

補足日時:2010/08/26 10:28
    • good
    • 0

>1個1個オブジェクト名を指定するのは大変ですね^^;


工夫すればスクリプトなんてすぐできると思いますが。
たとえばこんなのとか。
select 'revoke '||privilege||' on '||table_name||' from '||grantee||';'
from USER_TAB_PRIVS_MADE;

そもそも
>デフォルトで他スキーマの参照権限がついているようです。
ってどのように確認されたのでしょうか。

この回答への補足

ためしに SELECT 文を実行したところ 参照できてしまったのです

補足日時:2010/08/25 17:27
    • good
    • 0

>デフォルトで他スキーマの参照権限がついているようです。


というのが良くわかりませんね。DBAロールを付与していたりしませんか?
普通は権限を与えない限りは参照できないような気がしますが・・・

権限削除のSQLは
>REVOKE ALL ON YAMADA.* TO TANALA;
ではなく、
REVOKE ALL ON YAMADA.* FROM TANALA;
です。
*の部分は実際にはオブジェクト名を入れているんですよね?

この回答への補足

ユーザ作成は以下のスクリプトで行いました
DBA権限は付与していないと思いますが・・・
CREATE USER TANAKA PROFILE "DEFAULT" IDENTIFIED BY TANAKA
DEFAULT TABLESPACE TANAKA TEMPORARY TABLESPACE "TEMP" QUOTA UNLIMITED ON TANAKA
;
GRANT CREATE SESSION TO TANAKA
;
GRANT "CONNECT" TO TANAKA
;
GRANT CREATE PROCEDURE TO TANAKA
;
GRANT CREATE SEQUENCE TO TANAKA
;
GRANT CREATE TRIGGER TO TANAKA
;
GRANT CREATE TABLE TO TANAKA
;
GRANT CREATE VIEW TO TANAKA
;

ワイルドカード*は指定不可ですか
1個1個オブジェクト名を指定するのは大変ですね^^;

補足日時:2010/08/25 13:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す