mongodb 新增使用者及許可權設定詳解

2021-07-10 03:12:19 字數 2577 閱讀 5864

例如:mysql安裝配置好後,有乙個自帶的mysql資料庫,裡面有一張user表,用來存放使用者,以及使用者許可權,而mongodb這個最像關係型的資料庫,有沒有這樣的表呢。

一,掌握許可權,理解下面4條基本上就差不多

1,mongodb是沒有預設管理員賬號,所以要先新增管理員賬號,在開啟許可權認證。

2,切換到admin資料庫,新增的賬號才是管理員賬號。

3,使用者只能在使用者所在資料庫登入,包括管理員賬號。

4,管理員可以管理所有資料庫,但是不能直接管理其他資料庫,要先在admin資料庫認證後才可以。這一點比較怪

二,新增管理員賬號

[root@localhost zhangy]# mongo

mongodb shell version: 2.4.6

connecting to: tank

> use admin //切換到admin資料庫

switched to db admin

> show collections;

system.indexes

system.users //使用者表

> db.system.users.find(); //使用者表沒有資料

> db.adduser('tank','test'); //新增乙個管理員賬號

三,開啟動使用者許可權認證

[root@localhost zhangy]# vim /etc/mongodb.conf      //將auth=true前面的注釋拿掉

[root@localhost zhangy]# /etc/init.d/mongod restart //重啟生效

四,使用者只能在使用者所在資料庫登入,管理員需要通過admin認證後才能管理其他資料庫

[root@localhost zhangy]# mongo

mongodb shell version: 2.4.6

connecting to: tank

> show dbs; //顯示所有資料庫失敗,因為還沒有認證

wed dec 4 06:39:50.925 listdatabases failed: at src/mongo/shell/mongo.js:46

> db.auth('tank','test'); //認證失敗,因為這個使用者不屬於tank這個資料庫

error: 18

0> use admin //切換到admin資料庫

switched to db admin

> db.auth('tank','test'); //在admin資料庫認證成功

1> use tank; //切換到tank資料庫

switched to db tank

> show collections; //不會在提示沒有許可權了

contact

system.indexes

users

五,新增普通用啟

> use tank;

switched to db tank

> db.adduser('tank1','test'); //為tank資料庫新增了乙個可讀寫使用者tank1

> db.adduser('tank2','test',true); //為tank資料庫新增了乙個唯讀使用者tank2

> exit //退出

bye[root@localhost zhangy]# mongo

mongodb shell version: 2.4.6

connecting to: tank

> db.auth('tank1','test'); //剛新增的使用者可以登入。

六,php客戶端連線

1, 推薦方法一

$mongo = new mongo();  

$db = $mongo->selectdb('tank'); //切換到tank資料庫

$db->authenticate("tank3", "test"); //認證

$users= $db->selectcollection("users"); //選取users表

$cursor = $users->find(); //讀取資料

foreach ($cursor as $id => $value)

這種方式比較好理解,根命令列下的操作過程差不多。

2,推薦方法二

$mongo = new mongo("mongodb:");  //認證使用者,這裡的資料庫,只啟認證作用

$db = $mongo->selectdb('tank'); //選取資料庫

$users= $db->selectcollection("users");

$cursor = $users->find();

foreach ($cursor as $id => $value)

上面二種方法的不同在於,乙個先選資料庫在認證,乙個先認證在選資料庫。

mongoDB4 0新增使用者許可權

下面資訊給自己做筆記,防止時間長,會忘記 在mongo安裝的bin目錄,開啟cmd,登入mongo,使用以下命令,建立使用者 db.createuser readwriteanydatabase 在服務中,找到mongodb服務 使用管理員許可權,開啟cmd,輸入sc delete mongodb服...

使用者許可權 mysql新增使用者及賦予許可權

建立使用者 use mysql 建立使用者需要操作 mysql 表 語法格式為 host host 為 localhost 表示本地登入使用者,host 為 ip位址或 ip 位址區間,表示指定ip位址的主機可登入,host 為 表示所有主機都可登入,省略代表所有主機create user user...

MongoDB 3 4 2 新增使用者 設定許可權

在專案中需要根據專案執行環境訪問,以不同的身份訪問各自的db,所以研究了一下mongodb的 給mongodb新增兩個使用者分別用於開發環境和測試環境,兩個使用者分別訪問不同的db並擁有db的最高許可權。關閉許可權驗證 啟動mongodb 建立mongodb超級管理員,給予最高許可權 分別建立兩個使...