Oracle

在企業管理器中配置 Oracle 使用者以在他的任何表上創建視圖

  • November 5, 2013

是否可以在企業管理器中配置 Oracle 使用者,以便他以後可以在其模式中的任何未來但未知的表上創建視圖?

我目前遇到“ORA-01031 權限不足”錯誤,因為沒有授予個人 SELECT 或數據修改權限(僅通過角色,加上 CONNECT 角色,包括 CREATE VIEW - EDIT:錯誤!不再!)。

但是,我執行了一個從 SQL Developer 執行的數據庫創建腳本,該腳本創建了表,現在應該基於先前創建的表(就像另一個表一樣)創建一個視圖。該腳本不“知道”正在執行它的使用者帳戶,並且基本上根本沒有進行任何權限/特權設置。

基本上是這樣的:

CREATE TABLE Members (
   ID        number(10),
   Name      varchar2(100),
   Street_No varchar2(100),
   ZIP       number(5),
   City      varchar2(100)
);

CREATE VIEW MembersNamesOnly AS
   SELECT ID, Name FROM Members;

檢測目前使用者(執行腳本)並授予自己權限不起作用,並且會導致煩人的程式碼成本,授予許多單獨的表的權限。還有問題,當其他使用者應該使用視圖,但只能通過角色獲得他們的權限,而不需要為每個使用者和表分配繁瑣的使用者表權限時。

這樣的設置可能嗎?在單個腳本中創建表和基於它們的視圖?我目前擔心我根本無法使用任何視圖,而無需大量重寫所有現有的數據庫創建程式碼。

我不確定我是否正確理解了您的問題。我創建了一個能夠為他自己的模式創建視圖的使用者。

SQL> create user view_user identified by password default tablespace users quota unlimited on users;

User created.

SQL> grant create session, create table, create view to view_user;

Grant succeeded.

SQL> connect view_user
Enter password: 
Connected.
SQL> CREATE TABLE Members (ID number(10), Name varchar2(100), Street_No varchar2(100), ZIP number(5), City varchar2(100));

Table created.

SQL> CREATE VIEW MembersNamesOnly AS SELECT ID, Name FROM Members;

View created.

SQL> 

引用自:https://dba.stackexchange.com/questions/52765