【问题标题】:Drop role in SQL Server database?在 SQL Server 数据库中删除角色?
【发布时间】:2016-05-18 06:14:08
【问题描述】:

我正在尝试删除我的 SQL Server 数据库中的角色之一。我从角色中删除了所有成员,当我尝试删除角色时,我收到了以下错误消息:

Msg 15138, Level 16, State 1, Line 13
The database principal owns a schema in the database, and cannot be dropped.

有人知道为什么吗?我检查了 Owned Schema,它只有自己名字的检查符号。

【问题讨论】:

    标签: sql-server database schema role sql-drop


    【解决方案1】:

    您不能删除拥有架构的数据库主体。您必须先将架构所有权转移给其他数据库主体或删除架构,然后才能删除数据库主体。

    【讨论】:

      【解决方案2】:

      15138 错误是由于您尝试删除的用户拥有架构。

      如果您运行以下查询,您将获得用户拥有的架构。

      USE DatabaseName; 
      SELECT s.name
      FROM sys.schemas s
      WHERE s.principal_id = USER_ID('UserName');
      

      假设它返回“db_denydatareader”模式。然后你可以分配 使用以下查询将该架构设置为默认用户“dbo”。

      ALTER AUTHORIZATION ON SCHEMA::db_denydatareader TO dbo;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-03
        • 2014-07-31
        • 2010-12-13
        • 1970-01-01
        • 2013-09-19
        • 2011-03-10
        • 2018-07-06
        • 2011-01-02
        相关资源
        最近更新 更多