逐浪云主机

立即开通

数据库主体在该数据库中拥有 架构,无法删除解决方法

作者:本站编辑 发布时间:2014-08-28 来源:本站原创 点击数:

早上恢复了以前的一个数据库,但是里面的用户下面没了登录名,而且架构显示db_owner也不可更改,我用的是sqlserver2005。这样用这个用户是登录不了的,然后我就想把他删除再建个用户,但是也删除不了。在SQL Server2000中删除数据库用户很简单,只要直接删除或者使用Drop User命令就可以了,但是SQL Server2005中直接操作是不行的,这是因为在SQL Server 2005中架构是做为实体对待的。所以要删除该用户,需要先删除该用户所拥有的架构或更改此架构的所有者。否则会提示”数据库主体在该数据库中拥有架构,无法删除。

   搜索了一下知道每一个数据库用户对应于一个系统登陆帐号,并且每一个架构只能赋予一个用户。所以直接删除用户的架构是不可以的,然后我就新建一个登录名,并且在用户映射里面将db_owner架构付给他,然后就可以删除之前的用户了。
============================

问题:请问:我在2005上附加了一个2000下的MDF数据库,但是无法删除原数据库里的用户。

我在2005上附加了一个2000下的MDF数据库,但是无法删除原数据库里的用户。
提示附加成功后,里面有一个原来数据库的用户,现在我想删除这个用户再重建一个新的用户,并赋予新的数据库权限时,无法删除这个用户。
提示如下:

标题: Microsoft SQL Server Management Studio
------------------------------
删除 对于 用户“****”失败。 (Microsoft.SqlServer.Smo)
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.1399.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=删除+User&LinkId=20476
------------------------------
其他信息:
执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)
------------------------------
数据库主体在该数据库中拥有 架构,无法删除。 (Microsoft SQL Server,错误: 15138)
有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.1399&EvtSrc=MSSQLServer&EvtID=15138&LinkId=20476
------------------------------

请问这是什么意思,如果才能删除这个用户??


回复:
先删除此用户对应的架构,然后在删除对应的用户
步骤
1。SQL SERVER MANAGEMENT STUDIO--》数据库--》安全性--》构架,先删除对应的构架
2。SQL SERVER MANAGEMENT STUDIO--》数据库--》安全性--》用户,删除对应的用户

 

其它方法:

SQL2005删除用户的时候,产生“数据库主体在该数据库中拥有架构,无法删除”的解决办法

--执行如下SQL语句

ALTER   AUTHORIZATION   ON   SCHEMA::db_owner   TO   dbo;
--然后手动删除就可以了。

本文责任编辑: 加入会员收藏夹 点此参与评论>>
复制本网址-发给QQ/微信上的朋友