用户及角色管理(上)

来源:互联网 发布:淘宝电脑维修可靠吗 编辑:程序博客网 时间:2024/06/05 02:04
db版本2.6.4
系统内建角色如下
Database User Roles:
read 
readWrite

Database Administration Roles:
dbAdmin
dbOwner
userAdmin

Cluster Administration Roles:
clusterAmin
clusterManager
clusterMonitor
hostManager

Backup and Restoration Roles:
backup
restore

All-Database Roles: (只能授予给admin数据库的用户)
readAnyDatabase
readWriteAnyDatabase
userAdminAnyDatabase
dbAdminAnyDatabase

Superuser Roles:
root

详细请参考 http://docs.mongodb.org/manual/reference/built-in-roles/


不需要用户认证即可对数据库做任何操作的情况:
1.数据库没有以--auth方式启动
2.数据库以--auth启动,但admin数据库里的system.users里为空

1.创建用户

use admin

db.createUser(
  {
    user: "root",
    pwd: "redhat",
    roles:
    [
      {
        role: "dbAdmin",
        db: "test"
      },
 {
   role: "dbAdminAnyDatabase",
db: "admin"
 }, "dbOwner" //这个dbOwner的角色会自动关联到admin数据库
    ]
  }
)
用户创建好之后就可以登录了
mongo --port 27017 -u root -p redhat --authenticationDatabase admin

2.查看用户信息及关联的角色

db.getUser("root")
db.getUsers()

3.查看用户权限

db.runCommand(
  {
    usersInfo:"root",
    showPrivileges:true
  }
)

4.修改用户密码

db.changeUserPassword("root", "111111")
或者
db.updateUser(
   "root",
   {
      pwd: "222222",
      customData: { title: "user test" },
// roles: [ {role: "dbOwner", db: "admin"}] //如果希望替换掉之前的角色信息 可以这样写
   }
)

5.收回用户角色的授权

db.revokeRolesFromUser("root",

{role: "dbAdminAnyDatabase",
    db :"admin"}
]
)

6.给用户授予角色

db.grantRolesToUser(
    "root",
    [
      { role: "userAdminAnyDatabase", db: "admin" },{role: "dbAdminAnyDatabase", db: "admin"}
    ]
)

7.删除用户

db.dropUser("root")
db.dropAllUsers()















0 0
原创粉丝点击