数据库所有者 (dbo)

Posted 紫云~~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库所有者 (dbo)相关的知识,希望对你有一定的参考价值。

数据库所有者 (dbo)
  dbo 是具有在数据库中执行所有活动的暗示性权限的用户。将固定服务器角色 sysadmin 的任何成员都映射到每个数据库内称为 dbo 的一个特殊用户上。另外,由固定服务器角色 sysadmin 的任何成员创建的任何对象都自动属于 dbo。
  例如,如果用户 Andrew 是固定服务器角色 sysadmin 的成员,并创建表 T1,则表 T1 属于 dbo,并以 dbo.T1 而不是 Andrew.T1 进行限定。相反,如果 Andrew 不是固定服务器角色 sysadmin 的成员,而只是固定数据库角色 db_owner 的成员,并创建表 T1,则 T1 属于 Andrew,并限定为 Andrew.T1。该表属于 Andrew,因为该成员没有将表限定为 dbo.T1。
  无法删除 dbo 用户,且此用户始终出现在每个数据库中。 
  只有由 sysadmin 固定服务器角色成员(或 dbo 用户)创建的对象才属于 dbo。由任何其他也不是 syadmin 固定服务器角色成员的用户(包括 db_owner 固定数据库角色成员)创建的对象:
  属于创建该对象的用户,而不是 dbo。
  用创建该对象的用户名限定。
  DBO(即设计、建设、运营)——污水处理行业最新出现的DBO模式
  DBO是个非常好的想法,因为市场化后,谁投资谁负责建设、运营,让投资人自己选择工艺,可以将投资、建设、运营一揽子考虑,政府已经选定的工艺可不一定就是造价最低、运营最优的工艺。 

 

-------------------------------------------------------------------------------------------

固定服务器角色

固定服务器角色也是服务器级别的主体,其作用范围是整个服务器。固定服务器角色已经具备了执行指定操作的权限,可以把其他登录名作为成员添加到固定服务器角色中,这样该登录名可以继承固定服务器角色的权限。

 什么是固定服务器角色

固定服务器角色也是服务器级别的主体,已经具备了执行指定操作的权限。Microsoft SQL Server 2008系统提供了9个固定服务器角色,这些角色及其功能如表4-1所示。

表4-1  固定服务器角色

固定服务器角色

描    述

bulkadmin

块数据操作管理员,拥有执行块操作的权限,

即拥有ADMINISTER BULK OPERATIONS权限,

例如执行BULK INSERT操作

dbcreator

数据库创建者,拥有创建数据库的权限,即拥有

CREATE DATABASE权限

diskadmin

磁盘管理员,拥有修改资源的权限,即拥有

ALTER RESOURCE权限

processadmin

进程管理员,拥有管理服务器连接和状态的权限,

即拥有ALTER ANY CONNECTION、

ALTER SERVER STATE权限

securityadmin

安全管理员,拥有执行修改登录名的权限,

即拥有ALTER ANY LOGIN权限

serveradmin

服务器管理员,拥有修改端点、资源、服务器状态

等权限,即拥有ALTER ANY ENDPOINT、ALTER

 RESOURCES、ALTER SERVER STATE、ALTER

 SETTINGS、SHUTDOWN和VIEW SERVER STATE权限

setupadmin

安装程序管理员,拥有修改链接服务器权限,

即拥有ALTER ANY LINKED SERVER权限

sysadmin

系统管理员,拥有操作SQL Server系统的所有权限

public

公共角色,没有预先设置的权限,用户可以向该角色授权


固定服务器角色的权限是固定不变的(public角色除外),既不能被删除,也不能增加。在这些角色中,sysadmin固定服务器角色拥有的权限最多,可以执行系统中的所有操作。可以在SQL Server Management Studio的【对象资源管理器】窗口的【安全性】|【服务器角色】节点中查看这些固定服务器角色的名称,如图4-10所示。右击某个固定服务器角色,从弹出的快捷菜单中选择【属性】命令,可以查看该角色的成员等信息。

 

1、bulkadmin服务器级权限已授予:ADMINISTERBULKOPERATIONS
2、dbcreator服务器级权限已授予:CREATEDATABASE
3、diskadmin服务器级权限已授予:ALTERRESOURCESSqlServer2005固定服务器角色:
4、processadmin服务器级权限已授予:ALTERANYCONNECTION、ALTERSERVERSTATE
5、securityadmin服务器级权限已授予:ALTERANYLOGIN6、serveradmin服务器级权限已授予:ALTERANYENDPOINT、ALTERRESOURCES、ALTERSERVERSTATE、ALTERSETTINGS、SHUTDOWN、VIEWSERVERSTATE
7、setupadmin服务器级权限已授予:ALTERANYLINKEDSERVERSqlServer2005固定服务器角色:
8、sysadmin服务器级权限已使用GRANT选项授予:CONTROLSERVER

8的等级最高,相当于sqlserver的sa账户和Oracle的sysadmin,可以做一切操作,包括以下七种角色,事实上一般以下七种角色的权限都是他来指派的,企业中一般严禁这个账户登陆的,因为一旦误操作将会造成灾难性损失。
1管理数据库大小,数据空间大小以及数据日志大小等
2拥有建立数据库的权限
3对已经分配磁盘空间进行分配
4可以管理进程,比如剔除一些非法进程
5可以管理连接权限,用户权限等。
6这个可以启动服务器,对服务器的属性进行分配(连接池、cpu、内存空间等),貌似是sqlserver特有
7这个角色很多数据库是没有的,比如sqlserver就是没有的,oracle8以前好像也是没有的,可以安装数据库以及删除数据库(在非常安全控制地方这种账户是没有连接权限的,也就是说只能安装,但是不能读取里面的数据)

这些权限各不相同,所以很难说是对服务器的还是数据库的,比如7这种,根本说不上是不是服务器级别的,因为它只有安装权限,可以认为是系统级别的,事实上,只有sqlserver存在服务器和数据库的区别,一般的诸如db2和oracle中的所谓服务器指的是那台机器而不是一个sqlserver意义上的服务器,具体情况具体对待

以上是关于数据库所有者 (dbo)的主要内容,如果未能解决你的问题,请参考以下文章

简单问题 SqlServer中的dbo是啥东西

从给定数据库中选择所有表时,如何将 [dbo] 前缀附加到表名?

SharePoint 自定义 Web 部件在对象“xxx”、数据库“yyy”、所有者“dbo”上引发 SELECT 权限被拒绝

如何将 db 架构更改为 dbo

DBMS "无法作为数据库主体执行,因为主体“dbo”不存在无法模拟这种..........”

MSSQL数据库安全