Як я можу надати всі привілеї місцевому db2admin з DB2 9.7 для Windows?


10

У мене на станції розробника є ноутбук з ОС Windows XP Professional Edition, Service Pack 3.

Я завантажив і встановив пакет виправлень IBM DB2 UDB 9.7 випуску Express-C.

У мене є локальний обліковий запис Windows, який називається db2admin, який я використовую як локальний адміністратор бази даних для локальної установки DB2 (лише для розробників).

Я можу запустити наступні без проблем під час запуску командного вікна:

db2 attach to db2 user db2admin using xxxxxxxxxx

Це дозволяє мені приєднатися до мого екземпляра під назвою DB2.

Я можу запустити команди створення бази даних.

Потім я намагаюся підключитися до бази даних, щоб надати всі привілеї для мого облікового запису db2admin в DB2.

db2 CONNECT TO MYDB;
SET SCHEMA DB2ADMIN;
db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT,CREATE_NOT_FENCED_ROUTINE,IMPLICIT_SCHEMA,LOAD,CREATE_EXTERNAL_ROUTINE,QUIESCE_CONNECT,SECADM ON DATABASE TO USER DB2ADMIN;
CONNECT RESET;

Однак коли я запускаю це, DB2 повідомляє мені, що мій фактичний обліковий запис користувача (synprgcma) не має повноважень надати повноваження користувачу db2admin.

Тож якщо я зміню другий сценарій на такий:

db2 CONNECT TO MYDB USER db2admin USING xxxxxxxx;
SET SCHEMA DB2ADMIN;
db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT,CREATE_NOT_FENCED_ROUTINE,IMPLICIT_SCHEMA,LOAD,CREATE_EXTERNAL_ROUTINE,QUIESCE_CONNECT,SECADM ON DATABASE TO USER DB2ADMIN;
CONNECT RESET;

Тоді DB2 каже мені, що db2admin не може відкликати або надавати авторитет самому собі (насправді це говорить мені, що ідентифікатор не може відкликати або надавати повноваження собі).

Тож я застряг. У мене не було цієї проблеми з попередньою установкою DB2 (9.5, і я не пам'ятаю, у якому пакеті виправлень я був).

Як надати необхідні повноваження на обліковий запис місцевого адміністратора? Я вважаю, що мені це потрібно для того, щоб запустити команду bind, яку мені потрібно виконати далі:

db2 CONNECT TO MYDB;
db2 bind @db2cli.lst blocking all grant public sqlerror continue CLIPKG 20;
db2 CONNECT RESET;

Будь-яка допомога буде вдячна.

Редагувати: Я знайшов деякі з наступних посилань, пов’язаних із цим. Ще не впевнений, як змусити його працювати, але, принаймні, я знайшов якусь документацію.

Відповіді:


5

На основі останніх вище посилань у редагуванні мого запитання я знайшов свою відповідь. Я не можу налаштувати системний обліковий запис, оскільки наші входи в нашу систему від LDAP, і я не можу контролювати групи, а що ні.

Тому я зробив наступне:

  1. Відкрив графічний інтерфейс DB2 (найпростіше це зробити).
  2. Підключено до потрібної бази даних як db2admin.
  3. Я додав мій вхід до бази даних як користувач.
  4. НАДАЙТЕ всім властям цей id (мій ідентифікатор)
  5. Відключити.
  6. Підключіться до потрібної бази даних як мій ідентифікатор.
  7. НАДАЙТЕ всім органам db2admin.
  8. Відключити.

Вуаля! Вхід db2admin тепер як і всі органи.

Редагувати:Я залишаю вищесказане, оскільки це допомогло мені навчитися робити якісь цікаві речі в DB2. Однак я дізнався, що DBADM / SECADM з DATAACCESS та ACCESSCTRL повноваженнями надали власника екземпляра (в моєму випадку ідентифікатор db2admin) мають усі повноваження, необхідні для взаємодії з базою даних. Я міг би насправді просто прокоментувати ці грантові лінії вище в сценарії. Вони залишилися від сценарію, який протиставляв старішу версію DB2. Я також виявив, що мені потрібно мати власника екземпляра DBADM після відновлення бази даних A з бази даних B, найпростіше просто встановити змінну реєстру DB2_RESTORE_GRANT_ADMIN_AUTHORITY на ТАК (доступний у Fix Pack 2 і вище). Тоді мені не потрібно намагатися надати власника екземпляра DBADM. Це автоматично надається, що будь-яка база даних, відновлена ​​в екземплярі.


Не впевнений, що ви розумієте під графічним інтерфейсом DB2. Чи є версія командного рядка, яку ми можемо спробувати?
Нд

@ sunk818 - кроки були б однаковими навіть для командного рядка. Це більше стосується того, як функціонує DB2 щодо безпеки, починаючи з версії 9.7.
Кріс Олдріч

Моє занепокоєння стосувалося доступу до SYSADM для створення бази даних ... Можливо, я відвідав неправильне питання. ;)
Нд

SYSADM завжди має можливість створити базу даних. Так само і SYSCTRL.
Кріс Олдріч
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.