sql-server - 如何从拥有架构的 sql server 2012 中删除用户

标签 sql-server sql-server-2012

我在 Sql Server 2012 中创建了一个新用户,并且“偶然”我将它们标记为多个架构的所有者。我打算将它们标记为架构的成员,但我在错误的选项卡上!

因为他们现在是架构的所有者,所以我无法取消选择所有权,也无法删除用户。我怎样才能撤销我的错误?

Schema Ownership

最佳答案

您必须将架构的所有权转让给其他用户,可能是 dbo , 在删除用户之前:

为了测试这一点,我做了以下事情:

创建一个拥有架构的用户和一个测试架构:

USE tempdb;
CREATE USER [testuser] WITHOUT LOGIN;
GO
CREATE SCHEMA [max] AUTHORIZATION testuser;
GO

尝试删除用户,这将失败:
DROP USER [testuser];
GO

Msg 15138, Level 16, State 1, Line 1

The database principal owns a schema in the database, and cannot be dropped.



将架构的所有权转移给其他用户,在本例中为特殊用户 dbo ,拥有数据库:
ALTER AUTHORIZATION ON SCHEMA::[max] TO dbo;
GO

现在,删除测试用户,它有效:
DROP USER [testuser];

关于sql-server - 如何从拥有架构的 sql server 2012 中删除用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33025093/

相关文章:

entity-framework - 集成安全如何工作

sql - 从自由格式文本字段中提取人名

sql-server - SQL : IS NULL not working

sql - 创建具有特定格式的自定义数据类型

c# - 事件日志实用性

python - 对元组中的每个项目执行 SQL 查询

c# - 错误 : 'Operand type clash: date is incompatible with int ' on date type

SQL Server 事务 (ID) 死锁

sql - 查找记录最多的十年,SQL Server

sql-server - 如何在 MSSQL 中表示应用程序中的行和列?