如何使用字段级加密在 Pymongo 中获取 KeyByAltName?

How can you getKeyByAltName in Pymongo using Field Level Encryption?

提问人:Ben Smith 提问时间:12/22/2022 最后编辑:Ben Smith 更新时间:12/22/2022 访问量:66

问:

我一直在尝试获取我使用此存储库 https://github.com/mongodb-developer/python-quickstart-code 生成的密钥,它对于在 python 中创建密钥非常有用,但是如何获取 altname 的密钥?

我想也许最好尝试运行以下命令: 但是我收到错误getKeyByAltName不存在:db.command("getKeyByAltName", keyAltName="nameofkeyaltnameadmin")

pymongo.errors.OperationFailure: no such command: 'getKeyByAltName', full error: {'ok': 0.0, 'errmsg': "no such command: 'getKeyByAltName'", 'code': 59, 'codeName': 'CommandNotFound'}

即使根据文档确实如此,https://www.mongodb.com/docs/v4.2/reference/method/KeyVault.getKeyByAltName/ 谁能帮我解决这个问题?我有点卡住了......

我的mongodb版本是:

db version v6.0.3
Build Info: {
    "version": "6.0.3",
    "gitVersion": "f803681c3ae19817d31958965850193de067c516",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "windows",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}
MongoDB 加密 pymongo 客户端

评论


答:

0赞 Joe 12/22/2022 #1

getKeyByAltName是 KeyVault 对象的方法。它是一种客户端字段级加密方法。

db.command 用于在服务器上运行数据库命令

评论

0赞 Ben Smith 12/22/2022
是的,在客户端加密类中找到了函数 def get_key_by_alt_name(self, key_alt_name: str)
0赞 dododo 12/22/2022 #2

此方法应该位于 ClientEncryption 对象中(请参阅此处的示例测试),我不是 python 开发人员,但 getKeyByAltName 应该在那里

评论

0赞 Ben Smith 12/22/2022
啊,是的,你是对的,不知何故我错过了那个功能