SQL Server之dbo

  • Post author:
  • Post category:其他





背景



当我们在执行sql查询语句的时候会自动给表名加上这么一个标识,如图:








那么为什么会加上dbo呢?什么是dbo呢?




dbo简介



Ø  定义




dbo (dbo—-database owner)是具有在数据库中执行所有活动的暗示性权限的用户。将固定服务器角色 sysadmin的任何成员都映射到每个数据库内称为 dbo 的一个特殊用户上。另外,由固定服务器角色 sysadmin 的任何成员创建的任何对象都自动属于 dbo。



Ø  举例




如果用户 userA是固定服务器角色 sysadmin 的成员,并创建表 T1,则表 T1 属于 dbo,并以 dbo.T1 而不是 userA.T1 进行限定。相反,如果 userA不是固定服务器角色 sysadmin 的成员,而只是固定数据库角色 db_owner 的成员,并创建表 T1,则 T1 属于 userA,并限定为 userA.T1。该表属于 userA,因为该成员没有将表限定为 dbo.T1。




也就是说通过用DBO作为所有者来定义对象,能够使数据库中的任何用户引用而不必提供所有者名称。




Ø  好处




我们知道无论是建表、存储过程、视图等数据库对象时,其对应的所有者是创建它的用户。它的所以的权限等等均属于是该用户的。别的用户要是想要引用等等,必须加上相关的前缀,这样造成了很多不必要的麻烦,并且可能因为引用的问题不对,造成程序的混乱和出错,故而问题的产生点却仅仅是一个很小的知识点,故而设置其权限是dbo会提供给我们很多的方便。



版权声明:本文为u010955843原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。