2013-04-20 36 views
5

當我嘗試創建包含不同表格的視圖時,出現以下錯誤: 第1行錯誤: ORA-01031權限不足。ORA-01031創建視圖時權限不足?

有誰能告訴我可能是什麼問題。我試着按照這裏提到的另一個stackoverflow帖子,但它涉及到 不同的模式。

ORA-01031: insufficient privileges when selecting view

請讓我知道,因爲我是新來的。

我的查詢如下:

原題:創建一個視圖來選擇員工ID,員工姓名,僱用日期和部門編號。

我的解決方案:

CREATE VIEW SIMPVIEW AS 
SELECT EMPNO, ENAME, HIREDATE,DEPTNO 
FROM EMP; 
+2

您是否擁有'create view'特權?你是否擁有'emp'表,或者你是否在另一個模式中訪問它(例如'HR'示例模式)?如果它在另一個模式中,你是否有通過角色或直接選擇'select'的權限? – 2013-04-20 21:50:01

+0

感謝您的回覆。是的,我在安裝了Oracle 11g的計算機上運行查詢。所以,我是我自己的DBA,但由於我是新手,我不確定發生了什麼問題。 – Tan 2013-04-20 21:56:58

+0

是的,我創建了emp表。 – Tan 2013-04-20 21:57:45

回答

3

那麼很可能你可能沒有權限在數據庫架構進行CREATE VIEW命令登錄到帳戶SYSDBA併發出命令

GRANT CREATE VIEW TO <dbusername>; 

這裏<dbusername>應的名稱所取代用戶要訪問CREATE VIEW命令。

2

你可以檢查你的用戶使用select * from session_privsVIEW創建權限。

請注意,爲了能夠創建一個視圖,正在創建它的用戶需要被授予所有正在使用的對象的SELECT權限,以及所提到的CREATE VIEW權限。您也可以通過查詢USER_TAB_PRIVS來確認用戶是否收到錯誤。

0

你必須給用戶選擇任何表特權。然後視圖將成功編譯。不需要明確地向用戶授予對所有對象的選擇。

0

當我想在SQL開發人員執行上述查詢我面臨的問題,因爲我沒有足夠的權限來創建視圖或其他oracle對象模式,如觸發器,包,程序等我發現錯誤,即「第1行錯誤:ORA-01031權限不足「。所以,我需要所有特權來練習所有這些查詢和程序。我採取了以下步驟來解決我的問題:

  1. 當我以用戶名'scott'登錄時,所以我的名字是'scott'而不是'Dhruv'。我的野心是給予我所有的特權,即給用戶'斯科特'。
  2. 爲此,我需要以數據庫管理員身份輸入數據庫。現在,問題是!如何以DBA身份登錄。爲此,我打開了命令提示符,並按照以下步驟登錄數據庫爲sysdba:

a)在窗口運行中,我鍵入cmd以打開命令提示符。我鍵入:sqlplus/nolog這意味着我登錄時沒有提供所需的憑據。
b)我對自己的底層操作系統進行了身份驗證,並以DBA身份進入數據庫。爲此,我輸入命令提示符:connect/as sysdba; c)如果存在,我評估了數據庫中的DBA用戶是誰。爲此,我輸入:從V $數據庫中選擇名稱; d)我們在這裏執行這個命令。我終於讓自己(斯科特)在sql開發者中創建視圖,方法是輸入以下命令:grant create view to scott; e)最後,我通過鍵入以下內容爲自己授予所有特權:將所有特權授予scott;

命令提示符的快照:我已附加。

最後,我執行並創建了我的視圖:我已附加

+0

沒有附件 – Vemonus 2016-12-06 16:07:20

+0

@Dhruv你可以附上你的附件嗎? – John 2016-12-09 02:53:54