中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【Mongo】mongodb的用戶認證

發布時間:2020-08-08 22:43:17 來源:ITPUB博客 閱讀:174 作者:小亮520cl 欄目:關系型數據庫

1.創建超級賬號

  1. > use admin ;
  2. > db . createUser ( { user : "admin" , pwd : "123456" , roles : [ { role : "root" , db : "admin" } ] } )
  3. Successfully added user : {
  4.          "user" : "admin" ,
  5.          "roles" : [
  6.                 {
  7.                          "role" : "root" ,
  8.                          "db" : "admin"
  9.                 }
  10.          ]
  11. }

user:用戶名

pwd:密碼

roles :指定用戶的角色,可以用一個空數組給新用戶設定空角色;在roles字段,可以指定內置角色和用戶定義的角色。 role里的角色 可以選:

  1. Built - In Roles(內置角色):
  2.     1 . 數據庫用戶角色:read、readWrite ;
  3.     2 . 數據庫管理角色:dbAdmin、dbOwner、userAdmin;
  4.     3 . 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
  5.     4 . 備份恢復角色:backup、restore;
  6.     5 . 所有數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
  7.     6 . 超級用戶角色:root
  8.     // 這里還有幾個角色間接或直接提供了系統超級用戶的訪問(dbOwner 、userAdmin、userAdminAnyDatabase)
  9.     7 . 內部角色:__system

具體角色:
  1. Read:允許用戶讀取指定數據庫
  2. readWrite:允許用戶讀寫指定數據庫
  3. dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system . profile
  4. userAdmin:允許用戶向system . users集合寫入,可以找指定數據庫里創建、刪除和管理用戶
  5. clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和復制集相關函數的管理權限。
  6. readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
  7. readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
  8. userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
  9. dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。
  10. root:只在admin數據庫中可用。超級賬號,超級權限




2.開啟權限認證

  1. 配置文件添加
  2. [ dbaadmin@ ip - 172 - 31 - 36 - 77 ~ ] $ more /usr/ local / mongodb/conf/mongod . conf
  3. auth = true


3.重啟后認證超級賬號

  1. [ root@iZ2ze66bhrbxkc31nljgjnZ mongodb ] # /usr/ local / mongodb/bin/mongo
  2. MongoDB shell version : 3 . . 6
  3. connecting to : test
  4. > show dbs ;    --沒權限查看
  5. 2018 - 05 - 07T14 : 29 : 25 . 847 + 0800 E QUERY    Error : listDatabases failed : {
  6.          "ok" : 0 ,
  7.          "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }" ,
  8.          "code" : 13
  9. }
  10.     at Error ( < anonymous > )
  11.     at Mongo . getDBs ( src/mongo/shell/mongo . js : 47 : 15 )
  12.     at shellHelper . show ( src/mongo/shell/utils . js : 630 : 33 )
  13.     at shellHelper ( src/mongo/shell/utils . js : 524 : 36 )
  14.     at ( shellhelp2 ) : 1 : 1 at src/mongo/shell/mongo . js : 47
  15. > use admin ;
  16. switched to db admin
  17. > db . auth ( 'admin' , '123456' ) ; -admin下認證超級賬號, 數據庫帳號是跟著數據庫來走的,哪里創建哪里認證。
  18. 1
  19. > show dbs ;
  20. admin   0 . 078GB
  21. local 0 . 078GB
  22. rundb   0 . 078GB
  23. rundb2  0 . 078GB


4.添加普通賬號

  1. > use rundb2 ;
  2. switched to db rundb2
  3. > db . createUser ( { user : 'runuser2' , pwd : '123456' , roles : [ { role : "dbOwner" , db : " rundb2 " } ] } )
  4. Successfully added user : {
  5.          "user" : "runuser2" ,
  6.          "roles" : [
  7.                 {
  8.                          "role" : "dbOwner" ,
  9.                          "db" : "rundb2"
  10.                 }
  11.          ]
  12. }
  13. > show users ;   <1pre style="margin-top:0px;margin-bottom:0px;white-space:pre-wrap;text-align:justify;font-family:;" "=""> #查看當前庫下的用戶
  14. {
  15.          "_id" : "rundb2.runuser" ,
  16.          "user" : "runuser" ,
  17.          "db" : "rundb2" ,
  18.          "roles" : [
  19.                 {
  20.                          "role" : "readWrite" ,
  21.                          "db" : "rundb2"
  22.                 }
  23.          ]
  24. }
  25. {
  26.          "_id" : "rundb2.runuser2" ,
  27.          "user" : "runuser2" ,
  28.          "db" : "rundb2" ,
  29.          "roles" : [
  30.                 {
  31.                          "role" : "dbOwner" ,
  32.                          "db" : "rundb2"
  33.                 }
  34.          ]
  35. }



