ソースSQLを変更するときに、Oracleビューがすべての許可を失うのは正常ですか?SQL Developerと関係がある場合は、SQLDeveloperを使用しています。
質問する
4784 次
1 に答える
7
まず第一に、あなたは「助成金」を持っていません-「助成金」は操作です。あなたには「役割」と「特権」があります。
次に、ビュー自体にはロールも特権もありません。スキーマにはあります。基本的に、自己記述型コマンドは次のとおりgrant select on view_1 to schema_1
です。
第3に、ビューを作成または置換しても、スキーマの特権が失われることはありません。簡単なサンプルを次に示します。
11:03:07 @> conn system/sys@oars_sandbox
Connected.
11:03:15 SYSTEM@oars_sandbox> create user test1 identified by test1;
User created.
11:03:39 SYSTEM@oars_sandbox> create user test2 identified by test2;
User created.
11:03:48 SYSTEM@oars_sandbox> create view test1.view1 as select * from dual;
View created.
11:04:03 SYSTEM@oars_sandbox> grant select on test1.view1 to test2;
Grant succeeded.
11:04:15 SYSTEM@oars_sandbox> select grantee, owner, table_name, privilege, grantor from dba_tab_privs where grantee = 'TEST2';
GRANTEE OWNER TABLE_NAME PRIVILEGE GRANTOR
------------------------------ ------------------------------ ------------------------------ ---------------------------------------- ------------------------------
TEST2 TEST1 VIEW1 SELECT TEST1
11:05:13 SYSTEM@oars_sandbox> create or replace view test1.view1 as select * from dual;
View created.
11:05:24 SYSTEM@oars_sandbox> select grantee, owner, table_name, privilege, grantor from dba_tab_privs where grantee = 'TEST2';
GRANTEE OWNER TABLE_NAME PRIVILEGE GRANTOR
------------------------------ ------------------------------ ------------------------------ ---------------------------------------- ------------------------------
TEST2 TEST1 VIEW1 SELECT TEST1
drop view
ただし、SQL開発者が。の代わりに最初に呼び出す可能性は十分にありcreate or replace
ます。この場合、特権は自動的に削除されます。
11:05:26 SYSTEM@oars_sandbox> drop view test1.view1;
View dropped.
11:10:21 SYSTEM@oars_sandbox> select grantee, owner, table_name, privilege, grantor from dba_tab_privs where grantee = 'TEST2';
no rows selected
11:10:24 SYSTEM@oars_sandbox> create or replace view test1.view1 as select * from dual;
View created.
11:10:26 SYSTEM@oars_sandbox> select grantee, owner, table_name, privilege, grantor from dba_tab_privs where grantee = 'TEST2';
no rows selected
于 2012-10-30T03:12:52.360 に答える