#1 India's Top IT Training Institute

×

About Uncodemy

Know more about who we are and what we stand for.

About Us

About Us

Discover our mission to equip individuals with essential IT skills and industry expertise.

Read More →
UnCodeMy Gallery

UnCodeMy Gallery

Explore highlights from our IT training sessions and success stories.

Read More →
×

Free Resources

Learn, practice and plan your career — bilkul free.

Tutorials

Tutorials

Step-by-step written tutorials to learn any technology at your own pace.

Read More →
Free Counselling

Free Counselling

Book a free video counselling session and pick the right course for you.

Read More →
Online Compiler

Online Compiler

Write, run and test your code online — no setup required.

Read More →
User Management, Roles, TLS/SSL, and Encryption

Security and Authentication

Securing a MongoDB deployment involves several layers: authenticating who can connect, authorizing what they can do, encrypting data in transit and at rest, and hardening network access. This lesson covers all four.

1. Enabling Authentication

# mongod.conf
security:
  authorization: enabled
// Create the first admin user before enabling auth
use admin
db.createUser({
  user: "adminUser",
  pwd: "SecureP@ssw0rd",
  roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})

2. Role-Based Access Control (RBAC)

RoleScope
read / readWriteSingle database
dbAdminSchema and index management
clusterAdminCluster-wide administration
readAnyDatabaseRead access across all databases
db.createUser({
  user: "reportViewer",
  pwd: "ReportPass123",
  roles: [ { role: "read", db: "analyticsDB" } ]
})

3. Custom Roles

db.createRole({
  role: "orderManager",
  privileges: [
    { resource: { db: "ecommerceDB", collection: "orders" }, actions: ["find", "update", "insert"] }
  ],
  roles: []
})

4. TLS/SSL Encryption in Transit

mongod --tlsMode requireTLS --tlsCertificateKeyFile /etc/ssl/mongodb.pem

TLS ensures data traveling between clients and the server is encrypted, preventing eavesdropping and man-in-the-middle attacks.

5. Encryption at Rest

MongoDB Enterprise and Atlas support encryption at rest, protecting data stored on disk using AES-256 encryption, with keys managed via a local keyfile or an external KMIP-compliant key manager.

Common Issue: Leaving bindIp set to 0.0.0.0 without a firewall exposes your database to the open internet. Always restrict network access explicitly.

6. Security Checklist

  • ✅ Enable authorization on every deployment
  • ✅ Apply least-privilege roles per application/user
  • ✅ Create custom roles for fine-grained permissions
  • ✅ Enforce TLS/SSL for all connections
  • ✅ Enable encryption at rest for sensitive data
  • ✅ Restrict network access via firewalls/IP allowlists
Key Takeaway: MongoDB security is layered — authentication, authorization, network hardening, and encryption all need to be configured together. No single setting makes a deployment "secure."

Ready to master MongoDB?

Build real-world MongoDB-powered applications with hands-on projects, mentor-led sessions, and placement support.

Explore Course