使用每个用户数据的单独密钥加密 SQL Server Azure 数据库中的数据

2023-12-26

我正在尝试创建基于 Azure SQL 数据库后端的服务。

该服务将是多租户的,并将包含来自多个“客户端”(可能有数十万)的高度敏感信息,这些信息必须彼此严格隔离并严格防止数据泄漏。 “按设计”

使用如此多的单独数据库是不可行的,因为会有很多客户,但每个客户的信息却很少。

我研究了 Azure 提供的透明加密,但这本质上会将整个数据库加密为一个整体,因此换句话说,它不能防止客户端或其他人之间的泄漏;由于开发错误或恶意攻击,“客户”的信息永远不会落入其他任何人的手中,这一点非常重要。

因此,我真正想要实现的是使用不同的密钥对数据库中每个客户端的数据进行加密,这样您就必须从每个客户端(从他们的“物理”位置)获取密钥来解密您想要的任何数据。可能会设法从数据库中提取该特定客户的信息,这对任何人来说几乎都是不可能的。

我的意思清楚吗?

你们对如何解决这个问题有什么建议,或者知道任何允许此功能的第三方解决方案吗?还有其他建议吗?


您正在考虑在单个表中“按设计”保护/隔离租户,为什么不看看行级安全性 https://msdn.microsoft.com/en-us/library/dn765131.aspx。您可以将其配置为仅向特定租户提供适用的行。

这并不能直接解决您最初关于使用每个租户的单独密钥加密数据的问题;如果您为每个租户都有一个单独的表,那么您可以通过以下方式执行此操作始终加密 https://msdn.microsoft.com/en-us/library/mt163865.aspx,但是如果您尝试处理 200k 个密钥,这在密钥管理方面似乎会有些复杂。

