为 mongo 创建角色
Create role for mongo
在 Go 中,我正在向 mongo 添加一个用户并希望创建一个角色,该角色仅授予对特定集合的访问权限。我是 mongo 的新手,所以不确定具体如何操作。我的尝试是使用 RunCommand。以下是我尝试过的,但我得到的是:
运行时错误:无效内存地址或 nil 指针取消引用
在我的代码下方,我验证了数据库和 ID 的值已正确设置。
createRoleResult := client.Database(db).RunCommand(ctx, bson.D{{"createRole", id},
{"privileges", []bson.M{
{
"resource": bson.A{bson.M{"db": db}, bson.M{"collection": id}, bson.M{"actions": bson.A{"update", "insert", "remove"}}},
},
}}})
此代码的结果相同:
createRoleResult := client.Database(db).RunCommand(ctx, bson.D{{"createRole", id},
{"privileges", []bson.A{
{
bson.D{bson.E{"resource", bson.A{bson.D{bson.E{"db", db}}, bson.D{bson.E{"collection", id}}, bson.E{"actions", bson.A{"update", "insert", "remove"}}}}},
},
}}})
如有任何建议,我们将不胜感激!如果有更好的方法,我洗耳恭听。
工作 shell 代码:
db.createRole(
{
role: "ABC",
privileges: [
{ resource: { db: "MyDB", collection: "ABC" }, actions: [ "update", "insert", "remove", "find" ] }
],
roles: []
}
)
谢谢!
你可以试试这个 Golang 代码:
var commandResult bson.M
command := bson.D{{ "createRole", "ABC" }, { "privileges", bson.A{ bson.D{{ "resource", bson.D{{ "db", "MyDB" }, { "collection", "ABC" }}}, { "actions", bson.A{ "update", "insert" }}}}}, { "roles", bson.A{}}}
err = client.Database("test").RunCommand(context.TODO(), command).Decode(&commandResult)
if err != nil {
log.Fatal(err)
}
fmt.Println(commandResult)
在 Go 中,我正在向 mongo 添加一个用户并希望创建一个角色,该角色仅授予对特定集合的访问权限。我是 mongo 的新手,所以不确定具体如何操作。我的尝试是使用 RunCommand。以下是我尝试过的,但我得到的是:
运行时错误:无效内存地址或 nil 指针取消引用
在我的代码下方,我验证了数据库和 ID 的值已正确设置。
createRoleResult := client.Database(db).RunCommand(ctx, bson.D{{"createRole", id},
{"privileges", []bson.M{
{
"resource": bson.A{bson.M{"db": db}, bson.M{"collection": id}, bson.M{"actions": bson.A{"update", "insert", "remove"}}},
},
}}})
此代码的结果相同:
createRoleResult := client.Database(db).RunCommand(ctx, bson.D{{"createRole", id},
{"privileges", []bson.A{
{
bson.D{bson.E{"resource", bson.A{bson.D{bson.E{"db", db}}, bson.D{bson.E{"collection", id}}, bson.E{"actions", bson.A{"update", "insert", "remove"}}}}},
},
}}})
如有任何建议,我们将不胜感激!如果有更好的方法,我洗耳恭听。
工作 shell 代码:
db.createRole(
{
role: "ABC",
privileges: [
{ resource: { db: "MyDB", collection: "ABC" }, actions: [ "update", "insert", "remove", "find" ] }
],
roles: []
}
)
谢谢!
你可以试试这个 Golang 代码:
var commandResult bson.M
command := bson.D{{ "createRole", "ABC" }, { "privileges", bson.A{ bson.D{{ "resource", bson.D{{ "db", "MyDB" }, { "collection", "ABC" }}}, { "actions", bson.A{ "update", "insert" }}}}}, { "roles", bson.A{}}}
err = client.Database("test").RunCommand(context.TODO(), command).Decode(&commandResult)
if err != nil {
log.Fatal(err)
}
fmt.Println(commandResult)