前言
久仰 dbo 大名, 但是一直没有认真去看它有啥作用. 今天翻看了一下 SQL Server sample database: AdventureWorks2019, 发现它用了许多 Schema
感觉像当 namespace 用, 于是好奇心下去查了一下 Schema.
主要参考
Why Schema Is So Important When Securing SQL Servers
简单总结
Schema 中文翻译是模式.
它的作用是把 database 里的 object 做分组, Table, View, Triggers, Indexes 等等
默认的 Schema 叫 dbo, database owner 的缩写.
分组后除了整齐好看之外, 还可以做权限管理.
我个人觉得, 如果表很多的话, 确实搞个分组会比较整齐一些, 但如果你说非用不可, 那也说不上. 所以跟重要的应该是权限管理,
想查看所有 Schema 的话
SELECT s.name AS schema_name, s.schema_id, u.name AS schema_owner FROM sys.schemas s INNER JOIN sys.sysusers u ON u.uid = s.principal_id ORDER BY s.name;
这个是 AdventureWorks2019 的 Schemas
看样子, 它也只是为了整齐而已.