2013-04-01 54 views
0

每次我創建一個新的視圖時,我必須將權限更改爲全部,而且很多時候做同樣的事情是相當痛苦的。如何使用非默認權限創建視圖db2/iseries?

我也問是否可以改變數據庫中的一些默認選項我創建視圖,以便將權限設置爲public。

感謝

回答

1

以下是從V6R1 documentation:由語句的授權ID舉行

授權

的特權必須 包括以下的至少一個:

在模式中創建的權限。有關更多信息,請參閱 在模式中創建所需的權限。

行政機關

由語句的授權ID舉行的權限必須 包括以下的至少一個:

以下系統部門:*使用創建邏輯文件 (CRTLF) CL命令* CHANGE更改爲數據字典,如果創建視圖的庫 是包含數據字典的SQL模式 管理權限

所擁有的權限聲明的授權標識還必須 包括下列中的至少一個:

對於每個表和視圖直接通過在全查詢引用的視圖引用通過全查詢, 或間接:該SELECT 特權上的表或視圖和系統權限*上 執行庫包含的表或視圖管理權限

查看所有權:如果指定SQL名稱:

如果存在與創建該視圖的模式名稱相同的用戶配置文件,則該視圖的所有者是該用戶配置文件。
否則,視圖的所有者是執行語句的作業的用戶配置文件或組用戶 配置文件。

如果指定了系統名稱,則視圖的所有者是執行該語句的作業的用戶配置文件或組用戶配置文件 。

查看權限:

如果使用SQL名稱,意見與 的系統權限* EXCLUDE對* PUBLIC創建。如果使用系統名稱,則根據架構的創建權限 (CRTAUT)參數確定,視圖以* PUBLIC的權限創建。

如果視圖的所有者是組配置文件(GRPPRF 關鍵字)的成員並指定了組權限(GRPAUT關鍵字),那麼該組 配置文件也將擁有該視圖的權限。

所有者始終獲得WITH GRANT OPTION的SELECT權限上 視圖並刪除該視圖的授權。

僱主也能夠獲得插入,更新,並在視圖中刪除權限 。如果視圖不是隻讀的,那麼同樣的特權 將在新視圖獲取作爲所有者在第一確定從全查詢的子句中的表或視圖 。這些 權限可以賦予只有從他們所衍生 的特權也可以被授予。

2

這聽起來像你正在使用SQL命名。改爲使用系統命名,這將根據QCRTAUT系統值授予公共權限。請參閱Birgitta Hauser's article

系統命名具有使用作業的庫列表來解析不合格的對象引用的額外優勢。通過不對模式名稱進行硬編碼,但允許系統根據庫列表找到它們,使代碼能夠在不同的環境中工作(例如開發,測試,培訓,製作)而無需修改代碼,只需通過運行不同的庫列表。因此,您可以將代碼安裝到生產中,完全與測試過的代碼相同。