Database 阻止windows管理员用户读取SQL Server数据库
我正在创建一个产品软件,许多人将自己安装在他们的机器上 它是一个VB.Net-SQL Server应用程序 我当然不希望用户安装一些SQLServerGUI工具,比如SQLServerManagementStudio,然后直接处理数据库值/定义 但是,当我的客户使用自己的(很可能是系统管理员)帐户安装应用程序(以及数据库和SQL Server实例,如果没有)时,该帐户显然将被授权访问、读取和修改数据库 有什么办法可以预防吗 我们试图用app保存Database 阻止windows管理员用户读取SQL Server数据库,database,security,sql-server-2005,Database,Security,Sql Server 2005,我正在创建一个产品软件,许多人将自己安装在他们的机器上 它是一个VB.Net-SQL Server应用程序 我当然不希望用户安装一些SQLServerGUI工具,比如SQLServerManagementStudio,然后直接处理数据库值/定义 但是,当我的客户使用自己的(很可能是系统管理员)帐户安装应用程序(以及数据库和SQL Server实例,如果没有)时,该帐户显然将被授权访问、读取和修改数据库 有什么办法可以预防吗 我们试图用app保存.mdf文件,但可以手动附加 我们尝试使用.sdf文
.mdf
文件,但可以手动附加
我们尝试使用
.sdf
文件,它允许创建自己的密码,最初我们喜欢这个想法,但对于单个project.net解决方案来说,这是可以的。对于具有多个项目的.net解决方案(例如,一个用于用户信息和身份验证,一个用于员工工资单等),每个项目需要一份该文件的副本,使这一想法毫无用处。我不认为有任何方法可以阻止数据库用户查看或以其他方式更改安装在SQL Server实例上的数据库,而他们对该实例具有管理访问权限。但是,可能会使查看或修改存储过程变得非常困难(但并非不可能)。微软在GP会计软件中使用这种方法
要创建无法轻松进行反向工程的存储过程,请使用
加密
选项创建它们。有关更多详细信息,请参阅。我不认为有任何方法可以阻止数据库用户查看或以其他方式更改安装在SQL Server实例上的数据库,因为他们具有管理访问权限。但是,可能会使查看或修改存储过程变得非常困难(但并非不可能)。微软在GP会计软件中使用这种方法
要创建无法轻松进行反向工程的存储过程,请使用
加密
选项创建它们。有关更多详细信息,请参阅。管理应用程序/数据库权限的标准方法是创建数据库架构和角色,并为这些角色分配权限,例如ReportViewer(仅具有数据读取器访问权限)、SensiveDataViewer(用于工资等),以及删除数据库访问的所有默认访问权限
然后使用域组(最好)或用户创建登录,并将其添加到角色中。如果您位于域上并使用域组,则可以通过组的Active Directory用户成员身份管理访问
但是,您无法阻止系统管理员查看/更改数据。如果您通过角色管理访问,则将安全责任转移给系统管理员,这是一件好事 您可以对整个数据库进行加密,但如果系统管理员真的愿意,他们仍然可以绕过此漏洞
管理应用程序/数据库权限的标准方法是创建数据库架构和角色,并将权限分配给这些角色,例如ReportViewer(仅限数据读取器访问)、SensitiveDataViewer(适用于薪资等),并删除数据库访问的所有默认访问权限 然后使用域组(最好)或用户创建登录,并将其添加到角色中。如果您位于域上并使用域组,则可以通过组的Active Directory用户成员身份管理访问
但是,您无法阻止系统管理员查看/更改数据。如果您通过角色管理访问,则将安全责任转移给系统管理员,这是一件好事 您可以对整个数据库进行加密,但如果系统管理员真的愿意,他们仍然可以绕过此漏洞
如果用户打算对系统进行“黑客攻击”(或者更确切地说,如果此类修改会损害系统的完整性),那么您已经丢失了……)嗯,这不是技术敏感信息,但软件应该管理数据库,这就是创建数据库的原因。否则我宁愿只部署数据库,并要求他们手动管理、修改和插入数据库。。。你说什么?!“好吧,那就是我可以说迷路的地方。”米奇麦特,不是真的。我怎么能允许他手动编辑它?!我的意思是,如果他删除了自己上个月的工资记录,然后根据软件的结果,或者再次申请,或者由于软件出错,客户向我的公司申请工资,该怎么办?!如果用户打算对系统进行“黑客攻击”(或者更确切地说,如果此类修改会损害系统完整性),那么您已经丢失了……)好吧,这不是技术敏感信息,但软件应该管理数据库,这就是创建数据库的原因。否则我宁愿只部署数据库,并要求他们手动管理、修改和插入数据库。。。你说什么?!“好吧,那就是我可以说迷路的地方。”米奇麦特,不是真的。我怎么能允许他手动编辑它?!我的意思是,如果他删除了自己上个月的工资记录,然后根据软件的结果,或者再次申请,或者由于软件出错,客户向我的公司申请工资,该怎么办?!“但是,你不能阻止系统管理员查看/更改数据。如果你通过角色管理访问,你将安全责任转移给系统管理员,这是一件好事。”竖起大拇指。似乎这需要在EULA中提及,那么。:)“但是,你不能阻止系统管理员查看/更改数据。如果你通过角色管理访问,你将安全责任转移给系统管理员,这是一件好事。”竖起大拇指。看来这是必须的