• Veritabanlarının bilgi güvenliğine yönelik tehditler. Veritabanı koruma yöntemleri ve güvenliği

    Modern DBMS, veri güvenliği konusunda en yaygın iki yaklaşımdan birini destekler: seçici yaklaşım ve zorunlu yaklaşım. Her iki yaklaşımda da, kendisi için bir güvenlik sistemi oluşturulacak olan veri birimi veya "veri nesnesi", veritabanının tamamı veya veritabanı içindeki herhangi bir nesne olabilir.

    Bu iki yaklaşım aşağıdaki özelliklerde farklılık gösterir:

    Seçici kontrol durumunda, bazı kullanıcılar bu nesnelerle çalışırken farklı haklara (ayrıcalıklar veya yetkiler) sahiptir. Farklı kullanıcıların aynı nesneye farklı erişim hakları olabilir. Oy hakları önemli ölçüde esneklik ile karakterize edilir.

    Seçici yönetim durumunda, aksine, her veri nesnesine belirli bir sınıflandırma düzeyi atanır ve her kullanıcıya belirli bir yetki düzeyi verilir. Bu yaklaşımla, yalnızca uygun erişim düzeyine sahip kullanıcılar belirli bir veri nesnesine erişebilir.

    Seçim ilkesini uygulamak için aşağıdaki yöntemler sağlanır. Veritabanına girildi yeni tip DB nesneleri kullanıcılardır. Veritabanındaki her kullanıcıya benzersiz bir tanımlayıcı atanır. İçin ek koruma benzersiz bir tanımlayıcıya ek olarak her kullanıcıya benzersiz bir parola sağlanır ve sistemdeki kullanıcı tanımlayıcıları sistem yöneticisi tarafından kullanılabiliyorsa, kullanıcı parolaları genellikle özel bir kodlanmış biçimde saklanır ve yalnızca kullanıcıların kendileri tarafından bilinir.

    Kullanıcılar gruplandırılabilir özel gruplar kullanıcılar. Bir kullanıcı birkaç gruba ait olabilir. Standart, asgari bir standart haklar dizisinin tanımlanması gereken KAMU grubu kavramını ortaya koymaktadır. Varsayılan olarak, aksi belirtilmedikçe yeni oluşturulan her kullanıcının KAMU grubuna ait olduğu varsayılır.

    Kullanıcıların veya grupların ayrıcalıkları veya yetkileri, veritabanı nesneleri üzerinde gerçekleştirebilecekleri bir dizi eylemdir (işlemler).

    İÇİNDE son sürümler bir dizi ticari DBMS'de "rol" kavramı ortaya çıktı. Rol, adlandırılmış bir izin kümesidir. Veritabanı sunucusu kurulurken tanımlanan bir dizi standart rol vardır. Ve keyfi yetkileri gruplandırarak yeni roller oluşturmak mümkündür. Rollerin tanıtılması, kullanıcı ayrıcalıklarının yönetimini basitleştirmeyi ve bu süreci yapılandırmayı mümkün kılar. Ayrıca, rollerin tanıtılması belirli kullanıcılarla ilişkili değildir, bu nedenle roller, sistemin kullanıcıları tanımlanmadan önce tanımlanabilir ve yapılandırılabilir.

    Bir kullanıcıya bir veya daha fazla rol atanabilir.

    Korumaya tabi veritabanı nesneleri, veritabanında depolanan tüm nesnelerdir: tablolar, görünümler, saklı yordamlar ve tetikleyiciler. Her nesne türünün kendi eylemleri vardır, dolayısıyla her nesne türü için farklı izinler tanımlanabilir.

    En temel düzeyde, veritabanı güvenliği kavramları son derece basittir. Desteklenmesi gereken iki temel ilke vardır: kimlik doğrulama ve kimlik doğrulama.

    İzin denetimi, her kullanıcı veya işlemin bilgi sistemi belirli nesnelerle ilişkili olarak gerçekleştirebileceği bir dizi eyleme karşılık gelir. Kimlik doğrulama, yetkili bir eylemi gerçekleştirmeye çalışan bir kullanıcının veya işlemin gerçekten iddia ettiği kişi olduğunun geçerli onayı anlamına gelir.

    Güç atama sistemi biraz hiyerarşiktir. En yüksek hak ve yetkilere sahiptir Sistem yöneticisi veya veritabanı sunucusu yöneticisi. Geleneksel olarak, yalnızca bu tür bir kullanıcı başka kullanıcılar oluşturabilir ve onlara belirli izinler verebilir.

    Sistem kataloglarındaki DBMS, hem kullanıcıların kendilerinin hem de tüm nesnelerle ilgili ayrıcalıklarının bir tanımını saklar.

    Ayrıca, yetki verme şeması aşağıdaki ilkeye göre oluşturulmuştur. Veritabanındaki her nesnenin bir sahibi vardır - onu oluşturan kullanıcı. verilen nesne. Bir nesnenin sahibi, diğer kullanıcılara bu nesneyle çalışmak için izin verme veya kullanıcılardan daha önce verilen izinleri geri alma hakkı da dahil olmak üzere, bu nesne için tüm haklara-izinlere sahiptir.

    İÇİNDE Bir dizi DBMS'de, kullanıcı hiyerarşisinin bir sonraki düzeyi tanıtılır - bu, veritabanı yöneticisidir. Bu DBMS'lerde, bir sunucu birçok DBMS'yi yönetebilir (örneğin, MS SQL Server, Sybase).

    İÇİNDE Oracle DBMS, tek tabanlı bir mimari kullanır, bu nedenle burada bir alt şema kavramı tanıtılır - parçalar genel şema DB ve alt şemaya erişimi olan bir kullanıcı tarafından girilir.

    İÇİNDE SQL standardı, bir kullanıcı oluşturmak için bir komut tanımlamaz, ancak hemen hemen tüm ticari DBMS'lerde, bir kullanıcıyı yalnızca etkileşimli olarak değil, özel saklı yordamları kullanarak programlı olarak da oluşturabilirsiniz. Ancak, bu işlemi gerçekleştirmek için kullanıcının ilgili sistem prosedürünü çalıştırma hakkına sahip olması gerekir.

    İÇİNDE SQL standardı, ayrıcalıkları veren ve iptal eden sırasıyla GRANT ve REVOKE olmak üzere iki ifadeyi tanımlar.

    Hibe beyanı aşağıdaki formata sahiptir:

    HİBE ETMEK(<список действий>| TÜM AYRICALIKLAR)

    AÇIK<имя_объекта>O (<имя_пользователя>

    Burada, eylemler listesi, belirli bir türdeki bir nesne üzerindeki genel olarak geçerli eylemler listesinden bir dizi eylemi tanımlar.

    ALL PRIVILEGES parametresi, bu türdeki nesneler için izin verilen tüm eylemlere izin verildiğini belirtir.

    <имя_объекта>- belirli bir nesnenin adını ayarlar: tablo, görünüm, saklı yordam, tetikleyici.

    <имя_пользователя>veya KAMU ayrıcalıkların kime verildiğini belirtir.

    GRANT İLE SEÇENEĞİ isteğe bağlıdır ve yalnızca belirtilen eylemlere ilişkin hakları değil, aynı zamanda bu hakları diğer kullanıcılara verme hakkını da veren bir modu tanımlar. Bu durumda kullanıcı, haklarını yalnızca kendisine izin verilen eylemler çerçevesinde devredebilir.

    Bir örnek ele alalım, tamamen benzersiz isimlere sahip userl, user2 ve userS olan üç kullanıcımız olduğunu varsayalım. Hepsi aynı veritabanının kullanıcılarıdır.

    Kullanıcı1, Tab1 nesnesini oluşturmuştur, bu nesnenin sahibidir ve bu nesneyle çalışma haklarını diğer kullanıcılara devredebilir. Diyelim ki kullanıcı2, Tab'a veri girmesi gereken bir operatör (örneğin, yeni siparişler tablosu) ve kullanıcı 3, girilen verileri düzenli olarak gözden geçirmesi gereken büyük bir patron (örneğin, bir departman yöneticisi) olsun.

    Tablo türündeki bir nesne için, izin verilen eylemlerin tam listesi dört işlemden oluşan bir kümedir: SELECT, INSERT, DELETE, UPDATE. Bu durumda, güncelleme işlemi birkaç sütunla sınırlandırılabilir.

    Tablo türündeki bir nesne için ayrıcalık atama bildiriminin genel biçimi aşağıdaki sözdizimine sahip olacaktır:

    HİBE ([.INSERT][.DELETE][,UPDATE ()<список столбцов»)]}

    AÇIK<имя таблицы»

    O (<имя_пользователя>| HALK)

    O zaman aşağıdaki görevleri yapmak mantıklı olacaktır:

    Bu atamalar, kullanıcı2'nin yalnızca Tab1 ile ilişkili yeni satırlar girme hakkına sahip olduğu ve kullanıcı3'ün Tab1 tablosundaki tüm satırları görüntüleme hakkına sahip olduğu anlamına gelir.

    Bir değiştirme işlemine erişim hakları atarken, kullanıcının hangi sütunların değerini değiştirebileceğini belirtebilirsiniz. Diyelim ki departman yöneticisi verilen hizmetler için fiyatı değiştirme hakkına sahip. TaB tablosunun COST sütununda fiyatın belirtildiğini varsayalım. Ardından user3 kullanıcısına ayrıcalık atama işlemi değişebilir ve şöyle görünebilir:

    HİBE SEÇİMİ. GÜNCELLEME (MALİYET) Kullanıcı3'e Sekmede

    Kullanıcımız, yokluğunda user4'ün onun yerini alabileceğini varsayarsa, bu kullanıcıya oluşturulan Tab1 tablosuyla çalışması için tüm hakları verebilir.

    TÜM AYRICALIKLARI VERİN

    HİBE SEÇENEĞİ İLE user4'E

    Bu durumda, user4 kullanıcısı, user1 nesnesinin sahibinin yokluğunda Tab1 tablosuyla çalışmak için ayrıcalıklar atayabilir. Bu nedenle, yeni bir kullanıcı operatörü belirirse, user5 on, ona komutla tabloya yeni satırlar girme haklarını atayabilir.

    İzinler aktarılırken bir nesne üzerindeki işlemler kümesi sınırlandırılmışsa, bu izinlerin aktarıldığı kullanıcı başka bir kullanıcıya yalnızca sahip olduğu izinleri veya bu izinlerin bir kısmını aktarabilir. Bu nedenle, user4'e aşağıdaki izinler verildiyse:

    HİBE SEÇ, GÜNCELLE, SİL

    HİBE SEÇENEĞİ İLE.

    bu durumda kullanıcı4, kullanıcı5'e veri giriş izinlerini aktaramaz, çünkü bu işlem onun için izin verilen veriler listesinde yer almaz.

    Tablolarla çalışma haklarını doğrudan atamanın yanı sıra, etkili bir veri koruma yöntemi, yalnızca belirli bir kullanıcının çalışması için gerekli sütunları içerecek görünümler oluşturmak ve kullanıcıya bu görünümle çalışma hakları vermek olabilir.

    Görünümler özet sorgularla eşleşebileceğinden, bu görünümlerde değişiklik işlemlerine izin verilmez ve bu nedenle bu tür görünümler için

    görünümlerde, geçerli eylemler kümesi SEÇME işlemiyle sınırlıdır. Görünümler temel tablodan bir seçime karşılık geliyorsa, bu tür bir görünüm için 4 işlemin tümü geçerli olacaktır: SELECT, INSERT, UPDATE ve DELETE.

    Önceden verilen ayrıcalıkları iptal etmek için, SQL standardı REVOKE deyimini tanımlar. Ayrıcalık iptal bildirimi aşağıdaki sözdizimine sahiptir:

    GERİ ÇEKMEK(<список операций | ALL PRIVILEGES}

    AÇIK<имя_объекта>

    İTİBAREN(<список пользователей | PUBLIC } {CASCADE | RESTRICT }

    CASCADE veya RESTRICT seçenekleri ayrıcalıkların nasıl iptal edileceğini belirler. CASCADE seçeneği, yalnızca ayrıcalıklar verildiğinde doğrudan GRANT deyiminde adı geçen kullanıcının ayrıcalıklarını değil, aynı zamanda bu kullanıcının GRANT SEÇENEĞİ seçeneğini kullanarak ayrıcalık verdiği tüm kullanıcıları da iptal eder.

    Örneğin, işlemi kullanırken:

    TÜM AYRICALIKLARI İPTAL ET

    KULLANICI4'E KASKADEME

    user4'ün ayrıcalık atamayı başardığı kullanıcıların ayrıcalıkları da iptal edilecektir.

    RESTRICKT seçeneği, ayrıcalık iptalini doğrudan REVOKE deyiminde adı geçen kullanıcıyla sınırlar. Ancak, ayrıcalıklar devrettiyseniz, bu ifade yürütülmez. Örneğin, işlem:

    TÜM AYRICALIKLARI İPTAL ET

    user4 KISITLAMASI İÇİN

    kullanıcı4 yetkisinin bir kısmını kullanıcı5'e devrettiği için yürütülmeyecek.

    REVOKE deyimiyle, belirli bir nesneyle çalışmak için önceden atanmış ayrıcalıkların tümünü veya yalnızca bir kısmını kaldırabilirsiniz. Aynı zamanda, ayrıcalık iptal operatörünün sözdiziminin açıklamasından, bir operatörle ayrıcalıkları birkaç kullanıcıdan aynı anda veya tüm KAMU grubundan almanın mümkün olduğu görülebilir.

    Bu nedenle, REVOKE deyiminin aşağıdaki kullanımı doğrudur:

    KULLANICI2'YE, KULLANICI4'E KASCADE

    Diğer nesnelerle çalışırken, GRANT ve REVOKE deyimlerinde kullanılan işlemlerin listesi değişir.

    Varsayılan olarak, bir saklı yordamın başlatılmasına (yürütülmesine) karşılık gelen eylem, KAMU grubunun tüm üyelerine atanır.

    Bu koşulu değiştirmek isterseniz, saklı yordamı oluşturduktan sonra bir REVOKE ifadesi yazmanız gerekir. PUBLIC CASCADE'E COUNT_EX TARİHİNDE YÜRÜRLÜĞÜ İPTAL EDİN Ve artık user4'e yeni haklar atayabiliriz.

    Sistem yöneticisi, belirli bir kullanıcının belirli bir veritabanında tablolar oluşturmasına ve bunları değiştirmesine izin verebilir. Daha sonra grant operatörünü aşağıdaki gibi yazabilir:

    TABLO OLUŞTURUN, TABLOYU DEĞİŞTİRİN.

    DB_LIB ÜZERİNDEKİ TABLOYU KULLANICIYA DÜŞÜRÜN

    İÇİNDE Bu durumda, userl, DB_LIB veritabanında tablolar oluşturabilir, değiştirebilir veya silebilir, ancak diğer kullanıcıların bu veritabanında tablolar oluşturmasına veya değiştirmesine izin veremez, çünkü kendisine yeteneklerini devretme hakkı olmadan izin verilmiştir.

    İÇİNDE Bazı VTYS'lerde, kullanıcıya veritabanı oluşturma hakları verilebilir. Örneğin, MS SQL Server'da, sistem yöneticisi main_user kullanıcısına bu sunucu üzerinde kendi veritabanını oluşturma hakkı verebilir. Bu, aşağıdaki komutla yapılabilir:

    VERİTABANI OLUŞTURMAK İÇİN HİBE VERİN

    Hiyerarşi ilkesine göre, kendi veritabanını oluşturan main_user kullanıcısı, artık diğer kullanıcılara bu veritabanındaki herhangi bir nesneyi oluşturma veya değiştirme hakkı verebilir.

    Tek tabanlı mimariyi destekleyen VTYS'lerde bu tür izinlere izin verilmez. Örneğin, Oracle DBMS'de, sunucu üzerinde yalnızca bir veritabanı oluşturulur, ancak kullanıcılar alt şema düzeyinde (veritabanı tablolarının ve ilgili nesnelerin bölümleri) çalışabilir. Bu nedenle, sistem ayrıcalıkları kavramı burada tanıtılmaktadır. Birçoğu var, 80 farklı ayrıcalık.

    Bir kullanıcının bu veritabanı içinde nesneler oluşturmasına izin vermek için, bir veya daha fazla kullanıcıya atanabilen bir sistem ayrıcalığı kavramı kullanılır. Yalnızca eylemler ve belirli bir nesne türü için verilirler. Bu nedenle, bir sistem yöneticisi olarak kullanıcıya tablo oluşturma (CREATE TABLE) hakkı verdiyseniz, tablo üzerinde bir tetikleyici oluşturması için kendisine başka bir CREATE TRIGGER sistem ayrıcalığı verilmesi gerekir. Oracle'daki güvenlik sistemi en güçlülerinden biri olarak kabul edilir, ancak aynı zamanda bir dezavantajı vardır - çok karmaşıktır. Bu nedenle, Oracle'da yönetim görevi, hem erişim haklarını koruma ilkelerinin anlambilimi hem de bu yeteneklerin fiziksel uygulaması hakkında iyi bir bilgi gerektirir.

    MS SQL Server'da koruma sisteminin uygulanması

    SQL Server 6.5, kullanıcı haklarını belirlerken 3 kontrol modunu destekler:

    1. Standart (standart).

    2. Entegre (entegre güvenlik).

    3. Karışık (karışık).

    Varsayılan güvenlik modu, her kullanıcının bir NT Server etki alanı kullanıcısı olarak bir hesabı olmasını gerektirir. Bir etki alanı kullanıcı hesabı, bir kullanıcı adı ve bireysel bir parola içerir. Etki alanı kullanıcıları gruplar halinde birleştirilebilir. Bir etki alanı kullanıcısı olarak, kullanıcıya belirli etki alanı kaynaklarına erişim izni verilir. SQL Server, etki alanı kaynaklarından biri olarak kabul edilir. Ancak SQL Server'a erişmek için kullanıcının bir MS SQL Server kullanıcı hesabı olması gerekir. Bu hesap ayrıca sunucunun benzersiz kullanıcı adını ve şifresini de içermelidir. Kullanıcı, işletim ortamına bağlanırken, etki alanı kullanıcı adını ve parolasını belirtir. Kullanıcı, veritabanı sunucusuna bağlanırken benzersiz SQL Server kullanıcı adını ve parolasını belirtir.

    Tümleşik mod, kullanıcıya işletim sisteminde etki alanı kullanıcısı olarak yalnızca bir hesap verildiğini varsayar ve SQL Server, kullanıcıyı bu hesaptaki verileriyle tanımlar. Bu durumda, kullanıcı yalnızca bir kullanıcı adı ve bir parola belirler.

    İÇİNDE karma mod durumunda, bazı kullanıcılar sunucuya standart mod kullanılarak, bazıları ise tümleşik mod kullanılarak bağlanabilir.

    İÇİNDE MS SQL Server 7.0 yalnızca 2 mod bıraktı: tümleşik, Windows NT Kimlik Doğrulama Modu (Windows NT Kimlik Doğrulama) olarak adlandırılır ve karışık, Karma Mod (Windows NT Kimlik Doğrulama ve SQL Server Kimlik Doğrulama). MS SQL Server 7.0'da kullanıcı kimlik doğrulamasını kontrol etme algoritması, Şek. 13.1.

    Pirinç. 13.1. MS SQL Server 7.0'da kullanıcı kimlik doğrulamasını kontrol etmek için algoritma

    Veritabanı sunucusuna bağlanmaya çalışırken, öncelikle verilen kullanıcı için hangi kimlik doğrulama yönteminin tanımlandığını kontrol eder. Windows NT Kimlik Doğrulama Modu tanımlanmışsa, verilen etki alanı kullanıcısının SQL Server kaynağına erişimi olup olmadığını kontrol eder, varsa, etki alanı kullanıcısı için tanımlanan kullanıcı adı ve parolayı kullanarak bağlanmaya çalışır; bu kullanıcının SQL Server'a bağlanma hakları varsa, bağlantı başarılı olur, aksi takdirde kullanıcı, bu kullanıcının SQL Server'a bağlanmasına izin verilmediğini belirten bir mesaj alır. Karma mod kimlik doğrulamasını kullanırken, SQL Server kullanıcı adını (oturum açma) ve parolasını (parola) sırayla kontrol eder; bu parametreler doğru ayarlanmışsa bağlantı başarılı olur, aksi takdirde kullanıcı ayrıca SQL Server'a bağlanılamaması hakkında bir mesaj alır.

    Oracle DBMS için, işletim ortamındaki kullanıcı adı ve şifreye ek olarak, veritabanı sunucusu ile çalışmak için her zaman kullanıcı adı ve şifresi kullanılır.

    Yetki kontrolü

    Veritabanıyla çalışırken ikinci görev, daha önce de belirtildiği gibi, kullanıcıların izinlerini kontrol etmektir. Kullanıcı izinleri özel sistem tablolarında saklanır ve her işlem sırasında DBMS çekirdeği tarafından kontrol edilir. Mantıksal olarak, veritabanındaki her kullanıcı ve her nesne için, nesnelerin bir boyut boyunca yerleştirildiği ve kullanıcıların diğer boyut boyunca yerleştirildiği bir tür koşullu matris oluşturulur. Her sütunun ve her satırın kesiştiği noktada, belirli bir kullanıcı için belirli bir nesne üzerinde izin verilen işlemlerin bir listesi vardır. İlk bakışta, bu doğrulama modeli oldukça sağlam görünüyor. Ancak nesnelere dolaylı erişimi kullandığımızda zorluk ortaya çıkar. Örneğin, user_N kullanıcısının Tab1 tablosuna erişmesine izin verilmez, ancak bu kullanıcının bu nesneden seçim yapan SP_N saklı yordamı çalıştırmasına izin verilir. Varsayılan olarak, tüm saklı yordamlar sahiplerinin adı altında çalışır.

    Bu tür sorunlar örgütsel yöntemlerle çözülmelidir. Bazı kullanıcıların erişimine izin verirken, dolaylı erişim olasılığının farkında olmanız gerekir.

    Her durumda, koruma sorunu hiçbir zaman tamamen teknik bir görev olmamıştır, veri tabanında depolanan bilgilerin maksimum gizliliğini sağlaması gereken bir dizi organizasyonel ve teknik önlemdir.

    Ek olarak, bir ağ üzerinde çalışırken, kimlik bilgilerinin doğrulanması sorunu devam etmektedir.

    Bu sorun aşağıdaki gibidir. İşlem 1'e veri tabanı ile çalışma izni verildiğini ve işlem 2'ye bu izinlerin verilmediğini varsayalım. Bu durumda, işlem 2 veritabanına doğrudan erişemez, ancak işlem 1'e erişebilir ve onun aracılığıyla veritabanındaki bilgilere erişebilir.

    Bu nedenle, güvenli bir ortamda, kullanıcılar veya süreçler tarafından talep edilen kimlikleri doğrulayan bir kimlik doğrulama modeli olmalıdır. Kimlik bilgileri, dağıtılmış bilgi işlemin yükselişiyle daha da önemli hale geldi. Bilgi işlem sistemlerinin mevcut yüksek düzeyde bağlanabilirliği ile, sisteme yapılan tüm çağrıları kontrol etmek gerekir.

    Kimlik doğrulama sorunları genellikle iletişim ve ağ güvenliği alanında sınıflandırılır, bu nedenle aşağıdaki not dışında bunları burada daha fazla tartışmayacağız. İşletim sistemlerinde, ağlarda, veritabanlarında uygun araçların etkileşimi ile bilgi koruma programının kesin olarak yürütülmesinin sağlandığı bütüncül bir bilgisayar güvenlik sisteminde, kimlik doğrulama doğrudan veritabanı güvenliği ile ilgilidir.

    Temel yetkilendirme ve kimlik doğrulama mekanizmalarına dayalı bir güvenlik modelinin, kullanıcı kimlikleri ve parolalarının çalınması veya bazı yetkili kullanıcıların kötü niyetli eylemleri gibi sorunları çözmediğini unutmayın - örneğin, bir muhasebe veritabanında tam erişime sahip bir muhasebe sistemi üzerinde çalışan bir programcı, veritabanında depolanan bilgileri çalmak veya kasıtlı olarak değiştirmek için programın koduna bir "Truva atı" yerleştirdiğinde. Bu tür sorular konumuzun dışındadır.

    veritabanı güvenlik araçlarının tartışılması, ancak yine de bir bilgi güvenliği programının yalnızca teknik alanları (ağları, veritabanlarını ve işletim sistemlerini korumak gibi) değil, aynı zamanda fiziksel güvenlik sorunlarını, personel güvenilirliğini (gizli kontroller), denetimi, çeşitli manuel veya kısmen otomatik güvenlik bakım prosedürlerini de kapsaması gerektiği anlaşılmalıdır.

    Genelleştirilmiş DBMS mimarisi

    VTYS'nin çalışmasının bazı yönlerini ele aldık. Şimdi öğrendiğimiz her şeyi kısaca özetlemeye ve DBMS'nin bazı koşullu genelleştirilmiş yapısını oluşturmaya çalışalım. Şek. 14.1 böyle bir yapıyı göstermektedir. Burada şartlı olarak DBMS'nin veri dosyalarının, günlük dosyalarının ve sistem katalog dosyalarının bulunduğu harici belleği yönetmesi gerektiği gösterilmektedir.

    Öte yandan, DBMS, bütünlüğü korumak ve kullanıcı ayrıcalıklarını kontrol etmek için gerekli olan veri arabelleklerini, günlük arabelleklerini, sistem katalog verilerini içeren RAM'i de yönetir. Ek olarak, DBMS'nin çalışması sırasında RAM, sorgu işlemenin mevcut durumuna karşılık gelen bilgileri içerir, derlenmiş sorgular için yürütme planları orada saklanır, vb.

    Harici bellek yönetimi modülü, hem doğrudan veritabanına dahil edilen verileri depolamak hem de bazı durumlarda veri erişimini hızlandırmak gibi hizmet amaçları için gerekli harici bellek yapılarının oluşturulmasını sağlar (genellikle bunun için dizinler kullanılır). Daha önce tartıştığımız gibi, bazı DBMS uygulamalarında mevcut dosya sistemlerinin yetenekleri aktif olarak kullanılırken, diğerlerinde harici bellek cihazları seviyesine kadar iş yapılır. Ancak, gelişmiş DBMS'de kullanıcıların hiçbir durumda DBMS'nin dosya sistemini kullanıp kullanmadığını ve kullanıyorsa dosyaların nasıl düzenlendiğini bilmelerinin gerekmediğini vurguluyoruz. Özellikle, DBMS kendi veritabanı nesne adlandırma sistemini sürdürür.

    RAM arabellek yönetim modülü, hemen hemen tüm diğer DBMS işlevleri için kullanılan verimli arabelleğe alma sorunlarını çözmek için tasarlanmıştır.

    Geleneksel olarak, DBMS tarafından yönetilen RAM, veri sayfalarını depolayan arabellekler koleksiyonu, işlem günlüğü sayfalarını depolayan arabellekler ve paylaşılan bir havuz alanı olarak temsil edilebilir (bkz. Şekil 14.2). Son alan, kullanıcı isteklerinin işlenmesini hızlandırmak için sürekli olarak RAM'de tutulması gereken sistem kataloğunun parçalarını ve imleçli SQL ifadelerinin alanını içerir. Sistem kataloğunun parçaları, bazı uygulamalarda veri sözlüğü olarak adlandırılır. SQL2 standardı, bir sistem kataloğu için genel gereksinimleri tanımlar.

    Pirinç. 14.1. Genelleştirilmiş DBMS yapısı

    Pirinç. 14.2. DBMS tarafından yönetilen RAM

    İlişkisel DBMS'deki sistem kataloğu, DBMS'nin kendisine ait özel tabloların bir koleksiyonudur. Sistem katalog tabloları, veritabanı sunucusu yazılımı yüklendiğinde otomatik olarak oluşturulur. Tüm sistem tabloları genellikle bazı özel "sistem kullanıcı kimliği" ile birleştirilir. SQL sorgularını işlerken, DBMS sürekli olarak bu tablolara erişir. Bazı DBMS'ler, bir dizi sistem tablosuna sınırlı kullanıcı erişimine izin verir, ancak yalnızca okuma modundadır. Bazı sistem tablolarındaki verileri değiştirmek için yalnızca sistem yöneticisinin bazı hakları vardır.

    Sistem kataloğunun her tablosu, veritabanının bireysel yapısal öğeleri hakkında bilgi içerir. SQL2 standardı aşağıdaki sistem tablolarını tanımlar:

    Tablo 14.1. SQL2 standardına göre sistem kataloğunun içeriği

    Sistem tablosu

    Her kimlik için bir satır

    şifreli kullanıcı

    Her bilgi için bir satır

    DATA_TYPE_DESCRIPTION

    Her etki alanı için bir satır veya

    belirli bir türden bir sütun

    Etki alanı başına bir satır

    DOMAIN_CONSTRA1NS

    Her sınırlayıcı için bir satır

    alan adına getirilen koşullar

    ile her tablo için bir satır

    isim, sahibi, miktar

    sütunlar, sütun veri boyutları vb.

    ile her görünüm için bir satır

    adı, sahibinin adı,

    bir görünümü tanımlayan bir sorgu

    ile her sütun için bir satır

    sütun adını, tablo adını belirtme

    ya da hangi görüşe

    başvurur, sütunun veri türü, onun

    boyut, kabul edilebilirlik veya kabul edilemezlik

    tanımsız değerler (NULL), vb.

    GÖRÜNÜM_TABLE_USAGE

    Her tablo için bir sayfa,

    sunum (eğer sunum

    çoklu tablo, ardından her tablo için

    bir satır girin)

    VIEW_COLUMN_USAGE

    gönderme

    TABLE_CONSTRAINS

    Her koşul için bir satır

    herhangi bir şekilde belirtilen kısıtlamalar

    tablo tanımı

    KEY_COLUMN_USAGE

    Her sütun için bir satır, başına

    biriciklik şartına tabi olan ve

    tanımına dahil olan

    birincil veya yabancı anahtar (eğer

    belirtilen birincil veya yabancı anahtar

    birkaç sütun, ardından her biri için

    ayrı bir satır verilir)

    REFERENTIAL_CONSTRAINTS Tablo tanımında bulunan her yabancı anahtar için bir satır

    CHECK_CONSTRAINTS Tablo tanımında belirtilen her kontrol koşulu için bir satır

    CHECK_TABLE_USAGE Bir kontrol koşulunda, etki alanı kısıtlamasında veya tablonun tamamında başvurulan her tablo için bir satır

    Sistem tablosu

    CHECK_COLUMN_USAGE

    Her sütun için bir satır, başına

    bir etki alanı için kısıtlayıcı bir koşul veya

    diğer kısıtlayıcı koşul

    Her bildirim için bir satır

    bütünlük iddiaları

    TABLE_PRIVILEGES

    herhangi bir masaya sağlanan

    COLUMN_PRIVILEGES

    Her ayrıcalık için bir satır,

    herhangi bir sütunda sağlanan

    USAGE_PRIVILEGES

    Her ayrıcalık için bir satır,

    herhangi bir etki alanına verilen, ayarlanan

    karakterler vb.

    Verilen her set için bir satır

    karakterler

    Belirli bir satır için bir satır

    diziler

    Verilen her biri için bir satır

    dönüşümler

    Verilen her dil için bir satır,

    desteklenen VTYS

    SQL2 standardı, DBMS'nin gerekli sistem tabloları kümesini tam olarak desteklemesini gerektirmez. Standart, kendisini, sistem kataloğunun bazı özel görünümlerinin sıradan kullanıcılara açık olması gerekliliği ile sınırlandırır. Bu nedenle, sistem tabloları farklı DBMS'lerde farklı şekilde düzenlenir ve farklı adlara sahiptir, ancak çoğu DBMS, sıradan kullanıcılara bir dizi temel görünüm sağlar.

    Ek olarak, sistem kataloğu, belirli DBMS tarafından sağlanan bazı ek özellikleri yansıtır. Örneğin, Oracle sistem kataloğunda eşanlamlı tabloları vardır.

    SQL alanı, veritabanı sunucusuna iletilen her bir SQL ifadesi için bağlama verilerini, geçici arabellekleri, ayrıştırma ağacını ve yürütme planını içerir. Paylaşılan alan

    Havuzun boyutu sınırlıdır, bu nedenle veritabanı sunucusu başlatıldığından beri yürütülen tüm SQL ifadelerine uymayabilir. DBMS çekirdeği, yeni SQL ifadeleri için belleği boşaltarak eski, uzun süredir kullanılmayan ifadeleri kaldırır. Kullanıcı, yürütme planı zaten paylaşılan havuzda depolanan bir sorgu yürütürse, DBMS bunu ayrıştırmaz ve yeni bir plan oluşturmaz, muhtemelen yeni parametrelerle birlikte yürütme için hemen başlatır.

    İşlem yönetimi modülü, işlemleri gerçekleştirme ve geri alma mekanizmalarını destekler, RAM arabellek yönetim modülü ile ilişkilidir ve sistemdeki yazılım veya donanım hatalarından sonra gerekli olan tüm bilgilerin kaydedilmesini sağlar. Ek olarak, işlem kontrol modülü, kilitlenmeleri veya kilitlenmeleri bulmak için özel bir mekanizma içerir ve kilitlenmeleri serbest bırakmak için zorunlu işlem tamamlama için kabul edilen stratejilerden birini uygular.

    SQL destek modülüne özel dikkat gösterilmelidir. Bu, pratik olarak SQL dilinden bir tercüman ve bir sorgu optimizasyon bloğudur.

    Genel olarak, sorgu optimizasyonu sözdizimsel ve anlamsal olarak ayrılabilir.

    Sözdizimsel Sorgu Optimizasyon Yöntemleri

    Sözdizimsel sorgu optimizasyonu yöntemleri, sorguyu yürütmek için daha az maliyet gerektiren, ancak orijinal sorguya tamamen eşdeğer bir sonuç veren, bazen kanonik form olarak adlandırılan eşdeğer bir formun oluşturulmasıyla ilişkilidir.

    Sözdizimsel sorgu optimizasyonunda kullanılan teknikler şunları içerir:

    Mantıksal sorgu dönüşümleri.Her şeyden önce, bu, seçim koşulunda yer alan yüklemlerin dönüşümü anlamına gelir. Basit değer karşılaştırma işlemleri içeren tahminler. Böyle bir yüklem, OS'nin bir karşılaştırma işlemi olduğu aritmetik ifade OS aritmetik ifadesi biçimine sahiptir ve sol ve sağ kısımların aritmetik ifadeleri genellikle ilişki alanlarının ve sabitlerin adlarını içerir (SQL'de, sabitler arasında, değerleri yalnızca bilinen hale gelen ekteki programın değişkenlerinin adları da olabilir "sorgu gerçekten yürütüldüğünde).

    Kanonik temsiller, farklı türlerdeki yüklemler için farklı olabilir. Yüklem yalnızca bir alan adı içeriyorsa, bunun kanonik temsili, örneğin OS sabit aritmetik ifadesi alan adı olabilir (yüklemin bu biçimi - basit bir seçim yüklemi - optimizasyonun bir sonraki aşamasını gerçekleştirirken çok yararlıdır). Yüklemin ilk temsili ise

    (n+12)*R.B OC 100

    burada n bir dil değişkenidir, R.B bir sütunun adıdır R ilişkisinde, OS geçerli bir karşılaştırma işlemidir.

    Böyle bir yüklemin kanonik gösterimi şu şekilde olabilir:

    R.V OS 100/(n+12)

    Bu durumda parantez içindeki ifadeyi ve karşılaştırma işleminin sağ tarafını 100/(n +12) n değişkeninin verilen değeri için bir kez hesaplıyoruz ve ardından her satırı elde edilen değerle karşılaştırabiliyoruz.

    Yüklem, farklı ilişkilerin tam olarak iki alan adını (veya aynı ilişkinin iki farklı oluşumunu) içeriyorsa, bunun kanonik gösterimi, sağ taraftaki aritmetik ifadenin yalnızca sabitleri ve ikinci sıfır adını içerdiği alan adı OS aritmetik ifadesi olabilir (bu aynı zamanda bir sonraki optimizasyon adımını gerçekleştirmek için yararlı bir formdur, -

    yüklemi birleştir; eşitlik durumu, işletim sistemi eşitlik olduğunda özellikle önemlidir). İlk temsilde yüklem şöyle görünüyorsa:

    12*(Rl.A)-n*(R2.B) OS m,

    R1.A OS (m+n*(R2.B)/12)

    Başka bir mantıksal dönüşüm sınıfı, sorgu seçim koşulunu belirten bir mantıksal ifadenin kanonik biçimine indirgenmesiyle ilgilidir. Kural olarak, ayrık veya birleşik normal formlar kullanılır. Kanonik formun seçimi, optimize edicinin genel organizasyonuna bağlıdır.

    R1 DOĞAL BİRLEŞTİRME R2

    NEREDE R1.A OS a VE

    Burada a ve b, ilişki niteliklerinin değerini sınırlayan bazı sabitlerdir.

    yüklemi birleştir; OC eşitlik olduğunda zquiconnection durumu özellikle önemlidir). İlk temsilde yüklem şöyle görünüyorsa:

    12*(Rl.A)-n*(R2.B) OS m,

    o zaman kanonik temsili:

    R1.A OS (m+n*(R2.B)/12)

    Genel durumda, yüklemi, sağ ve sol kısımların ifadelerinin de kanonik gösterime indirgendiği OS sabit aritmetik ifadesinin aritmetik ifadesinin kanonik bir temsiline indirgemek arzu edilir. Gelecekte, farklı sorgu yüklemlerinde ortak aritmetik ifadeleri arayabilirsiniz. Bu haklıdır, çünkü bir sorgu yürütülürken, birbirini izleyen her bir demet getirilirken, yani potansiyel olarak çok sayıda aritmetik ifadelerin hesaplanması yapılacaktır.

    Yüklemleri kanonik bir temsile indirgediğinizde, sabit ifadeleri değerlendirebilir ve mantıksal olumsuzluklardan kurtulabilirsiniz.

    Başka bir mantıksal dönüşüm sınıfı, sorgu seçim koşulunu belirten bir mantıksal ifadenin kanonik biçimine indirgenmesiyle ilgilidir. Kural olarak, ayrık veya birleşik normal formlar kullanılır. Kanonik formun seçimi, optimize edicinin genel organizasyonuna bağlıdır.

    Bir mantıksal koşulu kanonik bir temsile indirgerken, ortak yüklemleri aramak (başlangıçta var olabilirler, yüklemler kanonik bir forma indirgendikten sonra veya mantıksal koşulu normalleştirme sürecinde ortaya çıkabilirler) ve örneğin karşılıklı olarak çelişen yüklemlerin bir birleşimini belirleyerek mantıksal ifadeyi basitleştirmek mümkündür.

    İlişkisel işlemlerin yeniden sıralanmasıyla sorgu dönüşümleri.İÇİNDE

    Geleneksel optimize edicilerde, ilişkisel işlemlerin yürütme sırasını değiştirmekle ilişkili mantıksal dönüşümler yaygındır.

    Örneğin, aşağıdaki talebimiz var:

    Rl DOĞAL BİRLEŞTİRME R2 R1.A OC a VE R2.B C b

    Burada a ve b, R1 ve R2 ilişkilerinin özniteliklerinin değerini sınırlayan bazı sabitlerdir.

    İlişkisel cebir açısından düşünürsek, bu, R1 ve R2 ilişkilerinin doğal bir kombinasyonudur ve burada her bir ilişkinin demetleri üzerindeki dahili kısıtlamalar verilir.

    Birleştirilen demet sayısını azaltmak için, her ilişkide önce örnekleme işlemleri yapmak ve ancak bundan sonra doğal birleştirme işlemlerine geçmek daha mantıklıdır.

    Bu nedenle, bu sorgu aşağıdaki ilişkisel cebir işlemleri dizisine eşdeğer olacaktır:

    R3 =.R1 R4 = R2 R5 = R3**R4

    Çok az sayıda ilişkisel sistem tamamen ilişkisel cebire dayalı sorgulama dillerine sahip olsa da, cebirsel ifadeleri dönüştürmeye yönelik kurallar diğer durumlarda da yararlı olabilir. Oldukça sık olarak, ilişkisel cebir, bir sorgunun dahili gösterimi için temel olarak kullanılır. Doğal olarak bundan sonra cebirsel dönüşümler de yapılabilir.

    Özellikle SQL dilindeki sorguların cebirsel forma dönüştürülmesi ile ilgili yaklaşımlar mevcuttur. En önemlisi, ilişkisel cebir SQL'den daha basittir. Sorgunun cebirsel bir forma dönüştürülmesi, optimize edicinin optimal planların seçimi üzerindeki diğer eylemlerini basitleştirir. Genel olarak konuşursak, SQL odaklı bir sistemin olgun bir sorgu iyileştiricisi, herhangi bir sorgu için olası tüm yürütme planlarını keşfetmelidir, ancak bu planların "arama alanı" genellikle çok büyüktür; her belirli optimize edici, arama alanını azaltmak için kendi buluşsal yöntemini kullanır. Bazıları, belki de en uygun planlar asla dikkate alınmayacaktır. Bir SQL sorgusunu makul bir şekilde cebirsel bir gösterime dönüştürmek, optimum planların kaybolmamasını garanti ederek sorgu yürütme planları için arama alanını azaltır.

    İç içe alt sorgulara sahip sorguları birleştirmelere sahip sorgulara dönüştürme.SQL dili ile ilişkisel cebir dili arasındaki temel fark, mantıksal bir seçim koşulunda iç içe geçmiş alt sorgular içeren yüklemleri kullanma yeteneğidir. İç içe geçmenin derinliği dille sınırlı değildir, yani genel olarak keyfi olabilir. Ortak bir sözdizimi verildiğinde iç içe geçmiş alt sorgulara sahip yüklemler çok farklı anlamlara sahip olabilir. Mümkün olan her şey için ortak olan tek şey se-mantik iç içe alt sorgular, bir sorgu yürütme algoritması, bir yüklem değeri her değerlendirildiğinde iç içe bir alt sorguyu değerlendirmektir. Bu nedenle, alt sorgunun semantiğini daha açık hale getirecek ve böylece optimize ediciye alt sorgunun semantiğine en yakın sorgu yürütme yöntemini seçme fırsatı verecek şekilde, iç içe geçmiş alt sorgularla yüklemler içeren bir sorgunun böyle bir dönüşümü için çabalamak doğaldır.

    n ilişki üzerindeki bir sorgunun kanonik temsili, n-1 birleştirme yüklemleri içeren ve iç içe geçmiş alt sorgular içeren hiçbir yüklem içermeyen bir sorgudur. Aslında kanonik biçim, sorgunun cebirsel temsilidir.

    Örneğin, iç içe alt sorgu içeren bir sorgu:

    (Rl.C = R2.D OLDUĞUNDA R2'DEN R2.B'Yİ SEÇİN)

    eş değer

    NEREDE Rl.A = R2.B VE Rl.C = R2.D)

    İkinci istek:

    (Rl.A'YI Rl'DEN SEÇİN NEREDE Rl.K =

    (Rl.C = R2.D OLDUĞUNDA R2'DEN ORTALAMA (R2.B) SEÇİN)

    (Rl.R3'TEN Rl.A'yı SEÇİN

    NEREDE Rl.C = R3.D VE Rl.K = R3.L)

    R3 = R2.D, L AVG (R2.B) SEÇİN

    Sorgu iyileştiricide bu yaklaşımı kullanırken, resmi sorgu dönüşümleri gerçekleştirmek gerekli değildir. Optimize edici, işlenmekte olan sorgunun anlamını daha fazla kullanmalıdır ve nasıl tanınacağı bir teknik meselesidir.

    Kısaca açıkladığımız yaklaşımda bazı ince anlamsal kusurlar olduğuna dikkat edin. Düzeltilmiş yöntemler bilinmektedir, ancak teknik olarak bu kılavuzda ele alınamayacak kadar karmaşıktırlar.

    Anlamsal sorgu optimizasyon yöntemleri

    Daha önce ele alınan yöntemler hiçbir şekilde belirli bir veritabanının anlambilimiyle ilgili değildir; belirli içeriğine bakılmaksızın herhangi bir veritabanına uygulanabilirler. Semantik optimizasyon yöntemleri, tam olarak belirli bir veri tabanının semantiğini dikkate almaya dayanır. Çeşitli uygulamalarda bu tür birçok yöntem olabilir, sadece bazılarına değineceğiz:

    Semantik bilgileri dikkate alarak isteklerin dönüştürülmesi.Bu öncelikle görünümlerde gerçekleştirilen sorgular için geçerlidir. Görünümün kendisi bir sorgudur. Veritabanında görünüm, derlenmiş bir sorgu yürütme planı biçiminde saklanır, yani zaten tüm yüklemleri ve sorgu yürütme planının kendisini bir tür kanonik biçimde içerir. Harici bir sorgu dönüştürülürken, dış sorgu, görünümün temelini oluşturan sorgunun iç formuyla birleştirilir ve her iki sorguyu birleştiren genelleştirilmiş bir kanonik form oluşturulur. Bu ganimet formu için yüklemlerin analizi ve dönüşümü yapılır. Bu nedenle, bir görünümde bir sorgu yürütüldüğünde, genelleştirilmiş sorgu parametreleri tarafından optimize edilmiş iki değil, yalnızca bir sorgu yürütülür.

    İstekleri Ayrıştırırken Bütünlük Kısıtlamalarını Kullanma.Bütünlük kısıtlamaları, tablo sütun değerlerine uygulanan koşullarla ilgilidir. Tablolarda sorgular yürütüldüğünde, sorgu koşulları tablo kısıtlama koşullarıyla özel bir şekilde birleştirilir ve ortaya çıkan genelleştirilmiş yüklemler zaten analiz edilir. Diyelim ki kütüphanemizde 100 yaşından büyük okuyucular arıyoruz, ancak OKUYUCULAR tablosunda okuyucularımızın doğum tarihini kısıtlayan bir kısıtlama varsa, böylece okuyucunun doğum tarihi 17 ila 100 yaş arasında olsun. Bu nedenle, sorgu iyileştirici, bu iki yüklemi karşılaştırarak, sorgu sonucunun boş küme olacağını hemen belirleyebilir.

    Optimizasyondan sonra, sorgu prosedürel olmayan bir forma sahiptir, yani kaynak nesneler üzerinde temel işlemleri gerçekleştirmek için katı bir sıra tanımlamaz. Bir sonraki aşamada, olası tüm sorgu yürütme planları oluşturulur ve her biri için maliyet tahminleri yapılır. Sorgu yürütme planlarının değerlendirilmesi, veritabanı ilişkilerinde depolanan mevcut veri hacimlerinin analizine ve depolanan bilgilerin istatistiksel analizine dayanır. Çoğu DBMS, her bir aralık için bir yüzde ile birlikte bir dizi bireysel sütun değerini takip eder. Bu nedenle, bir sorgu planı oluştururken, DBMS ara ilişkilerin miktarını tahmin edebilir ve sorgu yürütmenin ilk aşamalarında ara ilişkilere dahil edilen satır sayısını en aza indirecek şekilde bir plan oluşturabilir.

    DBMS motoruna ek olarak, her satıcı, veritabanı yönetimini ve belirli bir sunucu için yeni veritabanı projelerinin ve kullanıcı uygulamalarının geliştirilmesini kolaylaştıran özel araçlar sağlar. Son zamanlarda, neredeyse tüm yardımcı programlar ve araçlar gelişmiş bir grafik arayüze sahiptir.

    Kullanıcılar, uygulama geliştirmek için yalnızca veritabanı sunucusuyla sağlanan araçları değil, aynı zamanda üçüncü taraf satıcıların araçlarını da kullanabilir. Bu nedenle ülkemizde, çeşitli veritabanı sunucuları için uygulamalar geliştirmenize olanak tanıyan Delphi araç ortamı çok popüler hale geldi. Yurtdışı

    hızlı uygulama geliştirme aracı sistemleri popülerdir

    (RAF Rapid Application Foundation) Gelişmiş Bilgi Sistemi ürünleri,

    Power Soft'tan Power Builder araç seti, Power Soft'tan SQL Windows sistemi

    Depolara ve veritabanlarına yönelik saldırılar, işletmeler ve kuruluşlar için en tehlikeli olanlar arasındadır. Infowatch istatistiklerine göre, son yıllarda dünyadaki veri sızıntılarının sayısı istikrarlı bir şekilde artarken, 2015 yılında bunların yüzde otuzundan fazlası dış ihlaller ve altmıştan fazlası ise kuruluş çalışanlarının katılımıyla gerçekleştirildi. Bazı durumlarda sızıntının çalışanın yasal erişime sahip olduğu verileri içerdiğini varsaysak bile, her üç vakadan biri harici bir saldırıydı. Verilerde verilen verilere göre on milyondan fazla kayda sahip sekiz sızıntıdan yedisinin dış saldırılara düştüğünü de belirtmek gerekiyor.

    Saldırganlar, dahili operasyonel bilgiler, çalışanların kişisel verileri, finansal bilgiler, müşteriler / müşteriler hakkında bilgiler, fikri mülkiyet, pazar araştırması / rakip analizi, ödeme bilgileri gibi bilgilerle ilgilenir. Bu bilgiler nihayetinde kurumsal depolarda ve çeşitli boyutlardaki veritabanlarında saklanır.

    Tüm bunlar, yalnızca iletişimin, işletim sistemlerinin ve diğer altyapı öğelerinin değil, aynı zamanda bir saldırganın önündeki başka bir engel olarak veri depolamanın da korunmasını sağlama ihtiyacına yol açar. Bununla birlikte, bugüne kadar, veritabanı güvenliği alanındaki çalışmalar, temel olarak mevcut ve zaten bilinen güvenlik açıklarının üstesinden gelmeyi, temel erişim modellerini uygulamayı ve belirli bir DBMS'ye özgü sorunları dikkate almayı amaçlamaktadır. Bu çalışmanın amacı, yeni tehditler, bilgi güvenliğinin geliştirilmesindeki genel eğilimler ve veri depolarının artan rolü ve çeşitliliği ışığında çeşitli veritabanlarının güvenlik sorunlarının kapsamlı bir şekilde gözden geçirilmesi ve sistemleştirilmesidir.

    Entegre veri tabanı güvenliği sorunları araştırmacıların dikkatini çekiyor, hem Rusya'da hem de yurtdışında her yıl bir dizi çalışma onlara ayrılıyor. Klasik eser gibi çalışmalar not edilebilir. DBMS'nin gizliliğini, bütünlüğünü ve kullanılabilirliğini sağlamaya, saldırıları önlemeye, tespit etmeye ve yok saymaya yönelik yaklaşımları tartışır. Bir ilişkisel sunucuya zorunlu ve rol tabanlı isteğe bağlı erişim sağlamaya yönelik yaklaşımlar önerilmiştir. Bu konu, erişim ayırma, ayrıcalıklar, denetim ve veri şifrelemenin yanı sıra tetikleyiciler, görünümler ve saklı yordamlar gibi güvenli erişim sağlamak için yerleşik mekanizmaları kullanma sorunlarına değinen çalışmalar tarafından geliştirilmiştir. Bunları özetleyen çalışma, güvenlik yaklaşımlarının gelişimini tarihsel bir bakış açısıyla özetlemektedir.

    Modern araştırma alanlarını kapsayan yabancı eserler arasında not edilebilir. Rus araştırmacıların çalışmaları, örneğin DBMS güvenliğinin dar sorunlarına ayrılmıştır.

    Monograflara da dikkat edilmelidir. Ancak, bu çalışmalar ve özellikle iyi bilinen öğretim yardımcıları ve materyalleri de yukarıdaki konuların ötesine geçmez veya örneğin belirli bir VTYS'nin özelliklerini yansıtır.

    Eserde de benzer bir durum gözlemlenebilir. STIG, bilinen güvenlik sorunlarını ve DBMS yazılımının seviye sertifikasyonuna yönelik kriterleri içerir, yazılım güvenliğini bilinen tehditlere dayalı olarak değerlendirir, saklanan verilerin özelliklerini hesaba katmaz.

    Bu nedenle, DBMS güvenliği alanındaki günümüz araştırmaları, sorunun bütüncül bir şekilde ele alınmasından ziyade, koruma sistemleri ve yazılım çözümlerinin bilgi güvenliği (örneğin) için modern gereksinimleri karşılamayan gizlilik, bütünlük ve veri kullanılabilirliği kavramının belirli koruma yöntemleri bağlamında geliştirilmesi ile sınırlıdır. Aynı zamanda, ilgili yazılımın tüm sınıfına değil, genellikle belirli yazılım ürünlerine ayrılmıştır.

    Veritabanı güvenlik sistemlerinin evrimi

    Tarihsel olarak, veritabanı güvenlik sistemlerinin gelişimi, depoların kendilerinin (DB) evrim aşamalarına ve artan tehditlerin türü ve türündeki değişikliklere uygun olarak davetsiz misafirlerin eylemlerine bir tepki olarak gerçekleşti. Bu değişiklikler, veritabanının anabilgisayar çözümlerinden bulut depolamaya genel evriminden kaynaklandı.

    Mimari açısından, aşağıdaki yaklaşımlar ayırt edilebilir:

    Tüm kullanıcılar için veritabanı sunucusuna tam erişim;

    DBMS (veritabanı yönetim sistemleri) aracılığıyla kullanıcıların güvenilir ve kısmen güvenilir olarak ayrılması;

    DBMS kullanarak bir denetim sisteminin (kullanıcı eylemlerinin günlükleri) tanıtılması;

    Veri şifrelemeye giriş; DBMS dışından işletim sistemlerine ve ara katman yazılımlarına kimlik doğrulama araçlarının kaldırılması; tamamen güvenilir bir veri yöneticisini devre dışı bırakmak.

    Bununla birlikte, tehditlere bir yanıt olarak koruma araçlarının getirilmesi, yeni saldırı yöntemlerine karşı koruma sağlamaz ve güvenlik sorununun kendisinin parçalanmış bir görünümünü oluşturur. Bir yandan büyük şirketler ürünlerine yeterli sayıda güvenlik aracı tahsis edebilirken, öte yandan bu nedenle çok sayıda heterojen çözüm var, entegre veri güvenliği anlayışı yok (ve bileşenleri üreticiden üreticiye değişiyor), veri depolama güvenliğine yönelik ortak, birleşik bir yaklaşım ve sonuç olarak fırsatlar yok. Gelecekteki saldırıların tahmin edilmesi ve koruyucu mekanizmaların olası gelişimi daha zor hale geliyor, birçok sistem için uzun süredir bilinen saldırıların önemi önemini koruyor ve güvenlik uzmanlarının eğitimi daha karmaşık hale geliyor.

    Gelişmiş koruma (saldırganın önünde) için yazılım araçlarının geliştirilmesi, makalenin yazarlarına şu anki aşamada en acil görevler gibi görünen böyle bir teknolojinin tanıtılma olasılığının sağlanmasıdır.

    Modern Veritabanı Güvenliği Sorunları

    Bugün geçerli olan ana veri ambarı güvenlik açıklarının listesi, son beş yılda önemli ölçüde değişmedi. DBMS güvenlik araçlarını, veritabanı mimarisini, arayüzleri, bilinen güvenlik açıklarını ve güvenlik olaylarını analiz ettikten sonra, bu durumun aşağıdaki nedenlerini belirleyebiliriz:

    Güvenlik sorunları, yalnızca büyük üreticiler tarafından, öncelikle veri depolama hatlarının önde gelen ürünlerinde ciddi şekilde ele alınır;

    Veritabanı programcıları, uygulama programcıları ve veritabanı yöneticileri güvenlik konularına gereken özeni göstermezler;

    Farklı ölçekler ve saklanan veri türleri, güvenlik için farklı yaklaşımlar gerektirir;

    Farklı DBMS'ler, aynı model etrafında düzenlenen verilere erişmek için farklı dil lehçeleri kullanır;

    Yeni veri depolama türleri ve modelleri ortaya çıkıyor.

    Oracle'dan bir ürün grubu örneğini kullanarak bu hükümleri daha ayrıntılı olarak ele alalım. Oracle Database Server DBMS, temel ve ek modüller içeren ve kayıt ve veri maskeleme düzeyine erişim granülasyon araçlarını içeren oldukça gelişmiş bir güvenlik sistemine sahiptir. MySQL DBMS ürününün böyle bir güvenlik düzeyine sahip olamayacağını unutmayın. MySQL hem e-ticaret hem de devlet veritabanlarında yaygın olarak kullanılan bir DBMS olduğu için bu oldukça ciddi bir sorundur.

    Çalışmalarda tanımlanan (örneğin, içinde) birçok güvenlik açığı, veritabanı sistem yöneticilerinin güvenlik sorunlarına dikkatsizliği veya bilgisizliği nedeniyle ilgili olmaya devam ediyor. Örneğin, iyi bilinen basit SQL enjeksiyon teknikleri, sorgu giriş verilerinin kontrolüne dikkat etmeyen çeşitli web ve diğer uygulamalarla ilgili olarak günümüzde yaygın olarak kullanılmaktadır. Bunun nedenleri, hem DBMS yöneticilerinin ve uygulama programcılarının farkındalık veya dikkat eksikliği hem de çoğu DBMS'de bilinen güvenlik açıkları için yerleşik denetimlerin olmamasıdır. Bu tür tehditlerin kontrolünü otomatikleştirmek ve sunucu düzeyine aktarmak iyi bir çözüm olabilir, ancak dil lehçelerinin çeşitliliği buna izin vermez.

    Ayrıca, çeşitli bilgi güvenliği araçlarının kullanılmasının kuruluş için finansal bir taviz olduğu unutulmamalıdır: daha güvenli ürünlerin piyasaya sürülmesi ve daha kalifiye personelin işe alınması maliyetlidir. Ayrıca güvenlik bileşenleri, işlem tutarlılığı düzeyleri gibi veritabanı yönetim sistemlerinin performansını olumsuz etkileyebilir. ACID modeline tam uyum, çok kullanıcılı çalışmalarda bütünlüğü sağlamanın en yavaş yoludur. Verileri maskelemek veya erişim güvenliği kontrolleri yapmak gibi yaklaşımlar da işleri yavaşlatır.

    Bu durumun bir başka nedeni de VTYS sorgulama dili diyalektlerinin parçalanmış olmasıdır. Gelişen SQL standardının (SQL-92, SQL-99, SQL-2003, SQL-2008) varlığına rağmen yalnızca iyi bilinen ilişkisel DBMS'yi ele alırsak, büyük üreticiler bile yalnızca kendi dil uzantılarını kullanmakla kalmaz, aynı zamanda standardın kabul edilen sürümünü operasyonun sonuna kadar desteklemez. Bu gerçek, sunucu düzeyinde birleşik veritabanı koruma mekanizmalarının geliştirilmesini zorlaştırır.

    Yukarıdaki sorunlar, farklı bir veri modeliyle çalışan, ancak geleneksel, ilişkisel sunucularla aynı ilkeler üzerine inşa edilmiş ve benzer bir amaca sahip olan ilişkisel olmayan veri ambarlarının ve DBMS'nin ortaya çıkması ve yaygınlaşmasıyla daha da artmaktadır. Aslında, modern sözde NoSQL (ilişkisel olmayan) çözümlerin çeşitliliği, kullanılan çeşitli veri modellerine yol açar ve bir veritabanı kavramının sınırlarını bulanıklaştırır.

    Bu sorunların ve tek tip yöntemlerin bulunmamasının sonucu, NoSQL sistemlerinin mevcut güvenlik durumudur. Bu çözümler piyasada yenidir ve daha olgun ilişkisel muadillerinin "hatalar ve güvenlik açıkları" yolundan henüz geçmemiştir. Çoğu NoSQL sistemi, yalnızca şifreleme, veri bütünlüğü desteği ve veri denetimi gibi genel kabul görmüş güvenlik mekanizmalarından değil, aynı zamanda gelişmiş kullanıcı kimlik doğrulama araçlarından da yoksundur.

    Bir koruma nesnesi olarak veritabanı sistemlerinin özellikleri

    DBMS'nin geleneksel görüşünün sınırlarını bulanıklaştıran ilişkisel olmayan depolama alanında yeni çözümlerin ortaya çıkmasıyla bağlantılı olarak (örneğin, MemcasheDB veya Hadoop HDFS bellek içi veri önbelleğe alma sistemi), DBMS'yi dosya depolama ve diğer yazılım ürünlerinden ayıran işlevleri tanımlayacağız. Bu damarda, birkaç işaret vurgulanır. RAM'de veri depolayan bellek içi DBMS'nin ve veriler üzerindeki tüm işlemlerin aktif olarak geliştirilmesi nedeniyle, ilk işareti yeniden formüle ederek - "mantıksal olarak tutarlı bir dosya kümesini koruma", bu kriterleri aşağıdaki baskıda sunuyoruz:

    Mantıksal olarak tutarlı bir veri kümesinin sürdürülmesi;

    Bir veri işleme dili sağlamak;

    Çeşitli arızalardan sonra bilgilerin kurtarılması;

    Birkaç kullanıcının (işlemlerin) gerçek paralel çalışması.

    Bu yaklaşımı kullanarak, DBMS'yi dosya sistemlerinden ve diğer yazılım türlerinden ayırmak mümkündür.

    Veritabanı sistemlerinin diğer uygulama yazılımı türlerinden ayırt edici bir özelliği, ikili yapılarıdır (yalnızca bilgi güvenliğine göre değil). Bu bakış açısından, DBMS iki bileşen içerir: depolanan veriler (veritabanının kendisi) ve kontrol programları (DBMS).

    Özellikle saklanan bilgilerin güvenliğinin sağlanması, güvenli veri yönetimi sağlanmadan imkansızdır. Bu konsepte dayanarak, tüm DBMS güvenlik açıkları ve güvenlik sorunları iki kategoriye ayrılabilir: veriye bağlı ve veriden bağımsız.

    Veriden bağımsız güvenlik açıklarının (yapıları, organizasyonları vb.) diğer tüm yazılım türleri için tipik olduğunu unutmayın. Bu grup, zamansız yazılım güncellemelerini veya kullanılmayan işlevlerin varlığını içerir.

    Güvenliğin çok sayıda yönü verilere bağlıdır (bir dereceye kadar). Özellikle, DBMS'ye özgü problemler olarak adlandırılan mantıksal çıkarım ve veri toplama mekanizmaları doğrudan bağımlı olarak adlandırılabilir. Aynı zamanda, birçok güvenlik açığı dolaylı olarak verilere bağlıdır. Örneğin, modern DBMS'ler (hem ilişkisel hem de ilişkisel olmayan çözümler dahil), bir tür sorgulama dili kullanan veriler üzerinde sorguları destekler. Buna karşılık, özel sorgulama dilleri ​​(SQL, CQL, OQL ve diğerleri), kullanıcı tarafından erişilebilen işlev grupları (bunlar da sorgu dili operatörleri olarak kabul edilebilir) veya bir programlama dilinde (çoğunlukla Java) keyfi işlevler bu kapasitede kullanılır. Verilerle çalışmak için genelleştirilmiş arayüzler şekilde gösterilmiştir.

    Kullanılan dillerin mimarisi, en azından özel diller (sorgular) ve özellik kümeleri söz konusu olduğunda, bilgileri depolamak için kullanılan veri modeliyle doğrudan ilgilidir. Böylece model, dilin özelliklerini, dilin özellikleri de dildeki belirli güvenlik açıklarının varlığını belirler. Ayrıca, genel türdeki güvenlik açıkları, örneğin bir enjeksiyon (enjeksiyon ile, DBMS sunucusunu meşru olmayan bir dizi eylem gerçekleştirmeye zorlayan giriş isteklerini değiştirerek veritabanına yapılan bir saldırıyı kastediyoruz), yukarıda bahsedildiği gibi kısmen veri modeli tarafından belirlenen ve bu nedenle veriye bağlı bir bileşen olan dilin sözdizimine ve semantiğine bağlı olarak farklı şekilde gerçekleştirilir (SQL enjeksiyonu, JAVA enjeksiyonu).

    Veritabanı güvenlik gereksinimleri

    Böylece, güvenlik açıklarının ayrılmasına dayalı olarak, bilgi depoları için veriye bağımlı ve veriden bağımsız güvenlik önlemleri arasında ayrım yapmak mümkündür. Güvenli bir veritabanı sistemi için aşağıdaki gereksinimler veriden bağımsız olarak adlandırılabilir.

    · Güvenilir bir ortamda çalışmak.

    Güvenilir, güvenlik politikasını ihlal etmeden bilgilerin işlenmesini sağlayan bir dizi koruyucu mekanizmayı bütünleştiren bir bilgi ortamı olarak anlaşılmaktadır. Bu durumda, VTYS'nin uygun veri alışverişi yöntemleriyle güvenilir bir bilgi sisteminde çalışması gerekir.

    · Veri dosyalarının fiziksel güvenliğinin organizasyonu.

    Çeşitli DBMS veri modellerinde kullanılan veri yapıları, veri dosyalarının şifrelenmesinde ve korunmasında önemli olabileceğinden, bu konu daha detaylı bir çalışma gerektirmektedir. Bununla birlikte, ilk yaklaşımda, veri dosyalarının fiziksel güvenliği konusu, diğer herhangi bir kullanıcı ve uygulama dosyasının fiziksel güvenliği konusuna benzer.

    · Güvenli ve güncel DBMS ayarlarının organizasyonu.

    Bu özellik, güncellemelerin zamanında yüklenmesi, kullanılmayan modüllerin devre dışı bırakılması veya etkili bir parola politikası uygulanması gibi genel güvenlik sorunlarını içerir.

    Aşağıdaki gereksinimler veriye bağlı olarak adlandırılabilir.

    · Kullanıcı yazılımı katmanının güvenliği.

    · Güvenli veri organizasyonu ve manipülasyonu.

    Veri organizasyonu ve yönetimi konusu, bilgi depolama sistemlerinde anahtardır. Listede son sırada yer almasına rağmen bu alan, bütünlük denetimi, çıkarım koruması ve diğer DBMS'ye özgü güvenlik sorunları ile veri organizasyonunu içerir. Aslında, bu görev, verilere bağlı güvenlik açıklarının ana havuzunu ve bunlara karşı korumayı içerir.

    Güvenli veritabanları oluşturmanın yolları

    DBMS'nin bilgi güvenliğini sağlamaya yönelik bu sorunların üstesinden gelmek için, güvenlik açıklarını kapatma yönteminden bilgi depolarının güvenliğini sağlamaya yönelik entegre bir yaklaşıma geçmek gerekir. Yazarlara göre bu geçişin ana aşamaları aşağıdaki hükümler olmalıdır.

    1. Mevcut aşamada veri ambarlarının güvenliğini sağlamak için karmaşık yöntemlerin geliştirilmesi.

    Karmaşık metodolojilerin oluşturulması, bunların (veya karşılık gelen versiyonlarının) veri ambarlarının ve kullanıcı yazılımlarının geliştirilmesinde uygulanmasına izin verecektir. Bu tür belgelerin oluşturulmasının temeli, örneğin veya gibi sorunları genelleştiren çalışmalar olabilir. Kapsamlı bir metodolojiyi takip etmek, birçok DBMS yönetim hatasından kaçınmanıza ve kendinizi günümüzün en yaygın güvenlik açıklarından korumanıza olanak tanır.

    2. DBMS tehditlerinin ve güvenlik açıklarının değerlendirilmesi ve sınıflandırılması.

    DBMS tehditlerinin ve güvenlik açıklarının özel bir sınıflandırması, bunların sonraki analiz ve koruma için düzenlenmesini mümkün kılacak ve güvenlik açıkları ile oluşum nedenleri (kaynakları) arasındaki ilişkiyi kurmayı mümkün kılacaktır. Sonuç olarak, VTYS'ye belirli bir mekanizma getirildiğinde, bununla ilişkili tehditlerin tanımlanması, tahmin edilmesi ve uygun güvenlik araçlarının önceden hazırlanması mümkün olacaktır.

    3. Standart (değişiklik yapmadan veya minimum değişiklikle çeşitli VTYS'lere uygulanabilir) güvenlik mekanizmalarının geliştirilmesi.

    Verilerle çalışmak için yaklaşımların ve dillerin standardizasyonu, farklı DBMS'lere uygulanabilen çok platformlu güvenlik araçları oluşturmayı mümkün kılacaktır. Bir yandan, bunlar veri modeli içinde uygulanabilir metodolojik ve teorik yaklaşımlardır. Bugüne kadar, ilişkisel modele göre bu tür mekanizmalarda gelişmeler var, ancak bunlar tüm acil güvenlik sorunlarını çözmüyor. Öte yandan, yeni DBMS için teorik bir temelin geliştirilmesi, özellikle toplu veri modellerinin spesifikasyonu ve biçimlendirilmesidir. Hazır yazılım araçlarının görünümü büyük ölçüde DBMS üreticilerine ve geliştiricilerine ve bunların standartlara bağlılığına ve standartta tanımlanan gelişmiş güvenlik mekanizmaları oluşturmak için tanımlanan araçların yeterliliğine bağlıdır.

    4. Veri depolama ve işleme sistemlerinin bilgi koruması için teorik bir temelin geliştirilmesi.

    Yukarıda veri ambarlarına özgü bir dizi karakteristik özellik belirtilmiştir: bir DBMS'nin ikili doğası, güvenlik açıklarının ve kontrol mekanizmalarının verilere ve bunların organizasyonunu tanımlayan modele bağımlılığı, çıkarım tehditleri ve veri kombinasyonlarının farklı önemi. Tüm bunlar, DBMS güvenliğinin özel doğasını belirler ve bu tür yazılım sistemlerinde veri korumasını sağlamak için yeni teorik yaklaşımlar gerektirir. Ayrı bir büyük sorun, veri modelinin resmileştirilmesi bağlamında teorik bir temelin geliştirilmesi ve ayrıca yeni NoSQL depoları için bilgi bütünlüğünü sağlamaya yönelik yaklaşımların geliştirilmesidir.

    Yukarıdakilere dayanarak, aşağıdaki sonuçları çıkarıyoruz. Makale, Rus ve yabancı çalışmaların yanı sıra DBMS pazarındaki durumun dikkate alınmasının bir sonucu olarak, güvenliği sağlamaya yönelik mevcut yaklaşımı, veritabanı sistemlerinin ilkesini ve ana evrim aşamalarını vurgulamaktadır. Modern DBMS'nin bilgi güvenliği sorunları formüle edilmiştir: çeşitli dil araçları, teorik bir temel tarafından desteklenmeyen yeni veri modellerinin ortaya çıkması, güvenlik ve maliyeti arasında bir denge bulma ihtiyacı, fon ve prestij kaybına bir yanıt olarak koruma sistemlerinin geliştirilmesi ve ayrıca güvenlik konularına genel bir dikkat eksikliği.

    Yeni küme ve bellek çözümlerinde, bu yazılım sınıfının bilgi güvenliği açısından özellikleri dikkate alınarak DBMS'yi benzer yazılım ürünlerinden ayıran kriterler formüle edilmiştir ve güvenlik açıklarının verilere bağımlı ve bağımsız olarak temel bir bölümü ve bunların organizasyonu önerilmiştir.

    Sonuç olarak, veri tabanı güvenliği için genel gereksinimler, bilgi işleme için güvenilir ve güvenli sunucular oluşturmak için koruma sistemlerinin araştırma ve geliştirmesinin umut verici yolları formüle edilmiştir. Yöntem geliştirme ve koruma mekanizmalarını standartlaştırma şeklinde mevcut yaklaşımların hem sistematikleştirilmesini hem de geliştirilmesini ve ayrıca yeni araştırma alanlarını, örneğin DBMS güvenlik açıklarının sınıflandırılmasını ve yeni veri modellerinin resmileştirilmesini, tahmine dayalı koruma araçlarının oluşturulmasını içeriyordu.

    Edebiyat

    1. 2015'in ilk yarısı için bilgi sızıntılarının incelenmesi. URL: http://www.infowatch.ru/analytics/reports/16340 (erişim tarihi: 26.02.2016).

    2. İşletmenin bilgi güvenliği. İş bilgi güvenliğindeki mevcut eğilimlerin incelenmesi. 2014. URL: http://media.kaspersky.com/pdf/IT_risk_report_Russia_2014.pdf (26.02.2016 tarihinde erişildi).

    3. Sandhu Ravi S., Jajodia Sushil. Veri ve veritabanı güvenliği ve kontrolleri. Bilgi Güvenliği Yönetimi El Kitabı, Auerbach Publishers, 1993, s. 181-199.

    4. Qiu M., Davis S. Veritabanı güvenlik mekanizmaları ve uygulaması. IACIS, Bilgilendirmedeki Sorunlar. Sist. 2002, cilt. 03, s. 529-534.

    5. Lesov P. Veritabanı güvenliği: tarihsel bir bakış açısı. 2010. URL: http://arxiv.org/ftp/arxiv/papers/1004/1004.4022.pdf (26.02.2016 tarihinde erişildi).

    6. Burtescu E. Veritabanı güvenliği - saldırılar ve kontrol yöntemleri. Günlük of Applied Quantitative Methods, 2009, vol. 4, hayır. 4, s. 449-454.

    7. Rohilla S., Mittal P.K. Veritabanı Güvenliği: Konular ve Zorluklar. Stajyer. Günlük of Advanced Research in Computer Science and Software Engineering, 2013, vol. 3, s. 5, s. 810-813.

    8. Potapov A.E., Manukhina D.V., Solomatina A.S., Badmaev A.I., Yakovlev A.V., Nilova A.S. SQL Server Compact // Vestn örneğinde yerel veritabanlarının güvenliği. Tambov. Üniversite Seri: Doğal ve teknik bilimler. 2014. Sayı 3. S. 915-917.

    9. Bortovchuk Yu.V., Krylova K.A., Ermolaeva L.V. Modern veritabanı yönetim sistemlerinde bilgi güvenliği // Ekonomik ve sosyal kalkınmanın modern sorunları. 2010. Sayı 6. S. 224-225.

    10. Gorbachevskaya E.N., Kat'yanov A.Yu., Krasnov S.S. Oracle DBMS // Vestn kullanarak bilgi güvenliği. VUiT. 2015. 2 (24). 72-85.

    11. Tkachenko N.O. MySQL DBMS güvenlik monitörünün dbf/dam sistemlerinde uygulanması // PDM. Başvuru. 2014. Sayı 7. S. 99-101.

    12. Poltavtseva M.A. Microsoft SQL Server örneğinde RDBMS'deki verilere erişim haklarını saklama sorunu // Temel ve uygulamalı araştırmanın gerçek yönleri: mater. Stajyer V. bilimsel-pratik. konf. 2015 S. 118-120.

    13. Baranchikov A.I., Baranchikov P.A., Pylkin A.N. Veritabanı kayıtlarına erişim algoritmaları ve modelleri. M.: Hotline-Telecom, 2011. 182 s.

    14. Polyakov A.M. Bir denetçinin gözünden Oracle güvenliği: saldırı ve savunma. M.: DMK Yayınları, 2014. 336 s.

    15. Smirnov S.N. Veritabanı sistemleri güvenliği. M.: Helios ARV, 2007. 352 s.

    16Murray M.C. Veritabanı güvenliği: öğrencilerin bilmesi gerekenler. JITE:IIP, cilt. 9, 2010, s. 61-77.

    17. Veritabanı Güvenliği Teknik Uygulama Kılavuzu (STIG). ABD Savunma Bakanlığı. Vers. 7. Sürüm 1. 2004. URL: https://www.computer.org/cms/s2esc/s2esc_excom/Minutes/2005-03/DISA%20STIGs/DATABASE-STIG-V7R1.pdf (26.02.2016 tarihinde erişildi).

    18. Zegzhda P.D. Tek bir bilgi alanı oluşturma koşullarında bilgi güvenliğinin sağlanması // Bilginin korunması. İçeri. 2007. Sayı 4 (16). 28-33.

    19. İlk On Veritabanı Güvenlik Tehdidi. URL: http://www.imperva.com/docs/wp_topten_database_threats.pdf IMPREVA 2015 (26.02.2016 tarihinde erişildi).

    20. Kuznetsov S.D. Veritabanları: öğrenciler için bir ders kitabı. M.: Akademi, 2012. 496 s.

    21. Zegzhda D.P., Kalinin M.O. "Dürüstlük" kavramının genişlemesine dayalı bilgi ortamının vekaletinin sağlanması ve güvenlik yönetimi // Sorunlu bilgilendirme. güvenlik. Bilgisayar sistemleri. 2009. Sayı 4. S. 7-16.

    22. Poltavtseva M.A., Zegzhda D.P., Suprun A.F. Veritabanı güvenliği: ders kitabı. ödenek. St. Petersburg: SPbPU yayınevi, 2015. 125 s.

    Ders çalışması

    Yazılım MDK 02.02.R1. ACCESS VTYS'DE VERİTABANI UYGULAMASI

    KONU ÜZERİNE: "Bir ticaret organizasyonunun veri tabanının tasarlanması"

    Tamamlandı: öğrenci gr. PO-41

    MV Tsatsin

    Başkan: I.I. Shalaeva

    Seviye:__________________

    G. Sterlitamak


    giriş ................................................................................................................................... 3

    Sorun bildirimi................................................................................................................ 5

    1. MS ACCESS'TEKİ VERİTABANLARIYLA İLGİLİ TEMEL KAVRAMLAR................................... 6

    1.1 Veri tabanları ve veri tabanı yönetim sistemleri................................... 6

    1.2. Veri tipleri. 7

    1.3. Veritabanı güvenliği. 8

    2. Veritabanı yapısı................................................................................................ 10

    2.1 Veri Şeması............................................................................................................ 10

    2.2 Tablolar............................................................................................................................ 11

    2.3. Formlar................................................................................................................................... 16

    2.4. İstekler................................................................................................................... 19

    2.5. Raporlar............................................................................................................................ 21

    3. KUŞ BALIKLARININ SATIŞI İLE İLGİLİ TİCARET ORGANİZASYONUNUN VERİTABANININ ÇEŞİTLENMESİ................................................................................................................................... 23

    SONUÇ............................................................................................................ 25

    GİRİİŞ

    Modern bir uzmanın, üretim faaliyetlerinde, ekonomik yönetimde ve siyasette sağlam ve etkili kararlar alabilmesi için, bilgisayar ve iletişim kullanarak verileri alabilmesi, biriktirebilmesi, saklayabilmesi ve işleyebilmesi ve sonucu görsel belgeler şeklinde sunabilmesi gerekir. Modern toplumda bilgi teknolojileri çok hızlı gelişiyor, insan faaliyetinin tüm alanlarına giriyorlar.

    Ekonominin farklı alanlarında, her biri belirli bir faaliyet türüyle ilişkili olan farklı kaynaklardan gelen verilerle çalışmak genellikle gereklidir. Tüm bu verileri koordine etmek için belirli bilgi ve organizasyon becerileri gereklidir.

    Microsoft'un ürünü - Access, farklı kaynaklardan gelen bilgileri tek bir ilişkisel veritabanında birleştirir. Verileri hızlı ve verimli bir şekilde güncellemenize, sorulara yanıt almanıza, ilgili verileri aramanıza, verileri analiz etmenize, raporları, çizelgeleri ve posta etiketlerini yazdırmanıza olanak tanıyan formlar, sorgular ve raporlar oluşturur.



    Bu kursun amacı, Microsoft'un "Microsoft Access" veritabanlarını yönetme ürünündeki bir veritabanının teorisini ve uygulamalı olarak oluşturulmasını ele almaktır: "Bir ticaret organizasyonunun veritabanını tasarlama", kuş-balıkların uygulanmasıyla ilgili.

    Kurs çalışmasının amaçları şunlardı:

    · Bilgileri etkili bir şekilde iletin.

    · Bilgiye erişim sağlayın.

    · Veritabanını yeni verilerle genişletin.

    · Bilgilerin gerçekliğini kontrol edin.

    · Veritabanı erişiminde olası hataları önleyin.

    · Yalnızca iş için gerekli olan bilgilere açık erişim.

    · Bilgileri düzenleme özelliğini yalnızca güvenilen kişilere açın.

    · Raporlamanın yanı sıra bilgilerin düzenlenmesini kolaylaştırın.


    SORUNUN FORMÜLASYONU

    1.1. Aşağıdakileri korumanıza izin veren bir veritabanı (DB) "Ticaret organizasyonu" geliştirin:

    mevcut malların envanteri;

    alıcıların muhasebesi;

    malların teslimatının muhasebeleştirilmesi;

    1.2. İşlevsel kümeye göre veritabanı için temel gereksinimler:

    1.2.1. Ticaret muhasebesi gereklilikleri:

    Türüne göre mal alımı;

    Belirli bir süre için tarihlere göre mal alımı;

    1.2.2. Müşteri Muhasebesi Gereksinimleri

    · Ürünlerin müşterilere teslimine ilişkin veriler;

    · Kuş-balık çeşitleri;

    · Tarihlere göre satın alma raporu;

    · Türlerine göre satın alma raporu.


    MS ACCESS'TE VERİTABANLARIYLA İLGİLİ TEMEL KAVRAMLAR

    Veritabanları ve veritabanı yönetim sistemleri

    Veritabanı, bilgi depolamak için organize bir yapıdır. Modern veritabanları yalnızca verileri değil, bilgileri de depolar.

    Örneğin, kütüphanenin veri tabanını ele alırsak, bu ifadeyi açıklamak kolaydır. Yazarlar, kitaplar, okuyucular vb. hakkında gerekli tüm bilgileri içerir. Bu veri tabanına hem kütüphane personeli hem de yayın bulması gereken okuyucular erişebilir. Ancak aralarında, veritabanının tamamına tam erişimi olan ve aynı zamanda tek başına keyfi değişiklikler yapabilen bir kişi yoktur. Veritabanı, verilere ek olarak, her çalışanın yalnızca kendi yetki alanına giren verilerle çalışmasına izin veren yöntemler ve araçlar içerir. Veritabanında yer alan verilerin belirli çalışanlara sunulan yöntemlerle etkileşiminin bir sonucu olarak, tükettikleri ve kendi yetkileri dahilinde verileri girip düzenledikleri bilgiler oluşur.

    Veritabanı yönetim sistemi kavramı, veritabanı kavramıyla yakından ilgilidir. Bu, yeni bir veritabanının yapısını oluşturmak, onu içerikle doldurmak, içeriği düzenlemek ve bilgileri görselleştirmek için tasarlanmış bir dizi yazılım aracıdır. Veritabanı bilgilerinin görselleştirilmesi, görüntülenen verilerin belirli bir kritere göre seçilmesi, sıralanması, tasarımı ve ardından çıkış cihazlarına verilmesi veya iletişim kanalları aracılığıyla iletilmesi olarak anlaşılmaktadır.

    Dünyada birçok veri tabanı yönetim sistemi bulunmaktadır. Farklı nesnelerle farklı şekillerde çalışabilmelerine ve kullanıcıya farklı işlevler ve araçlar sunabilmelerine rağmen, çoğu DBMS, tek bir köklü temel kavramlar grubuna güvenir. Bu bize bir sistemi ele alma ve kavramlarını, tekniklerini ve yöntemlerini tüm DBMS sınıfına genelleme fırsatı verir. Böyle bir eğitim nesnesi olarak, Microsoft Office paketinin bir parçası olan Microsoft Access DBMS'yi seçeceğiz.

    Veri tipleri

    Veritabanı tabloları, çok daha fazla sayıda farklı veri türünü işleme eğilimindedir. Örneğin, Microsoft Access veritabanları aşağıdaki veri türleriyle çalışır.

    · Metin, sınırlı boyutta (en fazla 255 karakter) biçimlendirilmemiş normal metni depolamak için kullanılan bir veri türüdür.

    · Nümerik – gerçek sayıları saklamak için veri tipi.

    · Not alanı, büyük miktarda metin (en fazla 65.535 karakter) depolamak için özel bir veri türüdür. Metin fiziksel olarak alanda saklanmaz. Veritabanında farklı bir yerde saklanır ve ona bir işaretçi alanda saklanır, ancak böyle bir ayrım kullanıcı tarafından her zaman fark edilmez.

    · Tarih/saat – takvim tarihlerini ve geçerli saati saklamak için veri tipi.

    · Parasal - parasal miktarları saklamak için veri türü. Teorik olarak, bunları kaydetmek için sayısal türdeki alanlar da kullanılabilir, ancak parasal tutarlar için sayısal bir tür belirlemek yerine özel bir veri türü kullanmayı daha uygun hale getiren bazı özellikler (örneğin, yuvarlama kurallarıyla ilgili) vardır.

    · Sayaç – benzersiz (alanda tekrarlanmayan) doğal sayılar için otomatik artışlı özel bir veri türü. Doğal kullanım, kayıtların sıralı numaralandırılması içindir.

    · Boole - mantıksal verileri depolamak için bir tür (yalnızca iki değer alabilirler, örneğin, Evet veya Hayır).

    · Arama Sihirbazı özel bir veri türü değildir. Bu, alana veri girişini otomatikleştirmek için yapılandırılabilen bir nesnedir, böylece onu manuel olarak girmek yerine bir açılır listeden seçebilirsiniz.

    Veritabanı Güvenliği

    Veritabanları da dosyalardır, ancak onlarla çalışmak, diğer uygulamalar tarafından oluşturulan diğer dosya türleri ile çalışmaktan farklıdır. Yukarıda işletim sisteminin dosya yapısının tüm bakımını üstlendiğini gördük. Veritabanının özel güvenlik gereksinimleri vardır, bu nedenle veri depolamak için farklı bir yaklaşım benimserler.

    Veritabanları özel yapılardır. İçerdikleri bilgiler genellikle kamu değeri taşır. Ülke genelinde binlerce kişinin aynı veri tabanıyla çalışması alışılmadık bir durum değil. Pek çok insanın refahı, bazı veritabanlarında yer alan bilgilere bağlı olabilir. Bu nedenle, veritabanı içeriğinin bütünlüğü, bilgisayarı kapatmadan önce dosyaları kaydetmeyi unutan belirli bir kullanıcının belirli eylemlerine veya elektrik kesintilerine bağlı olamaz ve olmamalıdır.

    Veritabanı güvenliği sorunu, DBMS'nin bilgileri kaydetmek için ikili bir yaklaşım kullanması gerçeğiyle çözülür. Bazı işlemler, her zaman olduğu gibi, bilgisayarın işletim sistemini içerir, ancak bazı kaydetme işlemleri, işletim sistemini atlar.


    Veritabanı yapısı

    Veri Şeması

    Veri şeması, veri erişim sayfası için veri modelini ağaç biçiminde görüntüler. Veri kaynaklarını, alanları ve sayfa kontrollerini saklar. Alan listesi belirli bir sayfanın içeriğini göstermediğinden, sayfanın yapısını tanımak için veri yapısını kullanmak daha iyidir. Ayrıca veri yapısında görüntülenen nesneleri seçebilir, parametrelerini ayarlayabilir, veri kaynakları arasındaki bağlantıları tanımlayabilir ve düzenleyebilir, alanları ve veri kaynaklarını silebilirsiniz.


    Şekil.1 Veri şeması

    Veri şemasının bileşenleri üç tablodur:

    "Adlandırma"

    "Malların teslimi"

    "Alıcılar"


    masalar

    Tablolar, herhangi bir veritabanının temel nesneleridir. İlk olarak, tablolar veri tabanında bulunan tüm verileri saklar ve ikinci olarak, tablolar aynı zamanda veri tabanının yapısını da (alanlar, türleri ve özellikleri) saklar.

    3 tabloyu da tasarım modunda oluşturdum, tüm tablolarda anahtar alan - ÜrünKodu.

    "Kuş balıklarının isimlendirilmesi" tablosunun kurucusu, Şekil 2'de gösterilmektedir.

    Şekil 2 "Kuş balıklarının isimlendirilmesi" tablosunun yapısı


    Şekil 3'te gösterilen "Kuş-balık terminolojisi" tablosu, kuruluşun sahip olduğu tüm aralığı göstermek için tasarlanmıştır.

    Tablo "Kuş balıklarının isimlendirilmesi"


    "Müşteriler" tablosunun yapıcısı Şekil 3'te gösterilmiştir.


    Veritabanı yönetim sistemleri, büyük miktarda bilgiyi depolamak için ana araç haline geldi. Modern bilgi uygulamaları öncelikle çok kullanıcılı DBMS'ye dayanır. Bu bağlamda, bir kuruluşun, bir bütün olarak kurumun güvenlik derecesini belirleyen bilgi güvenliğini sağlama sorunlarına şu anda çok dikkat edilmektedir.

    Bilgi güvenliği, bilginin sahiplerine veya kullanıcılarına zarar verebilecek doğal veya yapay nitelikteki kazara ve kasıtlı etkilerden korunması olarak anlaşılmaktadır.

    Veritabanlarındaki bilgileri korumak için, bilgi güvenliğinin en önemli yönleri (Avrupa kriterleri):

    erişim koşulları (bazı gerekli bilgi hizmetlerini alma yeteneği);

    bütünlük (bilgilerin tutarlılığı, imhaya ve yetkisiz değişikliklere karşı korunması);

    gizlilik (yetkisiz okumaya karşı koruma).

    Bilgi güvenliğini sağlama sorunu karmaşıktır, bu nedenle çözümü farklı düzeylerde düşünülmelidir: yasal, idari, prosedürel ve yazılım ve donanım. Şu anda, bilgi sistemlerinin güvenli kullanımını sağlayan bir yasal çerçeve geliştirme sorunu özellikle Rusya'da şiddetlidir.

    Uygulaması yukarıdaki sorunlardan bazılarını çözecek olan ana yazılım ve donanım önlemleri şunları içerir:

    kullanıcı kimlik doğrulaması ve tanımlaması;

    veritabanı erişim kontrolü;

    veri bütünlüğünü korumak;

    günlük kaydı ve denetim;

    istemci ve sunucu arasındaki iletişimin korunması;

    DBMS'ye özgü tehditlerin yansıması.

    Veritabanı uygulamalarının kullanıcısının kimlik doğrulaması, çoğunlukla işletim sisteminin uygun mekanizmaları aracılığıyla veya belirli bir SQL ifadesi aracılığıyla gerçekleştirilir: kullanıcı, adıyla tanımlanır ve parola, kimlik doğrulama aracı olarak işlev görür. Böyle bir sistem, mükerrer kontroller için önemli zorluklar yaratır ve her işlemden önce bu tür kontrolleri hariç tutar.

    Veritabanı erişim kontrolü, aşağıdaki minimum eylem setinin uygulanmasına dayanır:

    keyfi erişim kontrolü;

    nesnelerin yeniden kullanımının güvence altına alınması;

    güvenlik etiketlerinin kullanımı;

    zorunlu erişim kontrolü.

    Keyfi erişim kontrolü, öznenin kimliğine veya öznenin ait olduğu gruplara dayalı olarak nesnelere erişimi kısıtlama yöntemidir. Bu teknoloji, bir nesnenin (görünüm, veritabanı sunucusu, prosedür, tablo) sahibine, kendi takdirine bağlı olarak ayrıcalıkların başka bir kişiye aktarılmasını sağlar. Bu durumdaki bu kişi bir kullanıcı öznesi, bir kullanıcı grubu olabilir.

    Keyfi erişim kontrolünün ana avantajı esnekliktir. Bununla birlikte, dağınık yönetim ve merkezi kontrolün karmaşıklığı gibi ilişkili özellikler, veri güvenliği için birçok sorun yaratır.

    Denekler tarafından veritabanı yeniden kullanımının güvenliğinin sağlanmasına da dikkat edilmelidir. Bu, kuruluştan ayrılan tüm kullanıcıların bilgi sistemine girme hakkından mahrum bırakılması anlamına gelir.

    Bir güvenlik etiketi iki bölümden oluşur: bir güvenlik düzeyi ve bir kategori listesi. İlk bileşen uygulamaya bağlıdır ve standart durumda çok gizliden gizli olmayana kadar bir dizi değer gibi görünebilir. İkinci bileşen, bilgileri daha iyi güvenliğe katkıda bulunan bölümlere ayırarak konu alanını tanımlamanıza olanak tanır. Güvenlik etiketleri mekanizması iptal etmez, ancak isteğe bağlı erişim kontrolünü tamamlar: kullanıcılar yine de yalnızca ayrıcalıkları dahilinde tablolarla çalışabilir, verilerin yalnızca bir kısmını alabilir. Güvenlik etiketlerini kullanmanın temel sorunu, bütünlüklerini korumaktır. Bu, tüm nesnelerin ve öznelerin etiketlenmesi gerektiği ve etiketlerin veriler üzerindeki herhangi bir işlem için geçerli kalması gerektiği anlamına gelir.

    Zorunlu erişim denetimi, özne ve nesne güvenlik etiketlerinin eşleşmesine dayanır. Bir nesnenin bilgisini okumak için, öznenin etiketi nesnenin etiketine üstün gelmelidir. Bir nesneye bilgi yazma işlemini gerçekleştirirken, nesnenin güvenlik etiketi öznenin etiketine üstün gelmelidir. Bu erişim kontrolü yöntemine zorunlu denir çünkü öznelerin iradesine bağlı değildir. Artan güvenlik önlemleri ile karakterize edilen DBMS'de uygulama buldu.

    Veri bütünlüğünün sağlanması, erişim kontrolünden daha az önemli değildir. DBMS kullanıcılarının bakış açısından, veri bütünlüğünü korumanın ana yolu kısıtlamalar ve kurallardır. Kısıtlamalar doğrudan ilişkisel veri modelinde yer alabilir veya tablo oluşturma sırasında ayarlanabilir. Tablo kısıtlamaları, bir sütun grubuna, bireysel niteliklere atıfta bulunabilir. Referans kısıtlamaları, tablolar arasındaki ilişkilerin bütünlüğünü korumaktan sorumludur. Kısıtlamalar tablonun sahibi tarafından uygulanır ve veriler üzerinde sonraki işlemlerin sonucunu etkiler. Kurallar, belirli veritabanı değişiklikleri meydana geldiğinde belirtilen prosedürleri yürütmenize izin verir. Nispeten basit koşullar üzerinde kontrol sağlayan kısıtlamalardan farklı olarak kurallar, veritabanındaki veri öğeleri arasındaki karmaşıklık ilişkilerini kontrol etmenize ve sürdürmenize olanak tanır. Bununla birlikte, kuralları bir bilgi güvenliği aracı olarak kullanırken, karmaşık bir kurallar sistemindeki bir hata, tüm veritabanı için öngörülemeyen sonuçlarla doludur.

    Günlüğe kaydetme ve denetim aşağıdakilerden oluşur:

    Olağandışı ve şüpheli kullanıcı eylemlerinin tespiti ve bu eylemleri gerçekleştiren kişilerin tespiti;

    ihlalin olası sonuçlarının değerlendirilmesi;

    yardım etmek;

    bilgilerin kullanıcının yasa dışı eylemlerinden pasif olarak korunmasının organizasyonu.

    Bilgi sistemlerinde bir istemci ile bir sunucu arasındaki iletişimin korunması sorunu, bir VTYS'ye özgü değildir. Bilgilerin korunmasını sağlamak için, işlevleri kimlik doğrulama, şifreleme ve yetkilendirmeyi içeren bir güvenlik hizmeti tahsis edilir.

    Ancak, VTYS'ye yönelik tehditlerin ana kaynağı, veritabanlarının doğasında yatmaktadır. Çoğu zaman gerekli, ancak erişilemeyen durum bilgileri çıkarım yoluyla elde edilebilir. Örneğin, (hiçbir hakkı olmayan) seçme işlemi yerine, ekleme işlemi kullanılarak, SQL deyimlerinin tamamlama kodlarını analiz etmek mümkündür. Bu tür tehditlerle mücadele etmek için, güvenlik etiketlerini destekleyen bir DBMS dizi çoğaltma mekanizması kullanılır. Toplama, çeşitli veri tabanı tablolarından yasal olarak elde edilen verileri birleştirerek yeni bilgiler elde etme yöntemidir. Veri modelini dikkatli bir şekilde tasarlayarak ve kullanıcıların bilgilere erişimini mümkün olduğunca sınırlayarak birleştirmeyle mücadele edebilirsiniz.

    • Dudkina Anastasia Sergeyevna, bekar, öğrenci
    • Başkurt Devlet Tarım Üniversitesi
    • KORUMA
    • PHPMYADMIN
    • MySQL
    • VERİ TABANI

    Makale, veritabanı yönetim sistemlerinde (DBMS) depolanan veya işlenen verilerin korunmasına ilişkin ana alanları tartışmaktadır. DBMS'de yerleşik, kullanımı kolay araçlar kullanılarak bilgilerin gizliliğinin ve bütünlüğünün nasıl korunacağını açıklar.

    • Belediye yönetiminde etkileşimin bilgi teknolojileri
    • Genişletilmiş yapıların bazı özellikleri üzerine Bimetrik manifoldların dağılımları üzerine
    • Riemann altı manifoldların dağılımları üzerine genişletilmiş Bi-metrik yapıların bir sınıfında
    • Kabarcık grafiği kullanarak istatistiksel verilerin görsel temsili

    Şu anda, neredeyse hiçbir modern kuruluş, faaliyetlerinde veritabanlarını kullanmadan yapamaz. Veritabanları (DB), herhangi bir şirket için en önemli ve değerli varlıktır. Çok hassas veya gizli bilgiler bir veritabanında saklanabileceğinden, korunması çok ciddiye alınmalıdır. DBMS ve veritabanlarının işleyişindeki herhangi bir arıza, feci sonuçlara yol açabilir.

    Bilgileri korumanın ana yolları şunları içerir:

    • şifre koruması;
    • veritabanı tablolarının alanlarının ve kayıtlarının korunması.
    • veritabanı nesnelerine erişim haklarının oluşturulması;
    • veri ve programların şifrelenmesi;

    Veritabanı koruması iki düzeyde gerçekleştirilir:

    • şifre düzeyinde;
    • kullanıcı düzeyinde (kullanıcı hesaplarının ve tanımlanmış nesnelerin korunması).

    PhpMyAdmin, World Wide Web üzerinden bir MySQL sunucusunu yönetmek için tasarlanmış bir PHP programıdır. phpMyAdmin çok çeşitli MySQL işlemlerini destekler. En sık kullanılan işlemler, kullanıcı arabirimi (veritabanı yönetimi, tablolar, alanlar, ilişkiler, dizinler, kullanıcılar, izinler vb.) aracılığıyla desteklenir ve aynı anda herhangi bir SQL sorgusunu doğrudan çalıştırabilirsiniz.

    Geliştirilen projenin bilgi güvenliğinin sağlanması birkaç düzeyde gerçekleştirilir. İlk seviyede, bilgi koruması, panelin sizden bir kullanıcı adı ve şifre girmenizi istediği kontrol paneli girişinden başlayarak phpMyAdmin sisteminin kendisi tarafından sağlanır.

    Bir sonraki koruma düzeyi, erişim haklarını da sınırlandıran MySQL DBMS tarafından sağlanır.


    Şekil 2. Hesaplara genel bakış

    Ayrıca, sadece veri tabanı yönetim sisteminin kendisine değil, ayrıca veri tabanlarına, veri tabanı tablolarına, belirli tabloların kayıtlarına ve hatta tablo veya kayıt alanı değerlerine erişimi kısıtlamak da mümkündür. Yerleşik şifreleme işlevlerinin tüm DBMS'de mevcut olmadığına dikkat edilmelidir. Bu nedenle, bu yöntem evrensel olarak adlandırılamaz. Bu DBMS, biri DES algoritmasını uygulayan ve diğeri - AES olmak üzere iki özdeş şifreleme işlevi seti sunar. Ek olarak, MySQL birkaç karma algoritma uygular. Bu DBMS'nin şifreleme işlevleri kümesi şöyle görünür:

    Tablo 1. VTYS'nin kriptografik işlevleri

    AES veri şifreleme işlevleri 128 bitlik bir şifreleme anahtarı kullanır, yani MySQL'de AES 192 ve 256 bitlik anahtarlarla şifreleme uygulanmaz. Şifreleme anahtarı, işlev parametrelerinden biri olarak açıkça belirtilir. Buna karşılık, TripleDES algoritmasını kullanarak şifreleme yapan DES_ENCRYPT() ve DES_DECRYPT() işlevleri, şifreleme anahtarını açıkça belirtmenin yanı sıra, numaralandırılmış anahtar değerleri içeren bir anahtar dosyası biçimindeki en basit anahtar yönetimi seçeneğine izin verir. Ancak bu işlevler varsayılan olarak devre dışıdır; bunları kullanmak için DBMS yapılandırmasında SSL protokol desteğini etkinleştirmeniz gerekir.

    ENCRYPT() işlevi, verileri crypt() sistem çağrısını kullanarak şifrelediği için yalnızca Unix işletim sistemlerinde kullanılabilir. Kullanılan hash işlevlerine gelince, MySQL belgeleri, temeldeki algoritmaların saldırıya uğradığı konusunda uyarır (ayrıntılar özellikle içine yazılır, bu nedenle dikkatli kullanılmaları gerekir. Ancak MySQL, mevcutların yerini alacak daha güçlü hash işlevleri henüz sunmaz. Yukarıda listelenen şifreleme işlevlerinin kullanımı da oldukça kolaydır. AES_ENCRYPT("text", "password")); Şifrelenmiş değerin yazıldığı alanın biçiminin, kullanılan kripto algoritmasının getirdiği kısıtlamalara uygun olması gerektiğini unutmayın - bu durumda, ikili olmalıdır (örneğin, VARBINARY türünden) ve AES algoritmasının 128 bitlik blok boyutuna göre hizalamayı varsayın.

    Veritabanı koruma sistemi, veritabanlarıyla çalışan kullanıcıların eylemleri üzerindeki kontrolü otomatikleştirmede, dış ve iç tehditlere karşı korumada ve veritabanı operasyonunun güvenilirliğini artırmada önemli bir rol oynar.

    Kaynakça

    1. Melnikov, V.P. Bilgi güvenliği ve bilgi koruması. / VP Melnikov,
    2. S.A. Kleimenov, A.M. Petrakov // 3. baskı, ster. - M.: Akademi, 2008. - 336 s.
    3. Panasenko S.P. Kapsamlı bilgi koruması. // Bilgi Teknolojisi. -2001 - No.3 - s. 14-16
    4. "Bilgi güvenliği" disiplininin çalışma programı: eğitim yönü 080500 İş bilişimi [Elektronik kaynak]: eğitim profili İşletme bilgi sistemleri: lisans mezununun nitelikleri (derecesi) Lisans / Başkurt Devlet Tarım Üniversitesi, [Bölüm. bilişim ve bilgi teknolojileri; komp. A. R. Basyrov]. -Ufa: [b. ve.], 2013. - 16 s. - M.Ö.
    5. PHP web uygulaması sitesi "phpMyAdmin" [Elektronik kaynak]. – Erişim modu: http://www.phpmyadmin.net/home_page/ , ücretsiz