Profiler
捕获):SELECT
s.name AS [Name],
s.schema_id AS [ID],
ISNULL(dp1.name, N'') AS [Owner],
CAST(
case when s.name in ('dbo','guest','INFORMATION_SCHEMA','sys','db_owner','db_accessadmin','db_securityadmin','db_ddladmin','db_backupoperator','db_datareader','db_datawriter','db_denydatareader', 'db_denydatawriter') then 1 else 0 end AS bit) AS [IsSystemObject]
FROM
sys.schemas AS s
LEFT OUTER JOIN sys.database_principals AS dp1
ON dp1.principal_id = s.principal_id
ALTER AUTHORIZATION ON SCHEMA::[this_schema] TO [this_user]
这个链接也很有用,可以了解SQL Server中的所有权和用户模式分离Ownership and User-Schema Separation in SQL Server。
模式所有者和权限
模式可以由任何数据库主体拥有,并且单个主体可以拥有多个模式。您可以为模式应用安全规则,这些规则将被模式中的所有对象继承。一旦您为模式设置了访问权限,这些权限将自动应用于添加到模式中的所有新对象。用户可以被分配一个默认模式,并且多个数据库用户可以共享同一个模式。默认情况下,当开发人员在模式中创建对象时,这些对象是由拥有模式的安全主体拥有,而不是开发人员。对象所有权可以通过ALTER AUTHORIZATION Transact-SQL语句进行转移。模式还可以包含由不同用户拥有的对象,并具有比分配给模式的权限更细粒度的权限,尽管这不是推荐的做法,因为它增加了管理权限的复杂性。对象可以在模式之间移动,并且模式所有权可以在主体之间转移。数据库用户可以被删除而不影响模式。