在SQL Azure数据库中更改USER DBO的SID

时间:2019-10-23 21:36:59

标签: sql-server azure-sql-database sid

我无法在用户数据库中创建一个名称为PUBLISH_ADMIN的USER。

在主数据库中,LOGIN PUBLISH_ADMIN的SID = 0x010600000000006400000000000000002532749BDD5C974C9BA8EF44CFA5。

在用户数据库中,相同的SID [0x010600000000006400000000000000002532749BDD5C974C9BA8EF44CFA5]属于USER DBO。

由于这个原因,我无法创建用户 PUBLISH_ADMIN ,该用户应映射到LOGIN PUBLISH_ADMIN

是否有任何方法可以更改User DB中USER DBO的SID?因此,重新映射用户 PUBLISH_ADMIN 以登录 PUBLISH_ADMIN

还有其他方法可以实现吗?

1 个答案:

答案 0 :(得分:0)

我们暂时无法更改用户sid。

如拉努在评论中所说:

您使用LOGIN PUBLISH_ADMIN创建了数据库。登录创建数据库时,它将自动映射到USER dbo。无需创建自己的用户,因为它已经拥有一个。

总而言之,管理员帐户登录名PUBLISH_ADMIN的默认用户名:

  1. 在主服务器中,用户名与登录名“ PUBLISH_ADMIN”相同。
  2. 在用户数据库中,默认用户名将为“ DBO”。

例如,您可以使用以下代码进行测试:

USE MASTER
SELECT name as username, sid AS usersid FROM sys.database_principals WHERE sid=SUSER_SID()

USE User Database
SELECT name as username, sid AS usersid FROM sys.database_principals WHERE sid=SUSER_SID()

参考:SUSER_SID (Transact-SQL)

您可以将用户名更改为登录名“ PUBLISH_ADMIN”:

USE USER-DATABASER
ALTER USER DBO WITH NAME = PUBLISH_ADMIN;

希望这会有所帮助。