AFAIK,没有原生 SQL Server 功能来使用不同的密钥来加密属于租户的每组行,但可能有一些我还没有见过的优雅的解决方案;当然,你可以在应用程序端执行此操作并将其存储在 SQL 中,不会有任何问题;技巧与上面基于 AE 的解决方案相同 - 管理大量密钥。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用每个用户数据的单独密钥加密 SQL Server Azure 数据库中的数据 的相关文章

  • H2数据库:如何进行加密保护,而不暴露文件加密密钥

    我们在服务器模式下使用Java H2数据库 因为我们不希望用户访问数据库文件 为了对数据库文件添加更多保护 我们计划使用 AES 加密 将 CIPHER AES 添加到数据库 URL 以防存储被盗 但是 每个用户在连接时还需要提供文件保护密
  • MD5 哈希怎么可能无法“解密”呢? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么 MD5 哈希值不可逆 https stackoverflow com questions 330207 how come md5 hash values are not reversible
  • 如何更改 sql azure 服务器位置

    我想将现有的 SQL Azure 位置转移到其他位置 但我认为 Azure 管理门户上目前没有功能可以执行此操作 我刚刚用谷歌搜索了一下 发现了一个链接http social msdn microsoft com Forums en US
  • Azure 错误 - 连接字符串困难

    我正在 vs 2015 中使用 mvc5 应用程序 每当我尝试从数据库访问项目时都会收到错误 用户 your username 登录失败 当我进入 Azure 门户时 允许访问 Azure 服务 设置处于打开状态 并列出了我的客户端 IP
  • 如何在 AES 加密中使用随机数进行解密

    我是密码学新手 我需要使用 AES 和一些配置来加密文本 Encryption mode GCM Key size 256 bits Nonce size 96 bits MAC size 128 bits 由于 AES 是一种对称算法 所
  • 如何检查Azure SQL数据库中是否已存在数据库用户

    我的新客户计划使用 Azure 托管 SQL 数据库服务 我正在使用 dacpac 来部署数据库 在 dacpac 中 我有一个部署后脚本 用于创建 sql 用户 如下所示 IF NOT EXISTS SELECT name FROM sy
  • 可以挂载未加密的 obb 但出现加密错误 21

    这与 kitkat bug 无关 我正在 4 4 2 中测试 我可以毫无问题地挂载 obb 文件 问题是当尝试对加密的 obb 执行相同操作时 我在 Windows 中使用 jobb 如下 jobb d my folder o exp ob
  • 如何向数据添加填充以使其可以接受 pycrypto 库中的 AES256 加密算法

    有人可以告诉我如何向数据添加填充 使其可以接受 pycrypto 库 Python 中的 AES256 加密算法 提前非常感谢 看着文档 http www dlitz net software pycrypto doc 看来要由图书馆用户自
  • 如何在Java中使用我的密码加密和解密字符串(PC而非移动平台)? [复制]

    这个问题在这里已经有答案了 我想加密一个字符串然后将其放入文件中 当我想要的时候也想解密它 我不需要很强的安全性 我只是想让其他人更难获取我的数据 我尝试了几种方法 这是这些 Md5加密 如何在 Android 中对字符串进行哈希处理 ht
  • Silverlight:加密Web服务的用户名和密码

    加密不是我的强项 我正在 Silverlight 3 中编写一个应用程序 它与 Web 服务通信以对用户进行身份验证 Web 服务不一定在 SSL 下托管 我正在尝试找到一种在传递用户名和密码之前对其进行可逆加密的方法 该方法不依赖于将密钥
  • 如何确定给定的表是否是内存优化的?

    早上好 我的第一个问题是如何确定在 MS SQL Server 中创建的表是否是内存优化的 我有一些表 但我不记得我创建的其中一些表是否经过内存优化 非常感谢您的回答 为了重复这里的另一个答案 这是一种获取状态的方法all数据库中的表 se
  • 如何检查 AJAX 请求的真实性

    我正在设计一个网站 让用户尽快解决谜题 JavaScript 用于为每个谜题计时 当谜题完成时 毫秒数通过 AJAX 发送到服务器 如何保证服务器收到的时间不是用户伪造的 我不认为基于会话的真实性令牌 Rails 中用于表单的那种 就足够了
  • 用于加密的 Webauthn

    我们有一个 PWA 项目 我们想要实现客户端加密 我们希望将 Webauthn 用作与密码结合的第二因素 在后台我们使用随机生成的密钥来加密 解密数据库 该密钥与密码对称加密存储在服务器上 然而 我正在努力寻找一种使用 webauthn 向
  • 时间历史表中的重复项

    We have JCC提供从中抽取数据的Oracle to SQL Server 2016 由于某些未知原因 历史表中存在具有相同开始和结束时间的重复项 怎么会发生呢 我尝试根据条件更新记录SET Column Column 在这种情况下
  • Azure 数据工厂活动副本:使用 @pipeline().TriggerTime 评估接收器表中的列

    使用数据工厂 V2 我尝试实现从一个 Azure SQL 数据库到另一个数据库的数据流复制 我已将源表的所有列与接收器表映射 但在接收器表中我有一个空列 我想在其中输入管道运行时 有谁知道如何在接收器表中填充此列而不将其出现在源表中 下面是
  • 将大数字转换为字母(然后再转换回来)

    是否有一个术语来描述将大数字存储为字母的想法 例如 假设我有 相对较小的 数字 138201162401719 并且我想将字符数缩小到尽可能少的字符数 我知道这无助于节省磁盘空间 英文字母表中有 26 个字母 但我将它们算作 25 个 因为
  • Azure 上的 SSAS 表格?

    我正在尝试部署 ssas 表格模型 我不知道我在做什么 我用VS2013在SQL Server 2008 R2上制作了多维 我想尝试将 Tabular 与 Power BI 结合使用 所以我设置了一个 SQL Azure DB 我有 Azu
  • SQL Server 2016 JSON:选择字符串数组而不是对象数组

    我是 SQL Server 中的 JSON 新手 不知道如何返回简单的字符串数组 DECLARE T TABLE value NVARCHAR MAX INSERT INTO T value VALUES foo INSERT INTO T
  • Java - 使用数组中的值的replace()方法正在更改数组值?

    我正在做类似的事情 public static String list a b c d It gives me a NullPointeException if I didn t use static public String encry
  • 恢复 SQL Server 数据库 - 主密钥未打开

    我必须制作远程 SQL Server 数据库的本地副本 我通过使用 Management Studio 中的 任务 gt 备份 来完成此操作 然后 我在本地恢复了备份 该备份似乎包含了所有内容 表 用户 对称密钥和证书 当我尝试执行需要打开

