【发布时间】:2019-03-23 18:53:59
【问题描述】:
我有一个 SQL 表,其中有一列始终使用加密。我正在尝试为 Visual Studio 数据库项目设置 CI / CD 管道。 我无法构建项目,因为 VS2017 无法识别此特定列
[ColumnName] [varchar](max) COLLATE Latin1_General_BIN2 ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = [CEKKeyname], ENCRYPTION_TYPE = Deterministic, ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256') NOT NULL
下面是编译错误
Severity Code Description Project File Line Suppression State
Error SQL71501: Column: [dbo].[mytable].[ColumnName] has an unresolved reference to Column Encryption Key [CEKKeyname].
我已经尝试过这里提到的解决方案 unresolved reference to object [INFORMATION_SCHEMA].[TABLES] 和其他类似的解决方案也没有任何结果。
我使用的是 VS2017 企业版,SSDT 15.1.61808,Azure SQL 数据库
关于如何解决这个问题的任何指示?
【问题讨论】:
-
能否更新 SSDT docs.microsoft.com/en-us/sql/ssdt/…? VS2017更新了吗?
-
@AlbertoMorillo - 我确实通过 Visual Studio 以及独立安装程序更新了 SSDT。似乎没有任何效果
-
项目中是否添加了列加密(CEKKeyname)?
-
@DmitrijKultasev - 我们没有尝试故意将密钥添加到项目中,因为我们不想将该信息暴露给所有开发人员。我想在某个时候在本地尝试一下,看看它是否有助于克服这个错误。再次感谢
-
@user6163763 这不是 SSDT 的工作方式。所有引用的对象都必须在项目中。您可能希望通过 post/pre 脚本创建它,或者在部署时使用一些逻辑来替换此密钥
标签: visual-studio-2017 azure-sql-database database-schema sql-server-data-tools always-encrypted