例如: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超級管理員,給予最高許可權 分別建立兩個使...