MongoDB, NoSQL denilince akla gelen ilk teknolojilerdendir. Hızlı veri modelleme sayesinde gümümüz teknolojisinde aklınıza gelen bir fikri, çok hızlı şekilde test etmek kullanıcılar açısından büyük önem taşır.
Bir önceki yazımızda genel olarak MongoDB’nin tanımını, bize sağlayabileceği avantaj ve dezavantajları, CentOS 7 üzerinde kurulumunu yapmıştık. Bu yazımızda MongoDB üzerinde Database (Veri Tabanı) nasıl oluşturulur, veri tabanı için kullanıcı nasıl oluşturulacağını ve yetki türlerinden bahsedeceğim.
MongoDB Üzerinde Database (Veri Tabanı) Oluşturmak
“mongo” komutu ile veri tabanımıza bağlanıyoruz.
Remote (Uzak) veri tabanına bağlanmak için “mongo -u kullanıcıadı -p şifre 192.168.x.x/db_adı” komutunu kullanabilirsiniz.
Veri tabanlarını listelemek için “show dbs;” komutunu kullanıyoruz.
Resim-1
Database (Veri Tabanı) oluşturmak için: “use veritabanıadı” komutunu kullanıyoruz.
Testdb adında veri tabanı oluşturuyorum ve “db” komutu ile hangi veri tabanında olduğumuzu görüyoruz.
Resim-2
Oluşturduğum “testdb” veri tabanını listelemek istediğimizde listede göstermeyecektir. Bunun sebebi en az 1 girdi eklememiz gerekiyor.
Aşağıdaki komut ile girdimizi ekliyoruz ve “Show dbs;” komutunu tekrar çalıştırıyoruz.
db.new_collection.insert({ anahtar: "deger" })
Resim-3
Resim-4
Veri tabanımızı oluşturmuş olduk, bu oluşturduğumuz veri tabanı için kullanıcı oluşturalım.
MongoDB Veri tabanı İçin Kullanıcı Oluşturmak
Oluşturduğumuz veri tabanı için aşağıdaki komut ile kullanıcı ekleyebiliriz.
db.createUser( { user: "testuser", pwd: "123456", roles: [ { role: "readWrite", db: "testdb" } ] } )
Resim-5
Yukarıda ki komut ile 1 kullanıcıya 1 yetki tanımladık. Aşağıdaki komut ile 1 kullanıcıya 2 farklı veri tabanı için yetki verebiliriz.
db.createUser( { user: "testuser", pwd: "123456", roles:[ { role: "read" , db:"testdb"}, role: "readWrite" , db:"testdb2"} } ] })
Eklediğimiz kullanıcıları “show users” veya “db.getUsers()” komutları ile görüntüleyebiliriz.
Resim-6
Veri tabanı Kullanıcı Rolleri
Veri tabanı düzeyinde kullanılabilen roller şunlardır:
- read – Sistem dışı tüm koleksiyonlardaki verileri okuma
- readWrite – Tüm okuma rol ayrıcalıklarını ve sistem dışı tüm koleksiyonlara veri yazma özelliğini dahil et
Veri tabanı Yönetim Rolleri
Kullanabileceğimiz veri tabanı yönetim rolleri:
- dbAdmin – Yönetici görevlerini yerine getirme ayrıcalıkları tanıma
- userAdmin – Geçerli veri tabanında kullanıcılar ve roller oluşturmanıza ve değiştirmenize olanak tanır
- dbOwner – Bu rol hepsini kapsar: “readWrite, dbAdmin, userAdmin”
Küme Yönetim Rolleri
Tüm sistemi yönetmek için yönetici veri tabanındaki roller:
- clusterMonitor – İzleme araçlarına salt okunur erişim sağlar
- clusterManager – Kümedeki yönetim ve izleme eylemleri için
- hostManager – Sunucuları izlemek ve yönetmek için
- clusterAdmin – Üstteki 3 rolü ve dropDatabase rolünü uygular.
Yedekleme ve Geri Yükleme Rolleri
Bu rol yönetici veri tabanına aittir.
- backup – Verileri yedeklemek için gereken ayrıcalıkları sağlar.
- restore – Verileri yedeklemelerden geri yüklemek için gereken ayrıcalıkları sağlar.
Tüm Veri Tabanı Rolleri
Bu roller yönetici veri tabanında bulunur ve tüm veri tabanları için geçerli olan ayrıcalıklar sağlar.
- readAnyDatabase – Tüm veri tabanları için okuma rolünü uygular.
- readWriteAnyDatabase – Tüm veri tabanları için okuma-yazma rolünü uygular.
- userAdminAnyDatabase – Tüm veri tabanları için ‘userAdmin’ rolünü uygular.
- dbAdminAnyDatabase – Tüm veri tabanları için ‘dbAdmin’ rolünü uygular.
Ve son olarak root rolü: root – Veri tabanında tam ayrıcalık sağlar.
Bir sonraki yazımızda MongoDB Replica Set kurulumuna ve Konfigürasyon işlmlerine değineceğim. Faydası olması dileğiyle.
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
TAGs: MongoDB Veri Tabanı, MongoDB Kullanıcı Rolleri, MongoDB Veri Tabanı Oluşturmak, MongoDB Kullanıcı Oluşturmak, MongoDB, MongoDB Remote Bağlantı, MongoDB User Roles