Server 2014标准:2个数据库-DB&DB
类库:通过存储过程处理所有数据的获取/集合。数据在DB-A和DB-B上
站点A:使用类库与DB&DB接口的面向公共的eCommerce ASP.NET网站(http://www.rackattack.com)。包含对两个DBs的附加调用(通过存储过程)。
站点B:使用类库与DB&DB接口的私有ASP.NET网站。包含对两个DBs的附加调用(通过存储过程)。
Windows :在内部使用类库与DB接口的应用程序。包含对两个DB的附加调用(通过存储过程)。
问:如何设置服务器登录、数据库模式、数据库角色、数据库用户以符合我们的环境的最佳实践?
免责声明:我是一个开发人员,而不是DB管理员。我对这些概念有基本的理解,但请“像我5岁一样解释”。谢谢!
发布于 2016-02-17 20:52:49
好的,所以我将在这里讨论一下一般的最佳实践,并就我将做什么以及我在过去看到过的实现给您一些建议。我还将假设您有足够的安全协议来保护您的面向公众的网站。
首先,如果你被黑了,你愿意失去公共数据库中的所有东西(显然定期备份它,但如果它被删除,不要感到惊讶)。
其次,需要隔离运行您网站的数据库。您需要运行的所有东西都必须是独立的,通常不应该通过库直接链接到私有数据库。如果私有数据库中有公共网站所需的组件,那么您有两个选项:
一旦隔离了公共数据库,就可以立即减少需要减少的风险。如果您需要来自公共数据库的信息,或者需要从您的私有数据库获取信息到您的公共数据库中,那么您可以设置复制或其他类型的计划来执行此任务。
如果你不能分开你的数据库,那么你将需要绝对激进地对待你的公共网站/数据库所授予的权限。做好大量文件的准备!
如果创建角色,则需要确保每个角色具有完成分配给它的任务所需的最低权限。例如,在两个站点之间共享的类库给它尽可能少的权限,使其能够运行。
任何为公共网站创建的用户帐户都应该访问公共数据库,仅此而已。如果公共网站可以直接访问你的私人数据库,那么它也应该被认为是公开的,即使这不是你的意图。
同样,您的windows应用程序不应该直接调用您面向公共的数据库。这是为了减少攻击的表面积,也是为了确保某人不会无意中做一些会使你的公共网站瘫痪的事情(比如删除所有的内容)。
因此,总结一下:
如果将公共数据库隔离开来,那么为内部应用程序分配权限就变得非常简单和容易。
https://dba.stackexchange.com/questions/129600
复制相似问题