分享

数据库主体在该数据库中拥有 架构,无法删除。 .

 weiledream 2013-10-15

刚刚用SQL2005附加了SQL2000上面的DZNT的一个数据库,但是里面的用户下面没了登录名,后我就想把他删除再建个用户,但是也删除不了报错。在SQL Server 2005中架构是做为实体对待的。所以要删除该用户,需要先删除该用户所拥有的架构或更改此架构的所有者。否则会提示”数据库主体在该数据库中拥有架构,无法删除。
   网上看到的无法删除用户的解决办法是先删除此用户对应的架构,然后在删除对应的用户步骤。
   1。SQL SERVER MANAGEMENT STUDIO--》数据库--》安全性--》构架,先删除对应的构架
   2。SQL SERVER MANAGEMENT STUDIO--》数据库--》安全性--》用户,删除对应的用户
  但有时候这样并不能解决问题,因为此操作的第一步就实现不了,无法删除那个用户所有的架构。遇到此问题我到是烦了一会,但很快找到原因。原来我是用 DZNT的后台创建的各个数据表,各个表的架构(在SQL2000下面架构的概念就是所有者)也就是以前的用户名。现在那个用户名虽然可以添加,但在用户映射里面,无法对此用户进行映射,因为数据库里面已经有了这个用户。这时候便想到把数据表的架构改成了DBO,发现还是不行,再查原因,原来在存储过程的架构还没有修改。在表和存储过程的架构全修改别DBO后,原来数据表里面的架构就可以删除了,用户也自然可以删除了。

 

 

 

我在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& amp;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; --然后手动删除就可以了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多