• 数据库主体拥有数据库角色,无法删除


    附加数据库后用语句:

    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;

    即可顺利删除用户.

  • 相关阅读:
    Fedora下使用minicom及USB串口线
    fedora装机后要运行的脚本(原创)
    终极 Shell
    深入学习 Git 工作流
    如何使用Git上传项目代码到github
    Fedora23 chrome 安装
    Fedora下安装deb包方法
    vim自动缩进设置
    Fedora 20 安装搜狗拼音输入法
    C语言stat()函数:获取文件状态
  • 原文地址:https://www.cnblogs.com/SALIN/p/1498158.html
Copyright © 2020-2023  润新知