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;

    即可顺利删除用户.

  • 相关阅读:
    计时器
    画刷
    研究:窗口映射
    文本和字体
    MFC源码实现文件对照表
    动态链接库编程:非MFC DLL
    对话框
    C/C++的Name Mangling
    MFC框架仿真<四>动态创建
    MFC框架仿真<三>R T T I
  • 原文地址:https://www.cnblogs.com/SALIN/p/1498158.html
Copyright © 2011-2022 走看看