Sql server SQLAzure:如何使用新登录更改dbo用户

Sql server SQLAzure:如何使用新登录更改dbo用户,sql-server,tsql,azure-sql-database,Sql Server,Tsql,Azure Sql Database,在sqlazure中,我想将登录名[login1]分配给用户[dbo] 我当前使用[login1]帐户登录,请尝试以下操作: ALTER USER [dbo] WITH LOGIN = [login1] 但它说: 无法更改用户“dbo” 我也试过: ALTER AUTHORIZATION ON SCHEMA::[dbo] TO [login1] 但它说: 找不到用户“login1”,因为它不存在或您不存在 没有许可 我可以创建新表,如[dbo].[MyTable],但即使它存在,也无法在表列

sqlazure
中,我想将登录名
[login1]
分配给用户
[dbo]

我当前使用
[login1]
帐户登录,请尝试以下操作:

ALTER USER [dbo] WITH LOGIN = [login1]
但它说:

无法更改用户“dbo”

我也试过:

ALTER AUTHORIZATION ON SCHEMA::[dbo] TO [login1]
但它说:

找不到用户“login1”,因为它不存在或您不存在 没有许可

我可以创建新表,如
[dbo].[MyTable]
,但即使它存在,也无法在表列表中看到它


有什么想法吗?

您需要更改数据库所有者 1.创建Login1(数据库中没有用户) 2.在db exec脚本中:

sp_changedbowner 'Login1'

因此,用户[dbo]将自动链接到[login1]

您不能将
[dbo]
重新映射到
[login1]
,但您可以将
[login1]
添加到数据库角色。例如:

-- in master db
CREATE LOGIN [login1] WITH PASSWORD = '{Some Password}'
CREATE USER [login1] FOR LOGIN [login1]

-- in user db
CREATE USER [login1] FOR LOGIN [login1]
ALTER ROLE [db_owner] ADD MEMBER [login1]

SQL Azure不支持此存储过程。您将收到错误消息:
找不到存储过程“sp_changedbowner”
。能否详细说明此解决方法不适用于您的原因?当我在
masterdb
中创建
login1
时,我无法使用该帐户登录。它说:
服务器主体“login1”无法在当前安全上下文下访问数据库“master”。无法打开用户默认数据库。登录失败。用户“login1”的登录失败。(.Net SqlClient数据提供程序)
很抱歉,没有意识到除了用户数据库之外,还需要将此帐户连接到主数据库。我添加了一行代码,在主数据库中为同一个登录创建一个用户。这对你有用吗?