MongoDB使用者授權和管理
阿新 • • 發佈:2018-12-05
MongoDB使用者授權和管理
2017年02月15日 15:40:04 奮鬥吧_攻城獅 閱讀數:6974 標籤: mongodbshell 更多
個人分類: MongoDB
1、mongodb安裝好後第一次進入是不需要密碼的,也沒有任何使用者,通過shell命令可直接進入,cd到mongodb目錄下的bin資料夾,執行命令./mongo即可
執行如下:
[root@namenode mongodb]# ./bin/mongo MongoDB shell version: 1.8.2 connecting to: test > use test; switched to db test
- 1
- 2
- 3
- 4
- 5
2、新增管理使用者(mongoDB 沒有無敵使用者root,只有能管理使用者的使用者 userAdminAnyDatabase),
>use admin
>db.createUser( {user: "admin",pwd: "123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
- 1
- 2
注:新增完使用者後可以使用show users或db.system.users.find()檢視已有使用者
3、新增完管理使用者後,關閉MongoDB,並使用許可權方式再次開啟MongoDB,這裡注意不要使用kill直接去殺掉mongodb程序,(如果這樣做了,請去data/db目錄下刪除mongo.lock檔案),可以使用db.shutdownServer()
4、使用許可權方式啟動MongoDB
./mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/log/mongod.log --fork --auth
- 1
或者在配置檔案中修改:
auth = true
#noauth = true
- 1
- 2
5、進入mongo shell,使用admin資料庫並進行驗證,如果不驗證,是做不了任何操作的。
> use admin
> db.auth("admin","123456") #認證,返回1表示成功
- 1
- 2
6、驗證之後還是做不了操作,因為admin只有使用者管理許可權,下面建立使用者,使用者都跟著庫走,
> use mydb
> db.createUser({user: "root",pwd: "123456",roles: [{ role: "readWrite", db: "mydb" }]})
- 1
- 2
7、使用建立的使用者root登入進行資料庫操作:
[root@localhost mongodb]# mongo 127.0.0.1/mydb -uroot -p
MongoDB shell version: 3.2.9
Enter password:
connecting to: 127.0.0.1/mydb
> db
mydb
> use mydb
switched to db mydb
> show collections
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
或者使用:
./mongo -u username -p password --port port --authenticationDatabase databaseName
./mongo databaseName -u username -p password --port port
然後就可以進行增刪改查各種資料操作…
8、檢視已存在的使用者
> db.system.users.find()
- 1
9、刪除使用者
> use mydb
> db.system.users.remove({user:"root"})
> db.system.users.find()