zoukankan      html  css  js  c++  java
  • 数据库主体拥有数据库角色,无法删除

    附加数据库后用语句:

    USE[NorthWind]

    DROP USER BetterDev;

    删除用户 BetterDev 时报数据库主体拥有数据库角色,无法删除。错误,无法删除用户。

    解决方法:

    通过语句

    SELECT [name],[principal_id],[type],[owning_principal_id] FROM sys.database_principals;

    查看数据库的所有用户:

    从图上可以看出角色“aspnet_WebEvent_FullAccess”的所有者是 7 “betterdev”,所以无法删除“BETTERDEV”。故用如下语句:

           ALTER AUTHORIZATION ON ROLE::aspnet_WebEvent_FullAccess TO dbo;

    更改角色的所有者,如果有多个角色的所有者都为“BetterDev”则用如下语句:

           DECLARE @name varchar(110);

    DECLARE @sql varchar(500);

    DECLARE MyCursor CURSOR FOR

        SELECT [name] FROM sys.database_principals where owning_principal_id=7;

     

    OPEN MyCursor;

     

    FETCH NEXT FROM MyCursor INTO @name;

    WHILE @@FETCH_STATUS = 0

    BEGIN

        set @sql='ALTER AUTHORIZATION ON ROLE::'+@name+' TO dbo;'

        exec(@sql);

        FETCH NEXT FROM MyCursor INTO @name;

    END;

     

    CLOSE MyCursor;

    DEALLOCATE MyCursor;

    进行循环删除。

    最后用:

    USE[ComptPrice]

    DROP USER BetterDev;

    即可顺利删除用户.

  • 相关阅读:
    Red hat 5挂载U盘
    Win7+VMware Workstation环境下的CentOS-Linux网络连接设置
    rand()随机数的产生
    phpmyadmin数据库导入出错
    dede忽略错误
    wamp
    网页地图map
    Redefining already defined constructor
    SCREAM:Error suppression ignored for
    Python+selenium之疑难点解决之去除readonly的限制
  • 原文地址:https://www.cnblogs.com/SALIN/p/1498158.html
Copyright © 2011-2022 走看看