2013-05-17 165 views
-1

我工作的一個DB2爲我數據庫(又名DB2/400),在架構(庫)命名S.默認權限

內部架構S,我創建數據庫表,程序等與用戶A.我需要這也是用戶B具有這些新對象的所有權限。因此,我將模式S上的用戶A和B的所有權限授予。但新對象不會繼承它們!

所以我嘗試了很多配置:在系統i導航器上,我使用授權列表,「架構S的權限對話框上的」新建對象「按鈕...但沒有任何工作。

如何設置一種默認權限,以便在我的模式中創建的新對象自動繼承?

我知道的唯一工作方法是每次創建對象時記住grant特權給用戶B.不那麼聰明...

+0

沒有「默認權限」。您必須爲每個新對象顯式授予權限。 – mustaccio

回答

0

我有IBM i 7.1。

如果我使用5250仿真器在STRSQL內部創建表,它將繼承架構授權列表。

如果我使用iSeries Navigator V5R4M0創建表(無論是右鍵單擊Tables> New> Table還是cwbundbs.exe),它都不起作用。授權列表不會繼承...

所以它似乎是iSeries Navigator中的一個錯誤。也許某個有更新版本的人可以確認我們是否已經修復。

全部細節在chat with @BuckCalabro

+1

檢查iSeries Navigator內部的連接,它可能在* Server提供所需結果時使用* SQL。不要有機會。更好的做法是在創建表格時專門授予和撤銷權限。 – danny117

+0

@ danny117謝謝,你能指定這個設置的位置嗎? – bluish

+0

你開始運行一個sql腳本。然後在腳本窗口中。選擇連接/ jdbc設置。然後在格式選項卡上,您可以將命名約定更改爲* sys ..我希望這適用於您。 – danny117

0

安全性是一個很大的話題。它通常由管理員處理;知道更改圖書館權限的更大後果的人。

有幾個相關的設置需要考慮。由於您試圖保護單個對象,因此您可能通過將QSECURITY設置爲* EXCLUDE或將庫的CRTAUT更改爲* EXCLUDE來限制公共權限。

如果我們希望此庫中的所有新創建的對象具有相同的權限,請考慮授權列表。我知道你說你玩過wuth授權清單,但你沒有具體說明你做了什麼。

創建授權列表。授權用戶A和B進入授權列表。 CHGLIB myschema CRTAUT(myautl)。現在myschema中的每個對象都具有相同的權限。

+0

謝謝巴克!這是我試過的('CHGLIB LIB(MYLIB)CRTAUT(MYAUTLIST)'),但是,當我在MYLIB中創建新表時,它不會從MYAUTLIST中獲取權限。這很奇怪... – bluish

+0

EDTOBJAUT MYLIB/MYFILE * FILE你看到什麼* PUBLIC - 我看到* AUTL。 –

+0

我看* EXCLUDE :( – bluish