Mongodb 建立管理员账号与普通账号

 

数据库操做权限html

readAnyDatabase 任何数据库的只读权限 userAdminAnyDatabase 任何数据库的读写权限 userAdminAnyDatabase 任何数据库用户的管理权限 dbAdminAnyDatabase 任何数据库的管理权限

 

启动客户端:mongodb

cd /usr/local/mongodb/ ./mongo

 

查看一下用户表有没有数据shell

db.system.users.find()

 

查看用户数据库

> show users > 
>

 

MongoDB建立数据库管理员用户app

# 切换至admin数据库。 # 也能够使用db = db.getSiblingDB('admin')代替use admin。 use admin # 建立管理员用户,并指定其权限。 db.createUser({ user : 'root', pwd : '123456', roles : [ 'clusterAdmin', 'dbAdminAnyDatabase', 'userAdminAnyDatabase', 'readWriteAnyDatabase' ] })

输出ui

> db.createUser({ ... user : 'root', ... pwd : '123456', ... roles : [ ... 'clusterAdmin', ... 'dbAdminAnyDatabase', ... 'userAdminAnyDatabase', ... 'readWriteAnyDatabase' ... ] ... }) Successfully added user: { "user" : "root", "roles" : [ "clusterAdmin", "dbAdminAnyDatabase", "userAdminAnyDatabase", "readWriteAnyDatabase" ] }

 

重启MongoDB服务并加上--auth参数spa

./mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs --logappend  --port=27017 --fork --auth

 

查看用户,会报错.net

> use admin switched to db admin > show users 2019-02-15T15:20:52.250+0800 E QUERY [js] Error: command usersInfo requires authentication : _getErrorWithCode@src/mongo/shell/utils.js:25:13 DB.prototype.getUsers@src/mongo/shell/db.js:1763:1 shellHelper.show@src/mongo/shell/utils.js:859:9 shellHelper@src/mongo/shell/utils.js:766:15 @(shellhelp2):1:1

 

此时须要认证prototype

> db.auth('root','123456') 1
>

 

查看用户,就能够看到了code

> show users { "_id" : "admin.root", "user" : "root", "db" : "admin", "roles" : [ { "role" : "clusterAdmin", "db" : "admin" }, { "role" : "dbAdminAnyDatabase", "db" : "admin" }, { "role" : "userAdminAnyDatabase", "db" : "admin" }, { "role" : "readWriteAnyDatabase", "db" : "admin" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] } >

 

 

创建普通账号

用户user

db.createUser( {user:'user', pwd:'123456', roles:[ {role:'readWrite', db:'userdb'} ] })

输出

> db.createUser( ... {user:'user', ... pwd:'123456', ... roles:[ ... {role:'readWrite', db:'userdb'} ... ] ... }) Successfully added user: { "user" : "user", "roles" : [ { "role" : "readWrite", "db" : "userdb" } ] } >

 

查看用户

> show users { "_id" : "admin.root", "user" : "root", "db" : "admin", "roles" : [ { "role" : "clusterAdmin", "db" : "admin" }, { "role" : "dbAdminAnyDatabase", "db" : "admin" }, { "role" : "userAdminAnyDatabase", "db" : "admin" }, { "role" : "readWriteAnyDatabase", "db" : "admin" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] } { "_id" : "admin.user", "user" : "user", "db" : "admin", "roles" : [ { "role" : "readWrite", "db" : "userdb" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] } >

 

用户user1

db.createUser( {user:'user1', pwd:'123456', roles:[ {role:'root', db:'userdb'} ] })

 


 

接下来,为指定数据库建立通常用户角色,用于程序读取、修改数据库。

假如现有blog数据库,要为其建立用户名为admin、密码为123456,拥有CRUD(增查改删)权限,指令以下:

# 切换至blog数据库。 use blog # 建立admin用户。 db.createUser({ user : 'admin', pwd : '123456', roles : ['readWrite'] })

 

 

参考:

https://blog.csdn.net/Hu_wen/article/details/76690508

https://www.cnblogs.com/sea-stream/p/10369334.html

相关文章
相关标签/搜索