Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用架构重新创建用户_Sql Server_Sql Server 2008_Database Schema - Fatal编程技术网

Sql server 使用架构重新创建用户

Sql server 使用架构重新创建用户,sql-server,sql-server-2008,database-schema,Sql Server,Sql Server 2008,Database Schema,以下代码重新创建用户: -- Remove link to order schema ALTER AUTHORIZATION ON SCHEMA::order TO dbo -- Recreate order user without login DROP USER order CREATE USER order WITH DEFAULT_SCHEMA = order -- Restore link to order schema ALTER AUTHORIZATION ON SCHEMA:

以下代码重新创建用户:

-- Remove link to order schema
ALTER AUTHORIZATION ON SCHEMA::order TO dbo

-- Recreate order user without login
DROP USER order
CREATE USER order WITH DEFAULT_SCHEMA = order

-- Restore link to order schema
ALTER AUTHORIZATION ON SCHEMA::order TO order

我的问题是,为什么我们需要在删除用户之前删除指向模式的链接,并在用户创建后将其恢复回来?

SQL Server 2005中模式的行为发生了变化。模式不再等同于数据库用户;现在,每个模式都是独立于创建它的数据库用户而存在的独特名称空间。换句话说,模式只是对象的容器。模式可以由任何用户拥有,并且其所有权是可转让的


好的,刚刚找到为什么我们需要在删除用户之前将架构链接临时移动到另一个所有者

如果不这样做,它将返回错误:

数据库主体在数据库中拥有架构,无法删除