Windows'ta DB2 9.7 ile yerel db2admin'e tüm ayrıcalıkları nasıl verebilirim?


10

Geliştirici istasyonumda OS Windows XP Professional Edition Service Pack 3 bulunan bir dizüstü bilgisayar var.

Express-C sürümünün IBM DB2 UDB 9.7 düzeltme paketi 4'ü indirip yükledim.

DB2 yerel yüklemem için yerel veritabanı yöneticim olarak kullandığım db2admin adlı yerel bir Windows hesabım var (yalnızca geliştirici amaçlı).

Komut Penceresini çalıştırırken aşağıdakileri sorunsuz çalıştırabilirim:

db2 attach to db2 user db2admin using xxxxxxxxxx

Bu, DB2 adlı örneğime bağlanmamı sağlıyor.

Veritabanı oluşturma komutlarımı çalıştırabilirim.

Daha sonra DB2 db2admin hesabım için tüm ayrıcalıkları vermek için veritabanına bağlanmaya çalışın.

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;

Ancak bunu çalıştırdığınızda, DB2 bana gerçek windows kullanıcı hesabım (synprgcma) kullanıcı db2admin için yetki verme yetkisine sahip olmadığını söyler.

İkinci komut dosyasını aşağıdaki şekilde değiştirirsem:

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;

Daha sonra DB2 bana db2admin'in kendisini iptal edemeyeceğini veya kendisine yetki veremeyeceğini söyler (aslında bana bir kimliğin iptal edemeyeceğini veya kendisine yetki veremeyeceğini söyler).

Bu yüzden güldüm. DB2 benim önceki yüklemesi ile bu sorun yoktu (9.5, ve ben hangi düzeltme paketi olduğunu hatırlamıyorum).

Yerel yönetici hesabına gerekli yetkileri nasıl verebilirim? Daha sonra yapmam gereken bir bağlama komutu çalıştırmak için buna ihtiyacım var inanıyorum:

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

Herhangi bir yardım mutluluk duyacağız.

Düzenleme: Bununla ilgili aşağıdaki bağlantılardan bazılarını buldum. Hala nasıl çalışacağından emin değilim, ama en azından bazı belgeler buldum.

Yanıtlar:


5

Düzenlememde yer alan soruma yapılan son bağlantılara dayanarak cevabımı buldum. Sistem hesabımızdaki oturum açmalarımız bir LDAP'den olduğu ve grupları kontrol edemediğim için sistem hesabını değiştiremiyorum.

Bu yüzden aşağıdakileri yaptım:

  1. DB2 GUI (bu şekilde yapmak en kolay) açıldı.
  2. İstenilen veritabanına db2admin olarak bağlandı.
  3. Oturum açma bilgilerimi veritabanına kullanıcı olarak ekledim.
  4. Tüm otoritelere bu kimliği (kimliğimi) VERİN.
  5. Bağlantıyı kes.
  6. İstediğim veritabanına kimliğim olarak bağlan.
  7. Tüm yetkililere db2admin'i VERİN.
  8. Bağlantıyı kes.

İşte bu kadar! Db2admin artık tüm yetkililer gibi oturum açıyor.

DÜZENLE:DB2'de bazı ilginç şeyleri nasıl yapacağımı öğrenmeme yardımcı olduğu için yukarıdan ayrılacağım. Ancak, DATAACCESS ve ACCESSCTRL yetkilileri ile DBADM / SECADM örnek sahibi (benim durumumda db2admin id) veritabanı ile etkileşim için gereken tüm yetkiye sahip olduğunu öğrendim. Aslında senaryodaki yukarıdaki hibe hatlarını yorumlayabilirdim. Bunlar, DB2'nin eski bir sürümüne karşı çalışan bir komut dosyasından çıkarıldı. Ben de veritabanı B bir veritabanı A geri yükleme yaptıktan sonra örnek sahibi DBADM olması gerekiyorsa, sadece kayıt defteri değişkeni DB2_RESTORE_GRANT_ADMIN_AUTHORITY YES (Fix Pack 2 ve üstü mevcuttur) ayarlamak için en kolay olduğunu bulduk. Sonra örnek sahibi DBADM vermek denemek zorunda değilsiniz. Örneğe geri yüklenen herhangi bir veritabanına otomatik olarak verilir.


DB2 GUI ile ne demek istediğinizden emin değilim. Deneyebileceğimiz bir komut satırı sürümü var mı?
Paz

@ sunk818 - komut satırı için bile adımlar aynı olurdu. Sürüm 9.7'de başlayan DB2'nin güvenlikle ilgili olarak nasıl çalıştığı ile ilgilidir.
Chris Aldrich

Benim endişem bir veritabanı oluşturmak için SYSADM erişimine sahip olmak zorundaydı ... Belki de yanlış soruyu ziyaret ettim. ;)
Paz

SYSADM her zaman bir veritabanı oluşturma yeteneğine sahiptir. SYSCTRL de öyle.
Chris Aldrich
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.