Oracle
在企業管理器中配置 Oracle 使用者以在他的任何表上創建視圖
是否可以在企業管理器中配置 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>