5.普通賬號認證

  1. 認證方式一
  2. [ root@iZ2ze66bhrbxkc31nljgjnZ mongodb ] # /usr/ local / mongodb/bin/mongo - u runuser - p 123456  rundb2
  3. MongoDB shell version : 3 . . 6
  4. connecting to : rundb2
  5. > show collections ;
  6. system . indexes
  7. testcoll
  8. testcoll2

 

  認證方式二
  1. [ root@iZ2ze66bhrbxkc31nljgjnZ mongodb ] # /usr/ local / mongodb/bin/mongo
  2. MongoDB shell version : 3 . . 6
  3. connecting to : test
  4. > use rundb2 ;
  5. switched to db rundb2
  6. > show dbs ;
  7. 2018 - 05 - 07T14 : 36 : 46 . 809 + 0800 E QUERY    Error : listDatabases failed : {
  8.          "ok" : 0 ,
  9.          "errmsg" : "not authorized on admin to execute command { listDatabases: 1.0 }" ,
  10.          "code" : 13
  11. }
  12.     at Error ( < anonymous > )
  13.     at Mongo . getDBs ( src/mongo/shell/mongo . js : 47 : 15 )
  14.     at shellHelper . show ( src/mongo/shell/utils . js : 630 : 33 )
  15.     at shellHelper ( src/mongo/shell/utils . js : 524 : 36 )
  16.     at ( shellhelp2 ) : 1 : 1 at src/mongo/shell/mongo . js : 47

  17. > db . auth ( 'runuser2' , '123456' )
  18. 1
  19. > show collections ;
  20. system . indexes
  21. testcoll
  22. testcoll2

5賬號管理

  1. 修改密碼
  2. MongoDB 修改帳號的密碼有兩種方式: 1 . 使用 changeUserPassword 方法 2 . 使用 updateUser 方法里面的 pwd 參數
  3. / / 驗證帳號密碼
  4. > db . auth ( "biadmin" , "biadmin" )
  5. 1
  6. //修改帳號密碼
  7. > db . changeUserPassword ( "biadmin" , "123" )
  8. //使用原密碼驗證失敗返回0
  9. > db . auth ( "biadmin" , "biadmin" )
  10. Error : Authentication failed .
  11. 0
  12. //使用修改后密碼驗證成功返回1
  13. > db . auth ( "biadmin" , "123" )
  14. 1
  15. //使用updateUser 修改密碼
  16. > db . updateUser (
  17.   "biadmin" ,
  18.   {pwd : "biadmin" } )
  19. //驗證密碼成功返回1
  20. > db . auth ( "biadmin" , "biadmin" )
  21. 1

  22. 刪除帳號
  23. MongoDB 刪除帳號有兩種方式: 
  24. 1 . 使用 dropUser ( "username" ) 刪除當前數據庫下指定帳號 
  25. 2 . 使用 dropAllUsers ( ) 刪除數據庫下所有帳號
  26. / / 已經創建兩個測試帳號
  27. > db . getUser ( "test1" )
  28. {
  29.          "_id" : "bitest.test1" ,
  30.          "user" : "test1" ,
  31.          "db" : "bitest" ,
  32.          "roles" : [
  33.                 {
  34.                          "role" : "dbAdmin" ,
  35.                          "db" : "bitest"
  36.                 }
  37.          ]
  38. }
  39. > db . getUser ( "test2" )
  40. {
  41.          "_id" : "bitest.test2" ,
  42.          "user" : "test2" ,
  43.          "db" : "bitest" ,
  44.          "roles" : [
  45.                 {
  46.                          "role" : "dbAdmin" ,
  47.                          "db" : "bitest"
  48.                 }
  49.          ]
  50. }
  51. //使用dropUser刪除帳號test1成功返回true
  52. > db . dropUser ( "test1" )
  53. true
  54. //查詢帳號test1已不存在
  55. > db . getUser ( "test1" )
  56. null
  57. //使用dropAllUsers刪除所有帳號
  58. > db . dropAllUsers ( )
  59. 2
  60. //查詢帳號 test2,biadmin 都已不存在
  61. > db . getUser ( "test2" )
  62. null
  63. > db . getUser ( "biadmin" )
  64. null
  65. //查詢數據庫下所有帳號返回空數組
  66. > db . getUsers ( )
  67. [ ]


6 更改用戶信息

更改role,密碼都行
db.updateUser(
    "test",{
        roles:[ { role: "readWrite", db: "welike_mongo" } ],
        pwd:"123456"
    }
)

更多的操作查看參照文檔:
https://www.cnblogs.com/shiyiwen/p/5552750.html

https://www.cnblogs.com/damingge/p/6507605.html



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴国县| 丰宁| 济宁市| 东丽区| 海口市| 泸水县| 越西县| 吉林市| 神木县| 林西县| 庆云县| 板桥市| 卓资县| 安远县| 华宁县| 庆城县| 阿拉善左旗| 延寿县| 勃利县| 上饶市| 安福县| 宜昌市| 长沙市| 苍溪县| 郧西县| 柘荣县| 唐河县| 临高县| 威信县| 淮南市| 柯坪县| 南陵县| 沛县| 措勤县| 宁安市| 安塞县| 龙井市| 会宁县| 福州市| 龙州县| 香河县|