在我的程序中,我需要创建一个新数据库,然后从旧数据库中复制数据和用户。
要从旧数据库中获取数据库所有者,请使用
Select suser_sname(owner_sid)
from sys.databases
where name = '.....'
对于用户dbo
且登录名为sa
的数据库,我会得到不同的答案。
有些数据库会返回sa
,但是其他一些数据库会返回使用Windows身份验证的用户(我),但我只需要SA。
有人可以告诉我为什么以及如何解决这个问题?
谢谢。
答案 0 :(得分:1)
有什么可以解决的?
您使用正确的查询(Select suser_sname(owner_sid) from sys.databases where name =...
),您将得到您应该得到的确切内容。数据库所有者是创建数据库的原始登录名(使用集成身份验证时的Windows用户)。此信息在数据库移动(附加,恢复)中传输。