随机推荐

  • IPv4 地址渲染的 GHC Haskell 性能

    我最近在 haskell 中构建了一个用于处理 IPv4 地址的库 我写了两个函数来渲染IPv4写给Text令我惊讶的是 这种幼稚的方法胜过我实际想到的方法 这是相关的部分 首先 有的定义IPv4 https github com andr
  • URL 协议处理程序安全警告

    我有一个自定义 url 协议处理程序 用于处理 myhandler path to something 形式的 url 它被注册到本地安装的客户端应用程序 该应用程序处理请求并执行 正确的操作 然而 当我在 Outlook 2007 中有这
  • PayPal Express Checkout 即时更新未更新运费

    我正在使用 Paypal Express Checkout 一切正常 除了在调用回拨时承运商未更新之外 我可以验证回调是否被调用 调用已记录 当 Paypal 调用包含客户发货国家 地区的回调 URL 时 我返回以下值 METHOD Cal
  • SQL Server 中 7 天滚动平均值的 SQL 查询

    我有一个每小时产品使用情况 产品使用次数 数据的表格 ID bigint ProductId tinyint Date int YYYYMMDD Hour tinyint UsageCount int 1 20140901 0 10 1 2
  • 单页应用程序 (SPA) 的单点登录 (SSO) 解决方案/架构

    我研究 SPA 的 SSO 解决方案已经有一段时间了 有很多解决方案存在细微的差别 同时我还发现并不是每个人对 SSO 都有相同的理解 并且没有多少针对 SPA 的 SSO 既定模式 因此 我并不是要求详细的设计 架构 而是只是尝试看看这个
  • C# listview - 嵌入控件

    任何人都可以帮助我在列表视图中嵌入控件吗 我需要添加按钮控件作为列表视图的子项 谢谢 好吧 您可能正在谈论 Windows 窗体ListView http msdn microsoft com en us library system wi
  • Twitter Bootstrap 导航栏菜单滚动

    使用时twitter bootstrap 3 在移动设备菜单上nabber有水平和垂直滚动条 它不在那里2 3我不知道如何禁用它并让菜单项扩展至完整而没有任何滚动条 这是 Bootstrap 3 的新功能 最好的方法是删除或注释掉 less
  • 是否可以将JavaFX的WebView更改为Chrome

    我们正在尝试创建一个使用 html5 canvas 打开 url 的桌面应用程序 我们使用 Java 8 JavaFX 实现它 但我们在渲染草图时遇到了糟糕的反应 这在 Chrome 浏览器中运行良好 是否可以在JavaFx应用程序中嵌入c
  • 拆分 pandas 中的地址列

    我有一个像这样的熊猫数据集 import pandas as pd data id 001 002 003 004 address William J Clare n290 Valley Dr nCasper WY 82604 nUSA 1
  • 为什么 Boost.Spirit 能够正确地将标识符解析为 std::string,而不是解析为仅由 std::string 组成的改编结构?

    我为标识符定义了一条规则 以字母字符开头 后跟任意数量的字母数字字符 当我直接解析为时 我得到不同的结果std string与包含单个的改编结构相比std string 如果我的语法的属性是std string Qi 会正确地将字符顺序调整
  • 如何设置程序的CPU亲和力?

    我有一个用 C 编写的程序 我使用 VSTS 2008 Net 3 5 Windows Vista Enterprise x86 来开发 Windows 窗体应用程序 我当前的计算机是双核CPU 我想将程序的CPU亲和力设置为在特定CPU上
  • Linq动态在哪里算?

    是否可以在 where 中使用列表 我想要这样的东西 public class Customer string FirtsName string LastName int Number 我想使用复选框来过滤客户 如果我选择名字和号码 那么将
  • (heroku) 错误 R10(启动超时)-> Web 进程未能在启动后 60 秒内绑定到 $PORT

    我是一名初级 Discord 机器人开发人员 希望在 Heroku 上 24 7 托管他的 heroku 机器人 大约之后 部署 1 分钟后 出现错误 2020 12 28T11 40 54 000493 00 00 heroku web
  • Flutter Firebase 存储无法工作:没有默认存储桶

    我正在尝试上传一个pdf file to Firebase Storage使用此功能 static Future
  • Django ModelForms:将ManyToMany字段显示为单选

    在 Django 应用程序中 我有一个模型 Bet 其中包含与 Django 用户模型的 ManyToMany 关系 class Bet models Model participants models ManyToManyField Us
  • 触发AWS代码构建时指定文件路径

    我已经创建了 AWS codebuild 管道 每当我推送到主分支时它就会自动触发 现在 我只想在 Dockerfile 中发生更改时触发它 以下是我的项目结构 casestudy gt Docker gt Dockerfile gt In
  • “图标路径无效” - Apple App Store 团队返回错误

    这是我第一次向 App Store 提交内容 遇到了很多问题 首先 我要说的是 该应用程序是用PhoneGap 使用科尔多瓦1 9 0框架 它的 Web 应用程序端很好 验证了 W3 并且在浏览器中完美运行 在无法手动修复问题后 我从头开始
  • 如何在 PlayFramework 中的 Json Reads 中添加自定义 ValidationError

    我正在使用 play Reads 验证助手 我想在 json 异常的情况下显示一些自定义消息 例如 长度是最小值然后指定或给定的电子邮件无效 我知道 play 显示这样的错误消息error minLength但我想显示一条合理的消息 例如请
  • 在 Mayavi 中锁定相机

    我正在尝试使用 mayavi 中的一系列数据文件制作动画 不幸的是 我注意到相机没有锁定 它正在变焦和缩小 我认为发生这种情况是因为我的网格的 Z 分量正在变化 并且 Mayavi 正在尝试重新计算比例 How can I fix it i
  • 使用每个用户数据的单独密钥加密 SQL Server Azure 数据库中的数据

    我正在尝试创建基于 Azure SQL 数据库后端的服务 该服务将是多租户的 并将包含来自多个 客户端 可能有数十万 的高度敏感信息 这些信息必须彼此严格隔离并严格防止数据泄漏 按设计 使用如此多的单独数据库是不可行的 因为会有很多客户 但