架构 下面看有没有该用户存在,如果有就删除再试试在用户....">

当前位置:  数据库>sqlserver

MSSQL中删除用户时数据库主体在该数据库存中拥有架构 无法删除的解决方法

    来源: 互联网  发布时间:2014-10-11

    本文导语:  在ms sql2005 下面删除一个数据库的用户的时候提示 "数据库主体在该数据库中拥有架构,无法删除" 的错误解决方案1、在 安全性 -> 架构 下面看有没有该用户存在,如果有就删除再试试在用户下面看能不能把该用户删掉,如果不...

在ms sql2005 下面删除一个数据库的用户的时候提示 "数据库主体在该数据库中拥有架构,无法删除" 的错误解决方案
1、在 安全性 -> 架构 下面看有没有该用户存在,如果有就删除
再试试在用户下面看能不能把该用户删掉,如果不行就用下面的文法
运行下SQL语句
ALTER AUTHORIZATION ON SCHEMA::db_owner TO dbo;

--然后手动删除就可以了。
因为选定的用户拥有对象,所以无法除去该用户"解决方法

代码如下:

use 你的库名
go

declare tb cursor local
for
select 'sp_changeobjectowner '
+quotename(
+quotename(user_name(uid))
+'.'+quotename(name),'''')
+',''dbo'''
from sysobjects
where objectproperty(id,N'isusertable')=1
and uiduser_id('dbo')
declare @s nvarchar(4000)
open tb
fetch tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch tb into @s
end
close tb
deallocate tb

第三

方法一(华夏互联专业技术提示:因为涉及更改数据库存储过程,强制删除法不推荐)
首先你需要做的第一件事
企业管理器-〉选择服务器-〉属性-〉服务器设置-〉挑上允许对系统目录。。。-〉确定
第二步
找到你的数据库找到sysusers表那你以前的用户删除
第三步回去吧属***值改回来
第四部重建用户即可

方法二

对mssql出现选定的用户拥有对象而无法删除的处理

--将下面的代码在查询分析器中执行,修改修改库名

代码如下:

use 你的库名
go

declare tb cursor local
for
select 'sp_changeobjectowner '
+quotename(
+quotename(user_name(uid))
+'.'+quotename(name),'''')
+',''dbo'''
from sysobjects
where objectproperty(id,N'isusertable')=1
and uiduser_id('dbo')
declare @s nvarchar(4000)
open tb
fetch tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch tb into @s
end
close tb
deallocate tb

MSSQL备份移植到另一服务器还原时容易遇到的问题……
MSSQL备份移植到另一服务器还原时容易遇到的问题,尤其是从虚拟主机备份回来的数据库在本机还原的问题…

会出现用SQL原来的用户名和密码无效的情况
无法删除某一个系统表
用sa连接做Select时提示表名无效
无法删除原备份数据库中的用户名,提示“因为选定的用户拥有对象,所以无法除去该用户。”
主要原因是原来的备份还原时保留了原用户的信息,导致产生孤立用户……

这时候需要用sp_changeobjectowner 将对象的所有关系更改到另一个用户上,既更改数据库对象的所有者。

格式:

sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner'

例子 在查询分析器中录入:

sp_changeobjectowner 'web102101.tablename', 'dbo'
依次将所有的所属用户都改为dbo,然后现在数据库的用户中把孤立用户删除,再到安全中删除登陆信息。

并可以再依次创建新用户了

下面是一些补充:

Microsoft SQL Server错误: 15138删除对于用户失败,数据库主体在该数据库中拥有架构,无法删除。解决方法
删除 对于 用户“*****”失败。 (Microsoft.SqlServer.Smo)

有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=

9.00.1523.00&Evtsrc=/tech-mssql/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=/tech-mssql/MSSQLServer&EvtID=15138&LinkId=20476/index.html



解决方法一

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

解决方法二


--执行如下SQL语句

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


    
 
 

您可能感兴趣的文章:

  • MSSQL 删除数据库里某个用户所有表里的数据
  • mssql SA帐号的改名和删除
  • 与MSSQL对比学习MYSQL的心得(八)--插入 更新 删除
  • MSSQL监控数据库的DDL操作(创建,修改,删除存储过程,创建,修改,删除表等)
  • 请问,如果连接一个Mssql的数据库。并操作里面的数据。谢谢了:)
  • MSSQL附加数据库拒绝访问提示5120错误的处理方法
  • MSSQL 将截断字符串或二进制数据问题的解决方法
  • Tomcat已设置成功,但不会连接数据库mssql. 求教。
  • freetds连接MSSQL2000,应用程序读出来的数据中文部分全是问号!!
  • mssql中得到当天数据的语句
  • mssql无数据库日志文件恢复数据库的方法第1/2页
  • mysql导入mssql数据的方法
  • mssql 两种数据插入方式
  • mssql2000 有多个数据库,用jdbc连接时候,怎样指定我想用的那个?
  • MSSQL 清空数据库的方法
  • MSSQL数据库获取TEXT字段的内容长度
  • t-sql/mssql用命令行导入数据脚本的SQL语句示例
  • 在java中怎么连接MSSQL这样的数据库?database的属性里用什么驱动?
  • mssql server .ldf和.mdf的文件附加数据库的sql语句
  • MySQL与MSSQl使用While语句循环生成测试数据的代码
  • 解决MSSQL2005远程连接sql2000非默认端口数据库的问题
  • MSSQL数据库的定期自动备份计划。
  • 与MSSQL对比学习MYSQL的心得(四)--BLOB数据类型
  • thinkphp3查询mssql数据库乱码解决方法分享
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 不同版本MSSQL清除日志方法介绍
  • 如何在LINUX下安装MSSQL 是否可以在LINUX下安装MSSQL
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • mysql与mssql的md5加密语句
  • flyingcrean,来讲一下在LINUX中访问MSSQL。
  • 基于mssql导mysql遇到的问题
  • 请问哪里有for mssql的jdbc驱动程序下载?
  • mssql @@ERROR 使用
  • 可以用JAVA直接访问MSSQL2000的Analysis Services吗?
  • mssql查找备注(text,ntext)类型字段为空的方法
  • mssql 指定字段编号sql语句
  • MSSQL output使用
  • 找一找免费的MSSQL的JDBC驱动。一定给分!
  • 我下载了bea的mssql的jdbc驱动程序,请问如何安装?
  • 为jdbc.mssql抓狂!!
  • mssql insert into 和insert into select性能比较
  • mssql对已创建表的某个字段修改为默认值
  • 用JDBC﹐ODBC訪問MSSQL﹐一些NVARCHAR的類型的字段在JdbTable中顯示不了﹐為什么﹖
  • 与MSSQL对比学习MYSQL的心得(三)--查看字段的长度
  • 要建立到MSSQL的连接,Class.forName与URL应怎样写?
  • 一些文件未注册导致mssql表文件无法找开的解决方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3