• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    MSSQL中删除用户时数据库主体在该数据库存中拥有架构 无法删除的解决方法
    POST TIME:2021-10-18 18:35

    在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 uid>user_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 uid>user_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+ServerProdVer=

    9.00.1523.00EvtSrc=Microsoft.SqlServer.Management.Smo.

    ExceptionTemplates.FailedOperationExceptionTextEvtID=删除+UserLinkId=20476

    ------------------------------
    其他信息:

    执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)

    ------------------------------

    数据库主体在该数据库中拥有 架构,无法删除。 (Microsoft SQL Server,错误: 15138)

    有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+ServerProdVer=09.00.1399EvtSrc=MSSQLServerEvtID=15138LinkId=20476



    解决方法一

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


    解决方法二


    --执行如下SQL语句

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

    上一篇:SQL SERVER中各类触发器的完整语法及参数说明
    下一篇:sqlServer 数据库语法大全
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信