【问题标题】:Deny access to self in SQL Server 2012?在 SQL Server 2012 中拒绝访问自己?
【发布时间】:2014-03-03 13:45:54
【问题描述】:

我的老板有一个独特的要求。我是我公司唯一的软件开发人员,所以我正在做从初始设计到数据库设计的所有工作。我定期设计和维护数据库,前端也是如此。我们没有数据库管理员。我的独特要求是拒绝让自己看到单个列(我正在设计和开发工资单应用程序),而该列是他们的工资率和薪水的总工资。我知道许多公司都有 DBA,他们会在开发服务器上需要时删除这些数据或在这些列中放入错误数据。除了拒绝自己访问这些列之外,我还能做 DBA 应该做的所有事情。我不认为它可以做到。我曾尝试拒绝自己访问 SQL 中的这些列,但后来我无法在我的应用程序中查询任何内容。有没有人对如何解决这个问题有任何建议?我进行了研究,但除了列解决方案之外,我还没有找到任何内容。谢谢。

【问题讨论】:

  • 必须有人掌握王国的钥匙。所以让你的老板成为“sa”,他可以创建帐户/授予访问权限。并在生产环境中运行升级脚本。
  • 是的,我也想过这个问题。他总是出差到其他地方,很少在办公室。但这可能是唯一的解决方案。感谢您的建议。
  • 始终保持良好状态,不要相信您的管理员和开发人员。你的老板也在做日常备份,因为 bachup 需要阅读所有权利?诅咒,备份文件必须存放在老板的枕头下。
  • 目前,我正在使用数据库做所有事情。我正在做所有的备份和一切。

标签: sql sql-server sql-authentication


【解决方案1】:

您可以使用多个数据库帐户:
- 您的帐户无法访问这些列
- 另一个有权访问列的应用程序帐户

【讨论】:

  • 我想到了这一点,但他们根本不希望我看到这些列中的数据。现在,我将导入数据,我将能够看到所有数据。所以我可以看到我们的员工赚了多少。他们希望我阻止自己只看到这些信息。这是一个非常独特的情况。我正准备签署一份 HR 的表格,说我不会告诉全世界我们的员工赚了多少。
【解决方案2】:

加密确实是您唯一的选择。最简单的方法是加密/解密客户端上的数据。如果这不是一个选项,请查看各种 T-SQL 加密选项(例如 DECRYPTBYKEY、DECRYPTBYASYMKEY 等)。无论哪种方式,都要让密钥脱离你的控制,这样他们甚至不能说“但你可以将备份恢复到你自己的服务器并更改权限”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多