Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Sql Server 2005如何更改dbo登录名_Sql Server_Sql Server 2005_Security_Active Directory - Fatal编程技术网

Sql server Sql Server 2005如何更改dbo登录名

Sql server Sql Server 2005如何更改dbo登录名,sql-server,sql-server-2005,security,active-directory,Sql Server,Sql Server 2005,Security,Active Directory,我有一个用户为“dbo”的数据库,其登录名为“domain\xzy”。如何将其从“域\xzy”更改为“域\abc”。这是Windows登录,不是SQL Server登录,因此您无法“更改”登录名,因为它链接到Active Directory中的用户帐户 创建映射到新Windows用户的新服务器登录名(Windows)(必要时删除旧登录名)。然后在登录的安全性>用户映射中,以用户“dbo”(或分配给db\u所有者角色)身份登录到相应数据库的权限。如果您试图将登录重新映射到db用户,则可以使用sp\

我有一个用户为“dbo”的数据库,其登录名为“domain\xzy”。如何将其从“域\xzy”更改为“域\abc”。

这是Windows登录,不是SQL Server登录,因此您无法“更改”登录名,因为它链接到Active Directory中的用户帐户


创建映射到新Windows用户的新服务器登录名(Windows)(必要时删除旧登录名)。然后在登录的安全性>用户映射中,以用户“dbo”(或分配给db\u所有者角色)身份登录到相应数据库的权限。

如果您试图将登录重新映射到db用户,则可以使用sp\u change\u User\u login


exec sp\u change\u user\u login“Update\u One”、“user”、“login”

我想出来了。在SQL Management Studio中,您必须右键单击数据库->属性->文件->所有者字段。将此字段更改为要与该数据库的“dbo”用户名关联的登录名/帐户。请记住,您选择的登录名/帐户必须已经在sql server的Security->Logins下设置好了。PhantomTypest使用GUI给出了一个很好的答案。为了实现与TSQL相同的结果,可以使用以下代码:

USE [My_Database_Name]
GO
EXEC dbo.sp_changedbowner @loginame = N'domain\abc', @map = false
GO

存储过程似乎是“sp\u更改\u用户\u登录”(即用户)。仅供参考,BOL还声明它已被弃用,今后应改用ALTER USER。虽然这通常是可行的,但存储过程明确拒绝以这种方式更改dbo用户的尝试。或者通过代码进行相同的更改:使用someDB;去;exec sp_更改了所有者“newOwner”,4年后我需要它:)6年后,这仍然是一项关键知识!:)8年后,此修复程序的保质期很长!13年后,这仍然是有用的!我怀疑您没有正确理解SQL Server安全模型。整个服务器实例具有与服务器关联的登录名。这些可能是SQL或Windows登录。服务器上的每个数据库都有许多具有访问该数据库权限的用户。数据库用户与SQL登录相关联,SQL登录通常(但不要求)相同。dbo是每个数据库上的特殊用户。OP并没有试图与一个新的具有数据库db_所有者权限的任意用户建立联系,而是试图将另一个服务器登录名与标准dbo用户相关联。