一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - MongoDB - mongodb權(quán)限設(shè)置之添加管理員、普通用戶的方法

mongodb權(quán)限設(shè)置之添加管理員、普通用戶的方法

2020-04-25 17:12MongoDB教程網(wǎng) MongoDB

這篇文章主要介紹了mongodb添加管理員、普通用戶的方法,同時(shí)介紹了mongodb開啟權(quán)限認(rèn)證后PHP客戶端的兩種連接方法,需要的朋友可以參考下

我知道的關(guān)系型數(shù)據(jù)庫都是有權(quán)限控制的,什么用戶能訪問什么庫,什么表,什么用戶可以插入,更新,而有的用戶只有讀取權(quán)限。

例如:mysql安裝配置好后,有一個(gè)自帶的mysql數(shù)據(jù)庫,里面有一張user表,用來存放用戶,以及用戶權(quán)限,而mongodb這個(gè)最像關(guān)系型的數(shù)據(jù)庫,有沒有這樣的表呢。

一、掌握權(quán)限,理解下面4條基本上就差不多

1、mongodb是沒有默認(rèn)管理員賬號(hào),所以要先添加管理員賬號(hào),在開啟權(quán)限認(rèn)證。
2、切換到admin數(shù)據(jù)庫,添加的賬號(hào)才是管理員賬號(hào)。
3、用戶只能在用戶所在數(shù)據(jù)庫登錄,包括管理員賬號(hào)。
4、管理員可以管理所有數(shù)據(jù)庫,但是不能直接管理其他數(shù)據(jù)庫,要先在admin數(shù)據(jù)庫認(rèn)證后才可以。這一點(diǎn)比較怪

二、添加管理員賬號(hào)
 

復(fù)制代碼 代碼如下:

[root@localhost test]# mongo
MongoDB shell version: 2.4.6
connecting to: tank
> use admin                    //切換到admin數(shù)據(jù)庫
switched to db admin
> show collections;
system.indexes
system.users                   //用戶表
> db.system.users.find();      //用戶表沒有數(shù)據(jù)
> db.addUser('tank','test');   //添加一個(gè)管理員賬號(hào)
{
    "user" : "testuser",
    "readOnly" : false,
    "pwd" : "988432606980d0695e4f668f6bbc643a",
    "_id" : ObjectId("529e5d543b6a4608ac833429")
}



三、開啟動(dòng)用戶權(quán)限認(rèn)證

復(fù)制代碼 代碼如下:

[root@localhost test]# vim /etc/mongodb.conf           //將auth=true前面的注釋拿掉
[root@localhost test]# /etc/init.d/mongod restart      //重啟生效



四、用戶只能在用戶所在數(shù)據(jù)庫登錄,管理員需要通過admin認(rèn)證后才能管理其他數(shù)據(jù)庫

復(fù)制代碼 代碼如下:

[root@localhost test]# mongo
MongoDB shell version: 2.4.6
connecting to: tank
> show dbs;           //顯示所有數(shù)據(jù)庫失敗,因?yàn)檫€沒有認(rèn)證
Wed Dec  4 06:39:50.925 listDatabases failed:{ "ok" : 0, "errmsg" : "unauthorized" } at src/mongo/shell/mongo.js:46
> db.auth('tank','test');    //認(rèn)證失敗,因?yàn)檫@個(gè)用戶不屬于tank這個(gè)數(shù)據(jù)庫
Error: 18 { code: 18, ok: 0.0, errmsg: "auth fails" }
0
> use admin        //切換到admin數(shù)據(jù)庫
switched to db admin
> db.auth('tank','test');   //在admin數(shù)據(jù)庫認(rèn)證成功
1
> use tank;           //切換到tank數(shù)據(jù)庫
switched to db tank
> show collections;   //不會(huì)在提示沒有權(quán)限了
contact
system.indexes
users



五、添加普通用戶

復(fù)制代碼 代碼如下:

> use tank;
switched to db tank
> db.addUser('tank1','test');     //為tank數(shù)據(jù)庫添加了一個(gè)可讀寫用戶tank1
{
    "_id" : ObjectId("529e5f8474b4c660718a70f3"),
    "user" : "tank1",
    "readOnly" : false,
    "pwd" : "35dd47abff098f5b4f0b567db8edeac5"
}
> db.addUser('tank2','test',true);  //為tank數(shù)據(jù)庫添加了一個(gè)只讀用戶tank2
{
    "user" : "tank2",
    "readOnly" : true,
    "pwd" : "1792916c544d247538ded52e6df7b887",
    "_id" : ObjectId("529e67553992b24438d5e315")
}
> exit    //退出
bye
[root@localhost zhangy]# mongo
MongoDB shell version: 2.4.6
connecting to: tank
> db.auth('tank1','test');    //剛添加的用戶可以登錄。
1



六、php客戶端連接

1、 推薦方法一

復(fù)制代碼 代碼如下:


$mongo = new Mongo();   

 

$db = $mongo->selectDB('tank');   //切換到tank數(shù)據(jù)庫 

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

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

$cursor = $users->find();   //讀取數(shù)據(jù)

foreach ($cursor as $id => $value) {
    echo "$id: "; print_r($value); echo "<br>";
}[code]

 


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

 

