"Owned Schemas" 的意义/用途是什么?

7
我正在尝试理解 SQL Server 的可安全性(securables),我不确定 OwnedSchema 的确切用途是什么。有人可以帮助我吗?它在哪里扮演着重要角色呢?

enter image description here


你应该找一个好的课程或阅读文档。这不是可以在几行内回答的问题。SQL Server的文档非常好。有数百篇优秀的博客文章和文章可供参考。微软在其免费的Virtual Academy课程中广泛涵盖了这个主题。并且你可以通过(同样是免费的)Visual Studio Dev Essentials计划获得3个月的免费访问Pluralsight的课程。 - Panagiotis Kanavos
除了没有展示任何研究之外,这个问题似乎也与 SO 的主题无关。DBA 姊妹站可能更合适,但您需要首先提出一个不那么模糊/广泛的问题。 - underscore_d
1个回答

1
这张图片上的对话框列出了所有数据库模式,并在当前数据库主体是这些模式的所有者时标记一些模式为“已选中”。
因此,它向您显示此查询的结果(您可以使用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语句进行转移。模式还可以包含由不同用户拥有的对象,并具有比分配给模式的权限更细粒度的权限,尽管这不是推荐的做法,因为它增加了管理权限的复杂性。对象可以在模式之间移动,并且模式所有权可以在主体之间转移。数据库用户可以被删除而不影响模式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接