如何获得正确的数据库所有者?

时间:2014-12-15 09:21:57

标签: sql sql-server database

在我的程序中,我需要创建一个新数据库,然后从旧数据库中复制数据和用户。

要从旧数据库中获取数据库所有者,请使用

Select suser_sname(owner_sid) 
from sys.databases 
where name = '.....' 

对于用户dbo且登录名为sa的数据库,我会得到不同的答案。

有些数据库会返回sa,但是其他一些数据库会返回使用Windows身份验证的用户(我),但我只需要SA。

有人可以告诉我为什么以及如何解决这个问题?

谢谢。

1 个答案:

答案 0 :(得分:1)

有什么可以解决的?

您使用正确的查询(Select suser_sname(owner_sid) from sys.databases where name =...),您将得到您应该得到的确切内容。数据库所有者是创建数据库的原始登录名(使用集成身份验证时的Windows用户)。此信息在数据库移动(附加,恢复)中传输。