SQL Server – Schema

前言

久仰 dbo 大名, 但是一直没有认真去看它有啥作用. 今天翻看了一下 SQL Server sample database: AdventureWorks2019, 发现它用了许多 Schema

 

感觉像当 namespace 用, 于是好奇心下去查了一下 Schema.

 

 

主要参考

Sql Server 的Schema详解

sql server 中的模式/架构(schema)

Why Use Schemas?

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

看样子, 它也只是为了整齐而已.

外加一副 AdventureWorks2019 diagram 图

 

posted @ 2021-10-19 18:09  兴杰  阅读(580)  评论(0编辑  收藏  举报