Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 13251|Yanıt: 0

[Kaynak] Oracle database column-level permission control

[Bağlantıyı kopyala]
Yayınlandı 11.12.2015 23:47:14 | | |
Müşterinin bir ihtiyacı var, 150'den fazla alandan oluşan bir tablo, müşteri sadece bazı alanların tarama şirketinin çalışanları tarafından görülmesini istiyor, bu gereksinim bir görünümle kolayca gerçekleştirilebilir, müşteri ayrıca talep ediyor, bu alanları da talep ediyor, tarama şirketi sadece bireysel alanları değiştirebiliyor, sütun seviyesinde böyle bir izin kontrolü ihtiyacını daha önce hiç yaşamadım, bir deney yaptım, çok ilginç hissediyorum, kaydet

Müşterinin bir tane varTalep, 150'den fazla alandan oluşan bir masada, müşteri sadece bazı alanları şirketi tarayanlara göstermesini istedi, buTalepKolayca bir görünümle uygulanabilir ve müşteri bu alanları, tarama şirketinin yalnızca bireysel alanları değiştirebilmesini istiyor, ben daha önce sütun seviyesinde izin kontrolü için böyle bir ihtiyaçla karşılaşmadım, bir deney yaptım, kendimi çok ilginç hissediyorum, kaydetTestsüreç.

1. Bir test tablosu oluşturun ve nokta test verilerini ekleyin:

  SQL> create table test(id number,table_name varchar2(50),

sahibi varchar2(50),TABLESPACE_NAME varchar2(50));

Tablo oluşturuldu.

SQL> insert into test select rownum,table_name,owner,

TABLESPACE_NAME dba_tables'dan;

5490 sıra oluşturuldu.

SQL> commit;

Tamamlandı.

2. Bir test kullanıcısı oluşturun ve temel izinler verin:

SQL> CONN / AS SYSDBA

Bağlantılı.

SQL> kullanıcı akışı oluştur, varsayılan tablo alanı kullanıcıları tarafından tanımlanır;

Kullanıcı tarafından oluşturuldu.

SQL> bağlantı, kaynak akışa;

Grant başarılı oldu.

3. Test kullanıcılarına sütun düzeyinde yetkiler verin:

SQL> conn auth/auth

Bağlantılı.

SQL> testte güncelleme (id) ile yayına test;

Grant başarılı oldu.

SQL> test to stream üzerinde insert (table_name) ver;

Grant başarılı oldu.

SQL>

SQL> testte akış için seçim hakkı ver;

Grant başarılı oldu.

4. Sorgu sütun düzeyinde izin ayarı bilgisi:

SQL> GRANTEE,OWNER,TABLE_NAME,COLUMN_NAME,GRANTOR,PRIVILEGE seçin,

user_col_privs'DEN VERİNDİR;

HIBE SAHIBI TABLE_NAME COLUMN_NAME VEREN İMTIYAZI GRA

------- ----- ---------- ----------- ------- --------- ---

AKIM DOĞRULAMA TESTI TABLE_NAME DOĞRULAMA EKLEME NO

AUT AUTH TEST ID AUTH INSERT NO

AUT AUT TEST ID AUT GÜNCELLEME HAYIR

STREAM AUTH TEST ID AUTH UPDATE NO

5. Giriş testi kullanıcısı SELECT iznini doğrular:

SQL> conn stream/stream

Bağlantılı.

SQL> * from seç (auth.test sırasından * seç * 1) burada rownum< =10;

ID TABLE_NAME SAHIBI TABLO ALANI

---------- -------------------- ---------- ----------

1 ICOL$ SISTEM

2 IND$ SISTEM SISTEMI

3 COL$ SISTEM

4 CLU$ SISTEM

5 TAB$ SISTEM

6 LOB$ SISTEM SISTEMI

7 COLTYPE$ SISTEM SISTEMI

8 ALT KOLTIP$ SISTEM

9 NTAB$ SISTEM

10 REFCON$ SISTEM

10 sıra seçildi.

6. Sütun düzeyinde GÜNCELLEME izni kontrolünü doğrulayın:

SQL> update auth.test set owner='STREAM' burada id =1;

update auth.test set owner='STREAM' burada id =1

  *

1. satırda HATA:

  ORA-01031: insufficient privileges

Test tablosunun OWNER alanının değerinin değiştirilemediği görülebilir, rapor ORA-01031: Yetersiz izin, yukarıdaki bilgiler test kullanıcısına test tablosunun ID alanını değiştirme izni verdiği için ID alanını değiştirmek mümkündür.

SQL> update auth.test set id=10 burada id=1;

1 sıra güncellendi.

SQL> geri dönüş;

Geri dönüş tamamlandı.

7. Sütun düzeyinde INSERT izin kontrolünü doğrulayın:

SQL> auth.test values(1,'stream','stream','users') içine insert edin;

insert into auth.test values(1,'akış','akış','users')

  *

1. satırda HATA:

  ORA-01031: insufficient privileges

Yukarıdakiler, test kullanıcısına test tablosunun TABLE_NAME alanını değiştirme izni verdiğinden, TABLE_NAME alan eklemek mümkündür, ancak ancak diğer alanların BAZI kısıtlamaları yoksa.

SQL> enter into auth.test(table_name) değerleri ('akış');

1 sıra oluşturuldu.

SQL> geri dönüş;

Geri dönüş tamamlandı.






Önceki:Oracle 10G için ayrıntılı kurulum adım adım eğitimi
Önümüzdeki:Tencent Analytics etkinleştirildikten sonra sistem meşgul oluyor, lütfen daha sonra tekrar deneyin
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com