如何将dbo所有权更改为SQL Server 2008中的另一个用户登录名?

问题描述 投票:0回答:1

具有SQL Server 2008的现有Windows Server 2008 R2已移至另一个域。现有的dbo所有者属于旧域。

我需要将dbo所有权更改为新的登录用户,而不是'sa'。我已经看到了一些示例代码,但是我不确定新用户名的语法正确。

我已经尝试在SQL Server Management Studio中使用数据库的属性来更改所有权,并从文件中更改值,但是它确实起作用。

例如,我看到有人建议:

-- 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]**

我的问题是[login1]格式。

通常,登录名是:domain\username

如何用实际的登录名替换[login1]?正确的格式是什么?

除了更改dbo所有权之外,我想知道在安装SQL数据库的服务器已更改为其他域时,作为标准过程,还有什么需要做的事情。

谢谢

sql-server tsql sql-server-2008-r2
1个回答
0
投票

T-SQL语句ALTER AUTHORIZATION ON DATABASE::YourDatabase TO Login1;将更改每个the documentation的数据库所有者。

仅当登录名或数据库名称不符合regular identifier naming rules时才需要使用该名称(例如,带反斜杠的Windows登录名)。因此,对于域用户而言,它们带有方括号的语法是:

ALTER AUTHORIZATION ON DATABASE::YourDatabase TO [YourDomain\Login1];

或双引号:

ALTER AUTHORIZATION ON DATABASE::YourDatabase TO "YourDomain\Login1";

我建议您避免以后使用域用户作为数据库所有者。这样,当计算机域更改或拥有的域帐户由于某种原因(例如个人离开组织)而变得无效时,您就不会有问题。

© www.soinside.com 2019 - 2024. All rights reserved.