{"id":34316,"date":"2025-11-15T03:40:59","date_gmt":"2025-11-15T00:40:59","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=34316"},"modified":"2025-11-15T03:40:59","modified_gmt":"2025-11-15T00:40:59","slug":"mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/","title":{"rendered":"MongoDB&#8217;nin Dahili Kimlik Do\u011frulama ve Yetkilendirme Y\u00f6ntemlerinden Yararlanma"},"content":{"rendered":"<p><body><\/p>\n<h2>MongoDB&#8217;nin Dahili Kimlik Do\u011frulama ve Yetkilendirme Y\u00f6ntemlerinden Yararlanma<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 d\u00fcnyas\u0131nda, veritaban\u0131 g\u00fcvenli\u011fi her zamankinden daha kritik bir \u00f6neme sahiptir. Hassas bilgilerin depoland\u0131\u011f\u0131 ve i\u015flendi\u011fi veritabanlar\u0131, yetkisiz eri\u015fime, veri ihlallerine ve k\u00f6t\u00fc niyetli sald\u0131r\u0131lara kar\u015f\u0131 korunmal\u0131d\u0131r. NoSQL veritabanlar\u0131 aras\u0131nda pop\u00fclerli\u011fini koruyan MongoDB, esnek yap\u0131s\u0131 ve y\u00fcksek performans\u0131n\u0131n yan\u0131 s\u0131ra, g\u00fc\u00e7l\u00fc dahili g\u00fcvenlik mekanizmalar\u0131yla da \u00f6ne \u00e7\u0131kmaktad\u0131r. Bu makale, MongoDB&#8217;nin yerle\u015fik kimlik do\u011frulama (authentication) ve yetkilendirme (authorization) \u00f6zelliklerini derinlemesine inceleyerek, bu \u00f6zelliklerin nas\u0131l etkinle\u015ftirilece\u011fini, yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ve g\u00fcvenli bir veritaban\u0131 ortam\u0131 olu\u015fturmak i\u00e7in nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 detayland\u0131racakt\u0131r.<\/p>\n<p>Kimlik do\u011frulama, bir kullan\u0131c\u0131n\u0131n veya uygulaman\u0131n iddia etti\u011fi ki\u015fi veya uygulama oldu\u011funu do\u011frulama s\u00fcrecidir. Genellikle kullan\u0131c\u0131 ad\u0131 ve \u015fifre gibi kimlik bilgileriyle ger\u00e7ekle\u015ftirilir. Yetkilendirme ise, kimli\u011fi do\u011frulanm\u0131\u015f bir kullan\u0131c\u0131n\u0131n veya uygulaman\u0131n belirli bir kayna\u011fa (veritaban\u0131, koleksiyon, belge) eri\u015fim iznine veya belirli bir eylemi ger\u00e7ekle\u015ftirme yetkisine sahip olup olmad\u0131\u011f\u0131n\u0131 belirleme s\u00fcrecidir. MongoDB, bu iki temel g\u00fcvenlik katman\u0131n\u0131 entegre bir \u015fekilde sunarak, veri g\u00fcvenli\u011fini sa\u011flamak i\u00e7in kapsaml\u0131 bir \u00e7er\u00e7eve sa\u011flar. Bu dahili mekanizmalar, geli\u015ftiricilere ve sistem y\u00f6neticilerine, uygulamalar\u0131n\u0131n ve verilerinin g\u00fcvenli\u011fini sa\u011flamak i\u00e7in gerekli ara\u00e7lar\u0131 sunarken, ayn\u0131 zamanda y\u00f6netim y\u00fck\u00fcn\u00fc de azalt\u0131r.<\/p>\n<h3>MongoDB&#8217;de Kimlik Do\u011frulama (Authentication)<\/h3>\n<p>MongoDB&#8217;nin varsay\u0131lan yap\u0131land\u0131rmas\u0131nda kimlik do\u011frulama devre d\u0131\u015f\u0131d\u0131r, bu da herhangi bir kullan\u0131c\u0131n\u0131n herhangi bir kimlik bilgisi olmadan veritaban\u0131na tam eri\u015fim sa\u011flayabilece\u011fi anlam\u0131na gelir. \u00dcretim ortamlar\u0131nda bu durum kabul edilemez bir g\u00fcvenlik riski olu\u015fturur. Bu nedenle, MongoDB&#8217;yi g\u00fcvenli hale getirmenin ilk ad\u0131m\u0131 kimlik do\u011frulamay\u0131 etkinle\u015ftirmektir.<\/p>\n<h4>Kimlik Do\u011frulamay\u0131 Etkinle\u015ftirme<\/h4>\n<p>Kimlik do\u011frulamay\u0131 etkinle\u015ftirmenin en yayg\u0131n yolu, MongoDB sunucusunu (mongod) ba\u015flat\u0131rken <code>--auth<\/code> komut sat\u0131r\u0131 se\u00e7ene\u011fini kullanmak veya yap\u0131land\u0131rma dosyas\u0131nda (<code>mongod.conf<\/code>) <code>security.authorization: enabled<\/code> ayar\u0131n\u0131 yapmakt\u0131r. Yap\u0131land\u0131rma dosyas\u0131 yakla\u015f\u0131m\u0131, kal\u0131c\u0131 ve otomatik ba\u015flatma senaryolar\u0131 i\u00e7in \u00f6nerilir.<\/p>\n<p><strong>Komut Sat\u0131r\u0131 ile:<\/strong><\/p>\n<pre><code class=\"language-bash\">mongod --auth --port 27017 --dbpath \/data\/db<\/code><\/pre>\n<p>Bu komut, MongoDB sunucusunu 27017 numaral\u0131 portta ve belirtilen veri yolunda kimlik do\u011frulama etkinle\u015ftirilmi\u015f olarak ba\u015flat\u0131r.<\/p>\n<p><strong>Yap\u0131land\u0131rma Dosyas\u0131 (mongod.conf) ile:<\/strong><\/p>\n<pre><code class=\"language-yaml\"># mongod.conf\nsecurity:\n  authorization: enabled\nnet:\n  port: 27017\n  bindIp: 127.0.0.1 # G\u00fcvenlik i\u00e7in sadece localhost'tan eri\u015fime izin verir\nstorage:\n  dbPath: \/data\/db<\/code><\/pre>\n<p>Bu ayar\u0131 yapt\u0131ktan sonra <code>mongod<\/code> servisini yeniden ba\u015flatman\u0131z gerekir. Kimlik do\u011frulama etkinle\u015ftirildi\u011finde, veritaban\u0131na eri\u015fmeye \u00e7al\u0131\u015fan t\u00fcm istemcilerin ge\u00e7erli bir kullan\u0131c\u0131 ad\u0131 ve \u015fifre ile kimlik do\u011frulamas\u0131 yapmas\u0131 gerekecektir. Aksi takdirde, ba\u011flant\u0131 reddedilir veya yetkilendirme hatas\u0131 al\u0131n\u0131r.<\/p>\n<h4>\u0130lk Kullan\u0131c\u0131y\u0131 Olu\u015fturma<\/h4>\n<p>Kimlik do\u011frulama etkinle\u015ftirildikten sonra, sisteme giri\u015f yapabilecek bir kullan\u0131c\u0131 olmad\u0131\u011f\u0131 i\u00e7in varsay\u0131lan olarak herhangi bir istemci ba\u011flanamaz. Ancak, MongoDB&#8217;nin 3.6 ve sonraki s\u00fcr\u00fcmlerinde, kimlik do\u011frulama etkinle\u015ftirildi\u011finde ve hen\u00fcz hi\u00e7bir kullan\u0131c\u0131 tan\u0131mlanmam\u0131\u015fken, <code>localhost<\/code> \u00fczerinden ba\u011flanan bir istemci, <code>admin<\/code> veritaban\u0131nda kullan\u0131c\u0131 olu\u015fturma yetkisine sahiptir. Bu, &#8220;localhost exceptional access&#8221; olarak bilinen \u00f6zel bir durumdur ve ilk y\u00f6netici kullan\u0131c\u0131s\u0131n\u0131 olu\u015fturmak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<p>\u0130lk y\u00f6netici kullan\u0131c\u0131s\u0131n\u0131 olu\u015fturmak i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyin:<\/p>\n<ol>\n<li><code>mongod<\/code>&#8216;u <code>--auth<\/code> ile ba\u015flat\u0131n veya <code>mongod.conf<\/code> dosyas\u0131nda <code>security.authorization: enabled<\/code> ayar\u0131n\u0131 yaparak servisi yeniden ba\u015flat\u0131n.<\/li>\n<li><code>mongo<\/code> kabu\u011fu ile ba\u011flan\u0131n: <code>mongo --port 27017<\/code> (Bu ba\u011flant\u0131, <code>localhost exceptional access<\/code> sayesinde kimlik do\u011frulamas\u0131 gerektirmeyecektir).<\/li>\n<li><code>admin<\/code> veritaban\u0131na ge\u00e7in: <code>use admin<\/code><\/li>\n<li>Bir y\u00f6netici kullan\u0131c\u0131s\u0131 olu\u015fturun. \u015eifreyi do\u011frudan komutta belirtmek yerine <code>passwordPrompt()<\/code> kullanarak daha g\u00fcvenli bir \u015fekilde girmeniz \u00f6nerilir:<\/li>\n<\/ol>\n<pre><code class=\"language-javascript\">db.createUser(\n   {\n     user: \"adminUser\",\n     pwd: passwordPrompt(), \/\/ \u015eifreyi g\u00fcvenli bir \u015fekilde girmenizi ister\n     roles: [\n       { role: \"userAdminAnyDatabase\", db: \"admin\" }, \/\/ T\u00fcm veritabanlar\u0131nda kullan\u0131c\u0131 y\u00f6netimi\n       \"readWriteAnyDatabase\" \/\/ T\u00fcm veritabanlar\u0131nda okuma\/yazma\n     ]\n   }\n)<\/code><\/pre>\n<p>Bu komut, <code>adminUser<\/code> ad\u0131nda bir kullan\u0131c\u0131 olu\u015fturur ve ona <code>admin<\/code> veritaban\u0131nda kullan\u0131c\u0131 y\u00f6netme yetkisi (<code>userAdminAnyDatabase<\/code>) ve t\u00fcm veritabanlar\u0131nda okuma\/yazma yetkisi (<code>readWriteAnyDatabase<\/code>) verir. \u0130lk y\u00f6netici kullan\u0131c\u0131s\u0131n\u0131 olu\u015fturduktan sonra, <code>localhost exceptional access<\/code> \u00f6zelli\u011fi kapan\u0131r ve art\u0131k t\u00fcm ba\u011flant\u0131lar (<code>localhost<\/code> \u00fczerinden yap\u0131lanlar dahil) kimlik do\u011frulamas\u0131 gerektirir.<\/p>\n<h4>Kimlik Do\u011frulama Mekanizmalar\u0131<\/h4>\n<p>MongoDB, farkl\u0131 g\u00fcvenlik gereksinimlerini kar\u015f\u0131lamak \u00fczere \u00e7e\u015fitli kimlik do\u011frulama mekanizmalar\u0131n\u0131 destekler:<\/p>\n<ol>\n<li><strong>SCRAM (Salted Challenge Response Authentication Mechanism):<\/strong>\n<ul>\n<li><strong>SCRAM-SHA-256 (Varsay\u0131lan ve \u00d6nerilen):<\/strong> MongoDB 4.0 ve sonraki s\u00fcr\u00fcmlerinde varsay\u0131lan kimlik do\u011frulama mekanizmas\u0131d\u0131r. Daha g\u00fc\u00e7l\u00fc karma algoritmalar\u0131 (SHA-256) ve tuzlama (salting) kullanarak \u015fifreleri korur. \u015eifrelerin do\u011frudan veritaban\u0131nda saklanmas\u0131n\u0131 engeller ve kaba kuvvet sald\u0131r\u0131lar\u0131na kar\u015f\u0131 daha dayan\u0131kl\u0131d\u0131r. G\u00fcvenli\u011finizi art\u0131rmak i\u00e7in her zaman SCRAM-SHA-256 kullanman\u0131z \u00f6nerilir.<\/li>\n<li><strong>SCRAM-SHA-1 (Eski):<\/strong> MongoDB&#8217;nin eski s\u00fcr\u00fcmlerinde varsay\u0131lan olan bu mekanizma, daha zay\u0131f bir karma algoritmas\u0131 (SHA-1) kullan\u0131r. Geriye d\u00f6n\u00fck uyumluluk i\u00e7in hala mevcuttur ancak yeni da\u011f\u0131t\u0131mlar i\u00e7in \u00f6nerilmez. M\u00fcmk\u00fcnse SCRAM-SHA-256&#8217;ya ge\u00e7ilmelidir.<\/li>\n<\/ul>\n<p>SCRAM mekanizmalar\u0131, sunucunun \u015fifreyi do\u011frudan saklamadan istemcinin kimli\u011fini do\u011frulamas\u0131na olanak tan\u0131yan bir meydan okuma-yan\u0131t (challenge-response) protokol\u00fc kullan\u0131r. \u015eifreler, tuzlama ve iterasyonlarla g\u00fc\u00e7lendirilmi\u015f bir \u015fekilde saklan\u0131r, bu da onlar\u0131 g\u00f6kku\u015fa\u011f\u0131 tablolar\u0131 ve \u00e7evrimd\u0131\u015f\u0131 kaba kuvvet sald\u0131r\u0131lar\u0131na kar\u015f\u0131 korur.<\/p>\n<\/li>\n<li><strong>x.509 Sertifika Kimlik Do\u011frulamas\u0131:<\/strong>\n<p>Bu mekanizma, istemcilerin ve sunucular\u0131n birbirlerini TLS\/SSL sertifikalar\u0131 arac\u0131l\u0131\u011f\u0131yla do\u011frulamas\u0131na olanak tan\u0131r. \u00d6zellikle makine-makine ileti\u015fimi, mikro hizmetler aras\u0131 kimlik do\u011frulama ve y\u00fcksek g\u00fcvenlik gerektiren ortamlar i\u00e7in idealdir. Kullan\u0131c\u0131 adlar\u0131, sertifikalar\u0131n DN (Distinguished Name) alan\u0131ndan t\u00fcretilir. x.509 kimlik do\u011frulamas\u0131 genellikle TLS\/SSL ile birlikte kullan\u0131l\u0131r ve a\u011f trafi\u011finin \u015fifrelenmesini de sa\u011flayarak u\u00e7tan uca g\u00fcvenli\u011fi peki\u015ftirir.<\/p>\n<\/li>\n<li><strong>LDAP (Lightweight Directory Access Protocol) Kimlik Do\u011frulamas\u0131:<\/strong>\n<p>B\u00fcy\u00fck kurumsal ortamlarda, kullan\u0131c\u0131 kimlik bilgileri genellikle merkezi bir LDAP veya Active Directory sunucusunda y\u00f6netilir. MongoDB, LDAP entegrasyonu sayesinde bu merkezi dizin hizmetlerini kullanarak kullan\u0131c\u0131lar\u0131n kimli\u011fini do\u011frulayabilir. Bu, kullan\u0131c\u0131 y\u00f6netimini basitle\u015ftirir, mevcut kurumsal g\u00fcvenlik politikalar\u0131n\u0131 MongoDB&#8217;ye geni\u015fletir ve tek oturum a\u00e7ma (single sign-on) deneyimi sunabilir.<\/p>\n<\/li>\n<li><strong>Kerberos Kimlik Do\u011frulamas\u0131:<\/strong>\n<p>Kurumsal d\u00fczeyde daha geli\u015fmi\u015f bir kimlik do\u011frulama mekanizmas\u0131 olan Kerberos, \u00f6zellikle \u00e7oklu hizmet ortamlar\u0131nda g\u00fc\u00e7l\u00fc kimlik do\u011frulama ve tek oturum a\u00e7ma yetenekleri sunar. MongoDB, Kerberos&#8217;u kullanarak kullan\u0131c\u0131lar\u0131n kimli\u011fini do\u011frulayabilir ve bu da b\u00fcy\u00fck \u00f6l\u00e7ekli kurumsal da\u011f\u0131t\u0131mlarda g\u00fc\u00e7l\u00fc bir g\u00fcvenlik ve y\u00f6netim kolayl\u0131\u011f\u0131 sa\u011flar. Kerberos, \u00f6zellikle Windows Active Directory entegrasyonu i\u00e7in tercih edilebilir.<\/p>\n<\/li>\n<\/ol>\n<h4>Kullan\u0131c\u0131 Y\u00f6netimi<\/h4>\n<p>MongoDB, kullan\u0131c\u0131lar\u0131 ve rolleri y\u00f6netmek i\u00e7in kapsaml\u0131 bir dizi komut sa\u011flar. Bu komutlar, genellikle <code>admin<\/code> veritaban\u0131nda (genel yetkilere sahip kullan\u0131c\u0131lar i\u00e7in) veya ilgili veritaban\u0131nda (veritaban\u0131na \u00f6zg\u00fc yetkilere sahip kullan\u0131c\u0131lar i\u00e7in) \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r.<\/p>\n<ul>\n<li><strong>Kullan\u0131c\u0131 Olu\u015fturma (<code>db.createUser()<\/code>):<\/strong> Yeni kullan\u0131c\u0131lar olu\u015fturmak ve onlara ba\u015flang\u0131\u00e7 rolleri atamak i\u00e7in kullan\u0131l\u0131r.<\/li>\n<pre><code class=\"language-javascript\">use myDatabase \/\/ Kullan\u0131c\u0131n\u0131n atanaca\u011f\u0131 veritaban\u0131 ba\u011flam\u0131\ndb.createUser(\n   {\n     user: \"appUser\",\n     pwd: passwordPrompt(),\n     roles: [ { role: \"readWrite\", db: \"myDatabase\" } ]\n   }\n)<\/code><\/pre>\n<li><strong>Kullan\u0131c\u0131 G\u00fcncelleme (<code>db.updateUser()<\/code>):<\/strong> Mevcut bir kullan\u0131c\u0131n\u0131n \u015fifresini, rollerini veya di\u011fer \u00f6zelliklerini de\u011fi\u015ftirmek i\u00e7in kullan\u0131l\u0131r.<\/li>\n<pre><code class=\"language-javascript\">use myDatabase\ndb.updateUser(\n   \"appUser\",\n   {\n     pwd: passwordPrompt(), \/\/ Yeni \u015fifre\n     roles: [ { role: \"read\", db: \"myDatabase\" }, { role: \"read\", db: \"anotherDatabase\" } ] \/\/ Yeni roller\n   }\n)<\/code><\/pre>\n<li><strong>Kullan\u0131c\u0131 Silme (<code>db.dropUser()<\/code>):<\/strong> Bir kullan\u0131c\u0131y\u0131 veritaban\u0131ndan siler.<\/li>\n<pre><code class=\"language-javascript\">use myDatabase\ndb.dropUser(\"appUser\")<\/code><\/pre>\n<li><strong>Kullan\u0131c\u0131lar\u0131 Listeleme (<code>db.getUsers()<\/code>):<\/strong> Mevcut kullan\u0131c\u0131lar\u0131 ve onlara atanm\u0131\u015f rolleri listeler. <code>showPrivileges: true<\/code> se\u00e7ene\u011fi ile kullan\u0131c\u0131lar\u0131n sahip oldu\u011fu t\u00fcm ayr\u0131cal\u0131klar\u0131n detaylar\u0131n\u0131 da g\u00f6rebilirsiniz.<\/li>\n<pre><code class=\"language-javascript\">use admin\ndb.getUsers({ showPrivileges: true })<\/code><\/pre>\n<li><strong>Kimlik Do\u011frulama (<code>db.auth()<\/code>):<\/strong> Bir kullan\u0131c\u0131n\u0131n kimli\u011fini programatik olarak do\u011frulamak i\u00e7in kullan\u0131l\u0131r. \u00c7o\u011fu MongoDB s\u00fcr\u00fcc\u00fcs\u00fc bu i\u015flemi ba\u011flant\u0131 s\u0131ras\u0131nda otomatik olarak halleder, ancak bazen manuel do\u011frulama veya test senaryolar\u0131 i\u00e7in faydal\u0131 olabilir.<\/li>\n<pre><code class=\"language-javascript\">use myDatabase\ndb.auth(\"appUser\", \"appPassword\")<\/code><\/pre>\n<\/ul>\n<h3>MongoDB&#8217;de Yetkilendirme (Authorization) &#8211; Rol Tabanl\u0131 Eri\u015fim Kontrol\u00fc (RBAC)<\/h3>\n<p>Kimlik do\u011frulama, bir kullan\u0131c\u0131n\u0131n kim oldu\u011funu do\u011frular; yetkilendirme ise, o kullan\u0131c\u0131n\u0131n ne yapmas\u0131na izin verildi\u011fini belirler. MongoDB, yetkilendirme i\u00e7in g\u00fc\u00e7l\u00fc ve esnek bir Rol Tabanl\u0131 Eri\u015fim Kontrol\u00fc (RBAC) sistemi kullan\u0131r. RBAC&#8217;de, ayr\u0131cal\u0131klar (privileges) rollere atan\u0131r ve bu roller daha sonra kullan\u0131c\u0131lara atan\u0131r. Bu yakla\u015f\u0131m, kullan\u0131c\u0131lar\u0131n ayr\u0131 ayr\u0131 her bir yetkisini y\u00f6netmek yerine, belirli i\u015flevsel rollere sahip kullan\u0131c\u0131 gruplar\u0131n\u0131 y\u00f6netmeyi kolayla\u015ft\u0131r\u0131r ve \u00f6l\u00e7eklenebilir bir g\u00fcvenlik modeli sunar.<\/p>\n<h4>Ayr\u0131cal\u0131klar ve Kaynaklar<\/h4>\n<p>MongoDB&#8217;deki her ayr\u0131cal\u0131k, bir veya daha fazla eylem (action) ve bir kaynak (resource) kombinasyonundan olu\u015fur. Bu, yetkilendirme modelinin temel yap\u0131 ta\u015flar\u0131d\u0131r.<\/p>\n<ul>\n<li><strong>Eylemler (Actions):<\/strong> Veritaban\u0131 \u00fczerinde ger\u00e7ekle\u015ftirilebilecek belirli operasyonlard\u0131r (\u00f6rne\u011fin, <code>find<\/code>, <code>insert<\/code>, <code>update<\/code>, <code>remove<\/code>, <code>createCollection<\/code>, <code>createIndex<\/code>, <code>shutdown<\/code>). MongoDB&#8217;nin geni\u015f bir eylem listesi vard\u0131r ve bu eylemler, veritaban\u0131 operasyonlar\u0131n\u0131, k\u00fcme y\u00f6netimini ve kullan\u0131c\u0131 y\u00f6netimini kapsar.<\/li>\n<li><strong>Kaynaklar (Resources):<\/strong> Ayr\u0131cal\u0131\u011f\u0131n uyguland\u0131\u011f\u0131 veritaban\u0131 nesnesidir. Bir kaynak, belirli bir veritaban\u0131, belirli bir veritaban\u0131ndaki bir koleksiyon veya t\u00fcm veritabanlar\u0131 olabilir. Kaynaklar genellikle bir JSON nesnesi olarak belirtilir:\n<ul>\n<li><code>{ db: \"myDatabase\", collection: \"myCollection\" }<\/code>: Belirli bir veritaban\u0131ndaki belirli bir koleksiyon.<\/li>\n<li><code>{ db: \"myDatabase\", collection: \"\" }<\/code>: Belirli bir veritaban\u0131ndaki t\u00fcm koleksiyonlar. Bo\u015f koleksiyon ad\u0131, veritaban\u0131ndaki t\u00fcm koleksiyonlar\u0131 ifade eder.<\/li>\n<li><code>{ db: \"\", collection: \"\" }<\/code>: T\u00fcm veritabanlar\u0131ndaki t\u00fcm koleksiyonlar.<\/li>\n<li><code>{ cluster: true }<\/code>: K\u00fcme d\u00fczeyindeki kaynaklar (\u00f6rn. replica set veya sharded cluster y\u00f6netimi i\u00e7in).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h4>Dahili (Built-in) Roller<\/h4>\n<p>MongoDB, \u00e7o\u011fu yayg\u0131n kullan\u0131m senaryosunu kapsayan bir dizi dahili rol sunar. Bu roller, belirli ayr\u0131cal\u0131k setlerini \u00f6nceden tan\u0131mlar ve y\u00f6netim kolayl\u0131\u011f\u0131 sa\u011flar. Bu rolleri do\u011frudan kullan\u0131c\u0131lara atayabilir veya \u00f6zel roller olu\u015ftururken miras olarak kullanabilirsiniz.<\/p>\n<ul>\n<li><strong>Veritaban\u0131 Kullan\u0131c\u0131 Rolleri:<\/strong> Belirli bir veritaban\u0131nda \u00e7al\u0131\u015fmak i\u00e7in tasarlanm\u0131\u015ft\u0131r.\n<ul>\n<li><code>read<\/code>: Belirli bir veritaban\u0131ndaki t\u00fcm koleksiyonlarda okuma eri\u015fimi sa\u011flar.<\/li>\n<li><code>readWrite<\/code>: Belirli bir veritaban\u0131ndaki t\u00fcm koleksiyonlarda okuma ve yazma eri\u015fimi sa\u011flar.<\/li>\n<li><code>dbAdmin<\/code>: Belirli bir veritaban\u0131n\u0131n y\u00f6netimsel g\u00f6revlerini ger\u00e7ekle\u015ftirebilir (indeks olu\u015fturma, koleksiyonlar\u0131 listeleme, istatistikleri g\u00f6rme, vb.). Veri okuma\/yazma yetkisi i\u00e7ermez.<\/li>\n<li><code>dbOwner<\/code>: Belirli bir veritaban\u0131n\u0131n t\u00fcm y\u00f6netimsel ve okuma\/yazma g\u00f6revlerini ger\u00e7ekle\u015ftirebilir, ayr\u0131ca o veritaban\u0131nda kullan\u0131c\u0131lar\u0131 ve rolleri y\u00f6netebilir. Bu, bir veritaban\u0131 i\u00e7in en kapsaml\u0131 rold\u00fcr.<\/li>\n<li><code>userAdmin<\/code>: Belirli bir veritaban\u0131nda kullan\u0131c\u0131lar\u0131 ve rolleri y\u00f6netebilir.<\/li>\n<\/ul>\n<\/li>\n<li><strong>T\u00fcm Veritaban\u0131 Rolleri:<\/strong> Bu roller, t\u00fcm veritabanlar\u0131nda benzer ayr\u0131cal\u0131klar sa\u011flar ve genellikle <code>admin<\/code> veritaban\u0131nda tan\u0131mlan\u0131r.\n<ul>\n<li><code>readAnyDatabase<\/code>: T\u00fcm veritabanlar\u0131nda okuma eri\u015fimi.<\/li>\n<li><code>readWriteAnyDatabase<\/code>: T\u00fcm veritabanlar\u0131nda okuma ve yazma eri\u015fimi.<\/li>\n<li><code>userAdminAnyDatabase<\/code>: T\u00fcm veritabanlar\u0131nda kullan\u0131c\u0131lar\u0131 ve rolleri y\u00f6netme.<\/li>\n<li><code>dbAdminAnyDatabase<\/code>: T\u00fcm veritabanlar\u0131nda y\u00f6netimsel g\u00f6revleri ger\u00e7ekle\u015ftirme.<\/li>\n<\/ul>\n<\/li>\n<li><strong>K\u00fcme Y\u00f6netimi Rolleri:<\/strong> Bu roller, replica set&#8217;ler ve sharded cluster&#8217;lar gibi k\u00fcme d\u00fczeyindeki operasyonlar i\u00e7in kullan\u0131l\u0131r ve genellikle <code>admin<\/code> veritaban\u0131nda tan\u0131mlan\u0131r.<br \/>\n        <\/body><\/p>\n","protected":false},"excerpt":{"rendered":"MongoDB&#8217;nin Dahili Kimlik Do\u011frulama ve Yetkilendirme Y\u00f6ntemlerinden Yararlanma\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 d\u00fcnyas\u0131nda, veritaban\u0131 g\u00fcvenli","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[676],"tags":[],"class_list":{"0":"post-34316","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-mongodb","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>MongoDB&#039;nin Dahili Kimlik Do\u011frulama ve Yetkilendirme Y\u00f6ntemlerinden Yararlanma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MongoDB&#039;nin Dahili Kimlik Do\u011frulama ve Yetkilendirme Y\u00f6ntemlerinden Yararlanma\" \/>\n<meta property=\"og:description\" content=\"MongoDB&#039;nin Dahili Kimlik Do\u011frulama ve Yetkilendirme Y\u00f6ntemlerinden Yararlanma Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 d\u00fcnyas\u0131nda, veritaban\u0131 g\u00fcvenli\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-15T00:40:59+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"MongoDB&#8217;nin Dahili Kimlik Do\u011frulama ve Yetkilendirme Y\u00f6ntemlerinden Yararlanma\",\"datePublished\":\"2025-11-15T00:40:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/\"},\"wordCount\":1824,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"MongoDB\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/\",\"name\":\"MongoDB'nin Dahili Kimlik Do\u011frulama ve Yetkilendirme Y\u00f6ntemlerinden Yararlanma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-15T00:40:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MongoDB&#8217;nin Dahili Kimlik Do\u011frulama ve Yetkilendirme Y\u00f6ntemlerinden Yararlanma\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"MongoDB'nin Dahili Kimlik Do\u011frulama ve Yetkilendirme Y\u00f6ntemlerinden Yararlanma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/","og_locale":"tr_TR","og_type":"article","og_title":"MongoDB'nin Dahili Kimlik Do\u011frulama ve Yetkilendirme Y\u00f6ntemlerinden Yararlanma","og_description":"MongoDB'nin Dahili Kimlik Do\u011frulama ve Yetkilendirme Y\u00f6ntemlerinden Yararlanma Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 d\u00fcnyas\u0131nda, veritaban\u0131 g\u00fcvenli","og_url":"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-15T00:40:59+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"10 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"MongoDB&#8217;nin Dahili Kimlik Do\u011frulama ve Yetkilendirme Y\u00f6ntemlerinden Yararlanma","datePublished":"2025-11-15T00:40:59+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/"},"wordCount":1824,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["MongoDB"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/","url":"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/","name":"MongoDB'nin Dahili Kimlik Do\u011frulama ve Yetkilendirme Y\u00f6ntemlerinden Yararlanma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-15T00:40:59+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/mongodbnin-dahili-kimlik-dogrulama-ve-yetkilendirme-yontemlerinden-yararlanma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"MongoDB&#8217;nin Dahili Kimlik Do\u011frulama ve Yetkilendirme Y\u00f6ntemlerinden Yararlanma"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34316","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=34316"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34316\/revisions"}],"predecessor-version":[{"id":34317,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34316\/revisions\/34317"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=34316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=34316"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=34316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}