Answers:
使SA成为数据库的所有者实际上可以简化和/或解决许多事情,但是可能会带来一些安全隐患。
特别要记住,如果SA是数据库的所有者,则dbo = 'SA'
。这意味着,除其他外,[dbo]模式中的任何过程(默认设置)中实际上带有“ EXECUTE As Owner”(作为所有者执行)。这听起来并不那么糟糕,因为除非您将数据库标记为TRUSTWORTHY,否则SQL Server不会使用这样的模拟服务器级主体让会话或任务退出数据库。
这带来了下一个问题:永远纪念这样的数据库是值得信赖的,除非你真的,真的相信它是安全的。因为任何有能力在[dbo]模式中创建过程的人都可以在整个服务器上以SA身份执行(如果愿意)。
可能会出现另一个问题,因为许多具有自己的SQL Server数据库的产品和应用程序通常会指定其应用程序登录名必须是数据库的DBO。显然,您可以通过使他们的应用程序登录为“ SA”来解决此问题。希望也很明显,您永远不要这样做,除非SQL Server实例不用于其他任何事情(即使那样,我还是建议不要这样做)。