2、推薦方法二

復(fù)制代碼 代碼如下:


$mongo = new Mongo("mongodb://tank3:[email protected]:27017/tank");   //認(rèn)證用戶,這里的數(shù)據(jù)庫,只啟認(rèn)證作用

 

$db = $mongo->selectDB('tank');  //選取數(shù)據(jù)庫

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

$cursor = $users->find();

foreach ($cursor as $id => $value) {
    echo "$id: "; print_r($value); echo "<br>";
}


上面二種方法的不同在于,一個(gè)先選數(shù)據(jù)庫在認(rèn)證,一個(gè)先認(rèn)證在選數(shù)據(jù)庫。

 

延伸 · 閱讀

精彩推薦
  • MongoDBmongodb基本命令實(shí)例小結(jié)

    mongodb基本命令實(shí)例小結(jié)

    這篇文章主要介紹了mongodb基本命令,結(jié)合實(shí)例形式總結(jié)分析了MongoDB數(shù)據(jù)庫切換、查看、刪除、查詢等基本命令用法與操作注意事項(xiàng),需要的朋友可以參考下...

    dawn-liu3652020-05-26
  • MongoDBMongoDB安裝圖文教程

    MongoDB安裝圖文教程

    這篇文章主要為大家詳細(xì)介紹了MongoDB安裝圖文教程,分為兩大部分為大家介紹下載MongoDB和安裝MongoDB的方法,感興趣的小伙伴們可以參考一下 ...

    Yangyi.He6132020-05-07
  • MongoDBMongoDB憑什么躋身數(shù)據(jù)庫排行前五

    MongoDB憑什么躋身數(shù)據(jù)庫排行前五

    MongoDB以比去年同期超出65.96分的成績繼續(xù)雄踞榜單前五,這個(gè)增幅在全榜僅次于PostgreSQL的77.99,而其相對(duì)于4月份的6.10分的增長也是僅次于微軟SQL Server排名...

    孫浩峰3892020-05-22
  • MongoDB分布式文檔存儲(chǔ)數(shù)據(jù)庫之MongoDB分片集群的問題

    分布式文檔存儲(chǔ)數(shù)據(jù)庫之MongoDB分片集群的問題

    這篇文章主要介紹了分布式文檔存儲(chǔ)數(shù)據(jù)庫之MongoDB分片集群的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋...

    Linux-18743072020-12-20
  • MongoDBMongodb實(shí)現(xiàn)定時(shí)備份與恢復(fù)的方法教程

    Mongodb實(shí)現(xiàn)定時(shí)備份與恢復(fù)的方法教程

    這篇文章主要給大家介紹了Mongodb實(shí)現(xiàn)定時(shí)備份與恢復(fù)的方法教程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面...

    chenjsh364522020-05-13
  • MongoDB遷移sqlserver數(shù)據(jù)到MongoDb的方法

    遷移sqlserver數(shù)據(jù)到MongoDb的方法

    這篇文章主要介紹了遷移sqlserver數(shù)據(jù)到MongoDb的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下...

    聽楓xl9682021-01-03
  • MongoDBMongoDB中javascript腳本編程簡介和入門實(shí)例

    MongoDB中javascript腳本編程簡介和入門實(shí)例

    作為一個(gè)數(shù)據(jù)庫,MongoDB有一個(gè)很大的優(yōu)勢——它使用js管理數(shù)據(jù)庫,所以也能夠使用js腳本進(jìn)行復(fù)雜的管理——這種方法非常靈活 ...

    MongoDB教程網(wǎng)6982020-04-24
  • MongoDBMongoDB 內(nèi)存使用情況分析

    MongoDB 內(nèi)存使用情況分析

    都說 MongoDB 是個(gè)內(nèi)存大戶,但是怎么知道它到底用了多少內(nèi)存呢...

    MongoDB教程網(wǎng)10002020-09-29
主站蜘蛛池模板: 国语视频高清在线观看 | 免费在线观看中文字幕 | 护士的小嫩嫩好紧好舒服 | 青青在线| 国产精品怡红院在线观看 | 国产在线观看人成激情视频 | 校草太大了h | 久久WWW免费人成一看片 | 精品亚洲视频在线观看 | 欧美精品久久久久久久影视 | 四虎成人www国产精品 | 日韩妹妹| 免费成年网 | 波多野结衣178部中文字幕 | 91美女在线 | 久久re这里精品23 | 黄色a∨ | 亚洲一区二区三区91 | ai换脸杨颖被啪在线观看 | 四神集团1涨奶是第几章 | 风间由美理论片在线观看 | 91桃色污 | 日本特黄一级大片 | 午夜宅男网 | 啪啪艹| 青青久久精品国产 | kayden kross喷水| 丁香网五月天 | 国产51社区精品视频资源 | 亚洲另类第一页 | 精品国产mmd在线观看 | 国产精品青青青高清在线密亚 | 亚洲国产成人久久综合区 | 麻豆婷婷 | 亚洲一级片在线播放 | 亚洲九九精品 | 成人国产精品视频 | 成人性色生活片免费网 | 美女扒开腿让男人桶爽动态图片 | 男人猛进猛出女人下面视频 | 亚洲 欧美 国产 在线 日韩 |