在SQL Server中,dbo是默认的架构(Schema)。当创建表或其他数据库对象时,若未明确指定架构,系统会自动将其置于dbo下。然而,是否可以将对象创建在非dbo架构中?答案是肯定的。本文将详细介绍如何在SQL Server中创建属于其他自定义架构的表或数据库对象,实现更灵活的权限管理和对象组织。
1、 用户是账户,模式是对象集合。
2、 用户和模式的区别十分明确:用户用于控制对数据库对象的访问权限,而模式则用于对数据库对象进行逻辑分组。要访问属于某个模式的数据库对象,用户必须先获得相应授权。每个数据库对象都归属于一个特定的模式,若在创建时未显式指定,则自动归入默认模式dbo中。因此,模式是组织对象的容器,而用户则是访问这些对象的安全主体。
3、 用户下的dbo与架构下的dbo,前者指数据库所有者,后者指对象所属的命名空间。
4、 在数据库中,用户下面存在一个名为dbo的用户,而架构下面也有一个名为dbo的架构。前者用于权限管理,属于安全主体;后者则用于组织和分类数据库对象,如表、视图等。当我们看到类似dbo.table1这样的命名时,其中的dbo指的是架构名称,表示该表属于dbo架构,而非用户本身。这种区分有助于清晰地管理对象归属与访问权限。
5、 构建一个数据结构方案
6、 右键单击Schemas节点,选择菜单中的新建架构,在弹出的对话框中输入架构名称,例如demo,所有者可留空,默认使用dbo用户,确认后即可完成架构创建。
7、 在Schema中创建新表
8、 创建表时,在表名前指定Schema名称即可,具体SQL语句如下所示:
9、 确认新表的结构定义
10、 刷新左侧对象浏览器后,可见新建的table1其模式为demo,查看该表属性信息同样显示其模式为demo。
11、 采用非dbo架构创建新表
12、 使用非dbo架构的表时,必须在表名前明确指定架构名称,否则可能引发错误,具体SQL语句如下:
评论
更多评论