Windows 7 上的 DB2 Express - 禁用安全性?
我正在嘗試在我的 PC (Windows 7 pro) 上安裝 DB2 Express-C,但無論我如何安裝或配置它,我都無法將創建數據庫的能力授予我的 Windows 域帳戶。無論我嘗試什麼,
SQL1092N my-windows-id does not have the authority to perform the requested command
當我嘗試創建數據庫時都會收到錯誤消息。我的 PC 由我的公司集中管理,我無法(永久)在 PC 上創建本地帳戶。我的域帳戶在本地管理員組中,並且我已將我的帳戶添加到在 DB2 安裝期間創建的 DB2ADMNS 組中,但 DB2 似乎無法看到這一點。我花了大約 12 個小時閱讀 DB2 說明並嘗試了不同的東西,但是無論我嘗試了什麼,DB2 都不允許我的域帳戶創建數據庫。
我是 PC 的唯一使用者,我並不真正關心安全性。我只需要讓 DB2 工作以執行一些需要它的軟體。是否可以開放 DB2 安全性並允許任何人做任何事情?我嘗試更改 FED_NOAUTH 配置設置,但這似乎沒有達到預期的效果。
這個問題的簡短回答是您需要將 DB2 系統資料庫變數設置
DB2_GRP_LOOKUP
為local
.作為您 PC 上的本地管理員(即不使用您的域帳戶),啟動 DB2 命令視窗並發出以下命令:
db2set DB2_GRP_LOOKUP=local db2stop db2start
發生這種情況的原因與 DB2 如何在成功驗證時列舉使用者所屬的組有關。在 Windows 域環境中,預設的組列舉行為是詢問對使用者進行身份驗證的系統:如果使用者通過本地機器的身份驗證,DB2 會詢問本地機器屬於哪些組;如果使用者通過域的身份驗證,DB2 將詢問域使用者屬於哪些組 - 它不會詢問本地機器。
因此,當您使用域 ID 連接到 DB2 時,DB2 會詢問域控制器您屬於哪些組,因此它看不到您的 ID 屬於本地 PC 上的 Administrators 組。
當您設置 時
DB2_GRP_LOOKUP=local
,這會修改此行為:它告訴 DB2 始終從本地機器列舉組,而不管使用者是由域還是本地機器認證。完成此操作後,DB2 將看到您的域 ID 屬於本地管理員組,並且您最終將獲得完整的 SYSADM 權限(以及創建數據庫的能力)。