gpt4 book ai didi

sql-server - "Value cannot be null. Parameter name: reportedElement"将新的 Always Encrypted 列添加到现有表时

转载 作者:行者123 更新时间:2023-12-03 14:43:15 25 4
gpt4 key购买 nike

使用 Visual Studio 数据库项目 (SSDT),我向现有表添加了一个新列。我正在使用 Always Encrypted 来加密各个列。当我添加列并尝试发布时,我在 Visual Studio 中看到一个弹出窗口,显示“值不能为空。参数名称:reportedElement”。

如果我不加密该列,它就可以工作。
如果我从表中清除现有数据,它就可以工作。
但是只是尝试添加一个新的可为空的加密列并不会发布。它甚至不会生成将应用的脚本。

Visual Studio Error

我运行了 daxFX 和 SSDT 日志记录并使用 Windows 事件查看器查看了日志,但我只看到相同的错误“值不能为空。参数名称:reportedElement”。

这就是添加的列定义的样子。

[MyNewColumn] INT ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = [DefaultColumnEncryptionKey], ENCRYPTION_TYPE = DETERMINISTIC, ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256') NULL

我希望 Visual Studio 能够成功发布,添加我新的可为空的加密列,但实际行为是一个弹出窗口,指出“值不能为空。参数名称:reportedElement”。

最佳答案

我遇到了完全相同的问题,除了我解密了该列以执行基于它的查找,而我在加密时无法进行查找(这是一个本地开发数据库)。
解决方案是通过 SSMS 手动执行加密,然后运行发布。我不确定为什么 VS 无法发布更改,加密 key 存储在本地证书存储中并且 VS 以管理员身份运行,但它可能无法访问 key 来加密数据,但 SSMS 可以。

关于sql-server - "Value cannot be null. Parameter name: reportedElement"将新的 Always Encrypted 列添加到现有表时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55924997/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com