【问题标题】:How to logout from SSMS 2016 (Microsoft SQL Server)?如何从 SSMS 2016 (Microsoft SQL Server) 注销?
【发布时间】:2017-07-18 12:23:06
【问题描述】:

我已实施 Always Encryption 来加密 Azure DB 中 Patient 表的 SSN 字段。(使用 Azure Key Vault 作为我的密钥存储提供程序)

我使用 SSMS 2016(13.0.16100.1) 作为客户端工具。
最初,我尝试为那个特定的 Patient 表执行简单的 select 语句。 它带有 Sign*(见下文)* 的弹出窗口。这样我就可以使用我的帐户登录以解密我的 SSN 列。

这里我经历了两种情况:

案例 1

无法从当前凭据注销

假设我第一次输入了一个有效的凭据(谁可以访问解密密钥@ssn)

在这种情况下,这些凭据在某种程度上是在内部保存的。一世 无法从我的凭据中注销。

最初我认为凭据已保存在会话中 基于。所以它只适用于那个特定的会话。但它不是......

相同的凭据将适用于不同的会话,即使我已经 尝试关闭我的 SSMS 并在另一个仍在使用的窗口中重新打开 旧凭据。

案例 2

无法重新输入凭据

假设我第一次使用无效凭据签名(谁无权解密密钥@ssn)

在这种情况下,我无法解密 SSN 列。所以 再次是在内部保存的凭据。

所以如果我想用我的有效凭据重新输入。我做不到。


我认为为了解决这两种情况,只有一个解决方案=>从当前凭据注销

PS:我知道我们还有另一个选项使用 Active Directory 密码验证登录。但不幸的是,这将仅用于仅配置 Active Directory 管理员。但在我的组织中有超过 100 名成员。所以没有办法让至少 10 名成员使用 Active Directory 登录

更新1


提前致谢,
周杰伦

【问题讨论】:

    标签: azure authentication azure-keyvault ssms-2016 always-encrypted


    【解决方案1】:

    首先,一个澄清的评论:上面的弹出对话框提示您输入 Azure Key Vault 的凭据(您可能会在其中存储 Always Encrypted 的列主密钥,它可以保护患者表中的数据),而不是数据库凭据。数据库身份验证(例如,通过“连接到服务器”对话框中的 Active Directory 密码身份验证)独立于 Azure 资源管理器(Azure Key Vault)身份验证。尽管您可以将相同的身份用于数据库身份验证和 Azure RM,但并非必须如此。

    您所描述的问题将在即将发布的 SSMS 17.2 中得到解决,方法是允许您在每个身份验证点更改 Azure RM 用户身份。此外,在 SSMS 17.2 中,凭据/令牌将绑定到进程并且不会持久化,因此在重新启动后,SSMS 将不会记住它们。添加“注销”控件已在我们的路线图中,但我们还没有具体的时间表。

    您描述的问题的一种解决方法可能是启动 Always Encrypted 向导(在任何表上的右客户端并选择 Encrypt Columns)并单击更改用户(在列主密钥配置页面上),然后单击取消并取消向导。这应该使缓存中的当前凭据无效,然后您查询表,弹出窗口应该打开并且您应该能够输入新凭据。

    谢谢,

    雅库布

    【讨论】:

    • 好的,感谢您的回复。关于您的解决方法,它对我不起作用。它再次显示一个不同的错误,如 Purge。我按照您的步骤操作,但它仍然使用我的旧凭据。不清除缓存(请参阅问题中的我的 UPDATE1)
    • 这确实对我有用,我遇到了登录到错误帐户的问题,因此无法查看加密的列数据。我能够从加密对话框更改用户并解决问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    相关资源
    最近更新 更多