gpt4 book ai didi

database - 防止 Windows 管理员用户读取 SQL Server 数据库

转载 作者:搜寻专家 更新时间:2023-10-30 22:00:30 24 4
gpt4 key购买 nike

我正在创建一个产品软件,许多人会自己将其安装在他们的机器上。

它是一个 VB.Net - SQL Server 应用程序。

我当然不希望用户安装 SQL Server Management Studio 等 SQL Server GUI 工具,然后直接摆弄数据库值/定义。

但是当我的客户将使用他自己的(很可能是系统管理员)帐户安装应用程序(以及数据库和 SQL Server 实例,如果没有的话),该帐户显然将被授权访问,阅读并修改数据库。

有什么办法可以避免吗?

我们尝试将 .mdf 文件保留在应用程序中,但可以手动附加。

我们尝试使用 .sdf 文件,它允许创建自己的密码,我们最初喜欢这个想法,但这对于单个项目 .net 解决方案来说是可以的。对于具有多个项目的 .net 解决方案(例如,一个用于用户信息和身份验证,一个用于员工工资单等),每个项目需要该文件的 1 个副本,从而使该想法毫无用处。

最佳答案

管理应用程序/数据库权限的标准方法是创建数据库模式和角色并为这些角色分配权限,例如 ReportViewer(只有数据阅读器访问权限)、SensitiveDataViewer(用于薪水等)并删除您的所有默认访问权限数据库访问。

然后您使用域组(最好)或用户创建登录名,并将它们添加到角色中。如果您在域中并使用域组,则可以通过组的 Active Directory 用户成员身份管理访问。

但是,您无法阻止系统管理员查看/更改数据。如果您通过角色管理访问权限,您就是在将安全责任转移给系统管理员,这是一件好事。

您可以加密整个数据库,但如果系统管理员真的愿意,他们仍然可以绕过这一点。

Database Engine Permission Basics

Manage Access and Roles with Transact-SQL (T-SQL) Commands

Understanding the Difference between Owners and Schemas in SQL Server

Schema, Owner for objects in MS SQL

关于database - 防止 Windows 管理员用户读取 SQL Server 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16996543/

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