权限管理
更新时间:2026-08-04
查询用户列表
使用以下代码可以查询指定 MONGODB 实例的用户列表。
Go
1import (
2 "fmt"
3 "github.com/baidubce/bce-sdk-go/services/mongodb"
4)
5
6args := &mongodb.ListUsersArgs{
7 // 分页标记,首页传空字符串
8 Marker: "",
9 // 每页最大条数,最大 1000,默认 1000
10 MaxKeys: 100,
11}
12result, err := client.ListUsers("instanceId", args)
13if err != nil {
14 fmt.Printf("list users error: %+v\n", err)
15 return
16}
17fmt.Println("list users success: ", result)
参数说明
| 参数名 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
| instanceId | String | 是 | 实例 ID |
| args.Marker | String | 否 | 分页标记,第一页传空字符串,后续页传上一页返回的 NextMarker |
| args.MaxKeys | Int | 否 | 每页最大条数,有效范围 1~1000,默认 1000 |
返回值说明
| 字段名 | 类型 | 说明 |
|---|---|---|
| Marker | String | 本次查询的起始标记 |
| MaxKeys | Int | 每页最大条数 |
| IsTruncated | Bool | 是否还有更多数据,true 表示有下一页 |
| NextMarker | String | 下一页的分页标记,IsTruncated 为 true 时有效 |
| Result | Array | 用户列表,元素类型见下表 |
UserModel 结构
| 字段名 | 类型 | 说明 |
|---|---|---|
| name | String | 用户名 |
| description | String | 用户描述 |
| roles | Array | 角色列表,元素类型见 RoleInfo |
RoleInfo 结构
| 字段名 | 类型 | 说明 |
|---|---|---|
| dbName | String | 数据库名 |
| role | String | 角色,如 read、readWrite 等 |
创建用户
使用以下代码可以为指定 MONGODB 实例创建用户。
Go
1import (
2 "fmt"
3 "github.com/baidubce/bce-sdk-go/services/mongodb"
4)
5
6args := &mongodb.CreateUserArgs{
7 // 用户名,必选
8 Name: "myuser",
9 // 密码,必选(SDK 内部自动加密)
10 Password: "your-password",
11 // 描述信息,可选
12 Description: "用户描述",
13 // 角色列表,必选
14 Roles: []mongodb.RoleInfo{
15 {
16 DbName: "mydb",
17 Role: "readWrite",
18 },
19 },
20}
21err := client.CreateUser("instanceId", args)
22if err != nil {
23 fmt.Printf("create user error: %+v\n", err)
24 return
25}
26fmt.Println("create user success")
参数说明
| 参数名 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
| instanceId | String | 是 | 实例 ID |
| args.Name | String | 是 | 用户名 |
| args.Password | String | 是 | 用户密码,SDK 会自动使用 AES-128 加密后传输 |
| args.Description | String | 否 | 用户描述 |
| args.Roles | Array | 是 | 角色列表,每项包含 DbName 和 Role |
注意: 密码由 SDK 内部自动加密,开发者传入明文密码即可。
更新用户权限
使用以下代码可以更新指定用户的角色权限。
Go
1import (
2 "fmt"
3 "github.com/baidubce/bce-sdk-go/services/mongodb"
4)
5
6args := &mongodb.UpdateUserRolesArgs{
7 // 用户名,必选
8 Name: "myuser",
9 // 角色列表,必选
10 Roles: []mongodb.RoleInfo{
11 {
12 DbName: "mydb",
13 Role: "read",
14 },
15 },
16}
17err := client.UpdateUserRoles("instanceId", args)
18if err != nil {
19 fmt.Printf("update user roles error: %+v\n", err)
20 return
21}
22fmt.Println("update user roles success")
参数说明
| 参数名 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
| instanceId | String | 是 | 实例 ID |
| args.Name | String | 是 | 用户名 |
| args.Roles | Array | 是 | 新角色列表,此操作为全量覆盖 |
删除用户
使用以下代码可以删除指定 MONGODB 实例中的用户。
Go
1import (
2 "fmt"
3 "github.com/baidubce/bce-sdk-go/services/mongodb"
4)
5
6args := &mongodb.DropUserArgs{
7 // 用户名,必选
8 Name: "myuser",
9}
10err := client.DropUser("instanceId", args)
11if err != nil {
12 fmt.Printf("drop user error: %+v\n", err)
13 return
14}
15fmt.Println("drop user success")
参数说明
| 参数名 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
| instanceId | String | 是 | 实例 ID |
| args.Name | String | 是 | 要删除的用户名 |
评价此篇文章
