RLH*_*RLH 15 sql-server-2005 sql-server permissions sql-server-2000
昨天我问了这个关于更改我拥有的多个数据库的 dbo 的问题。这种变化是有道理的,但我想说清楚。
有什么好的理由或情况为什么我不应该将数据库的 dbo 设置为 [sa]?
RBa*_*ung 18
使 SA 成为数据库的所有者实际上可以简化和/或解决许多问题,但可能会产生一些安全隐患。
特别要记住,如果 SA 是数据库的所有者,则dbo = 'SA'. 这意味着,除其他外,[dbo] 模式(默认)中具有“EXECUTE As Owner”的任何过程实际上都是作为 SA 执行的。这不是很糟糕,因为它的声音,因为除非你标记数据库为守信,SQL Server将不会让用那种模拟的服务器级主体的会话或任务从数据库中。
这带来了下一个问题:永远纪念这样的数据库是值得信赖的,除非你真的,真的相信它是安全的。因为任何有能力在 [dbo] 模式中创建过程的人都可以在整个服务器上作为 SA 执行,如果他们愿意的话。
另一个问题可能会出现,因为许多产品和应用程序都有自己的 SQL Server 数据库,通常指定他们的应用程序登录必须是数据库的 DBO。显然,您可以通过将他们的应用程序登录名设为“SA”来解决该问题。希望您永远不应该这样做,除非该 SQL Server 实例不用于其他任何用途(即使那样,我建议您不要这样做),这也是显而易见的。