Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/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-从';dbo';_Sql Server - Fatal编程技术网

Sql server SQL-从';dbo';

Sql server SQL-从';dbo';,sql-server,Sql Server,在SQL Server中,我创建了一个moveDBlogin 不幸的是,它绑定到dbouser,如下图所示 如何删除moveDB登录,但不影响dbo 我在谷歌上搜索,有人说需要更改数据库所有者,我不熟悉SQL权限,所以我想知道当我使用change\u dbowner时,它是否会影响到数据库所有者。创建这些数据库时,它们是在moveDBlogin下创建的。因此,我将这些数据库的所有者更改为sa或其他登录名。然后删除moveDBlogin -- Select database to apply n

在SQL Server中,我创建了一个
moveDB
login
不幸的是,它绑定到
dbo
user,如下图所示

如何删除
moveDB
登录,但不影响
dbo



我在谷歌上搜索,有人说需要更改数据库所有者,我不熟悉SQL权限,所以我想知道当我使用
change\u dbowner

时,它是否会影响到数据库所有者。创建这些数据库时,它们是在
moveDB
login下创建的。因此,我将这些数据库的所有者更改为
sa
其他登录名。然后删除
moveDB
login

-- Select database to apply new change
EXEC sp_changedbowner '[new_login]'
然后删除登录名

IF  EXISTS (SELECT * FROM sys.server_principals WHERE name = N'moveDB')
DROP LOGIN [moveDB]
GO

更改数据库所有者的正确方法是使用
ALTER AUTHORIZATION ON database::YourDatabase更改为[new_login]
。您也可以在UI中取消选择登录的映射,然后删除登录
EXEC sp_changedbowner
不是必需的。@sthames42在登录名的属性中取消选择用户映射会尝试删除DBO,但这无法(或至少不应该)完成。我只是在应用程序安装程序将DBO映射到运行安装的用户的帐户时遇到了同样的问题(我必须撤消)。您必须手动将DBO重新映射到另一个登录名。@KeithS我记得去年有过这个问题,这就是我发现这个问题的原因,也是我解决这个问题的原因。我没有经历过你所描述的,但我以后会小心的。