Sql server 2008 在共享SQL Server上以dbo作为所有者创建表和查询?
我正在开发一个数据库,它最终将驻留在主机上的共享SQLServer2008数据库上(位于托管提供商)。我注意到所有的表和查询都属于dbo。我想知道这是否是共享主机上的安全问题。分配数据库对象所有权的最佳实践是什么。我应该在共享托管环境中将db对象的所有权转移给db的管理员用户吗Sql server 2008 在共享SQL Server上以dbo作为所有者创建表和查询?,sql-server-2008,dbo,Sql Server 2008,Dbo,我正在开发一个数据库,它最终将驻留在主机上的共享SQLServer2008数据库上(位于托管提供商)。我注意到所有的表和查询都属于dbo。我想知道这是否是共享主机上的安全问题。分配数据库对象所有权的最佳实践是什么。我应该在共享托管环境中将db对象的所有权转移给db的管理员用户吗 谢谢dbo模式是管理员或DB所有者模式。它也是创建表时的默认模式,除非采取步骤对其进行更改 您可以控制数据库内的安全性,即使在托管环境中也是如此。您必须关注您的安全策略,并根据该策略授予、撤销或拒绝对数据库中对象的权限。
谢谢dbo模式是管理员或DB所有者模式。它也是创建表时的默认模式,除非采取步骤对其进行更改
您可以控制数据库内的安全性,即使在托管环境中也是如此。您必须关注您的安全策略,并根据该策略授予、撤销或拒绝对数据库中对象的权限。单独避免dbo模式不会提高安全性。使用dbo时的最佳实践 当使用dbo创建对象/表时,这意味着作为这些对象别名的登录名必须具有db_所有者角色,这反过来意味着它可以在该数据库中“做任何事情”。访问该数据库的用户通常主要需要CRUD。也就是说,表中的数据和执行SP应该是帐户应该能够完成的全部工作。虽然当db_拥有者时,它可以做任何我认为是安全缺陷的事情 应用程序访问应该有一个登录名(svcapt_app1),它是一个服务帐户(非交互式),DDL等应该有一个Windows登录名,它是db_所有者的,因此默认为dbo。每个对象都可以归dbo所有,尽管授权应该授予相关用户svcact_app1登录
这提供了分离,应用程序连接只能修改数据并执行授予它的SP,而不能执行其他操作。如果您不这样做,并且攻击者可以成功启动SQL注入,则攻击可能会删除、修改SP或其他任何内容 理解这一点,我应该有更多的限制性权限等用户,但我不是问这个。我需要知道,将所有者保留为dbo是否考虑了在分解环境中的安全问题,以及将所有权转移给另一个用户是否是更好的做法。换句话说,您不能从db_所有者角色成员资格中删除dbo。因此,最好将dbo保留为所有者。