首先我们来阐述服务器(实例级别)的权限,实例级别和数据库级别权限的最大不同在于:实例级别的权限是直接授权给登录名,而数据库级别的全显示授予数据库用户的,然后数据库用户再与登录名匹配。(再SqlServer中,登录名和用户是两个概念,登录名用于登录到数据库实例,而用户位于数据库之内,用于和登录名匹配)

举例:

--指定登录名为dbtester,并且创建test数据库中的用户tester1
execute sp_grantdbaccess ‘dbtester’,'tester1'

在服务器(实例)范围内,对于不同的对象也可以授予不同的权限,主要有以下几种:端点,登录名,高可用性组,自定义服务器角色,固定服务器角色。利用sys.server_principals和sys.server_permissions 这两个视图可以查看已经被授予的权限。

示例:

其中我们要注意,Control Server 授予用户超级管理员的权限,可以让用户拥有对SqlServer的最高控制权,所以一般不要授予这个权限。

重点介绍一下固定服务器的角色,一共是九个分别是:

sysadmin
执行SQL Server中的任何动作,也是对任何数据库的任何操作的权限。

serveradmin
配置服务器设置,并可使用SHUTDOWN来停止实例的权限。

setupadmin
向该服务器角色中添加其他登录,添加、删除或配置链接的服务器,执行一些系统过程,如sp_serveroption。

securityadmin
用于管理登录名、读取错误日志和创建数据库许可权限的登录名,可以执行关于服务器访问和安全的所有动作。

processadmin
管理SQL Server进程,在实例中杀死其他用户进程的权限。

dbcreator
创建和修改数据库

diskadmin
管理物理数据库的权限。
bulkadmin

向数据库批量插入数据的权限(SqlServer2005中被添加进来)

public

本身不授予其他成员任何权限。只有连接权限。

固定数据库角色在数据库层上进行定义,因此它们存在于属于数据库服务器的每个数据库中。列出了所有的固定数据库角色。

db_owner
可以执行数据库中技术所有动作的用户

db_accessadmin
可以添加、删除用户的用户

db_datareader
可以查看所有数据库中用户表内数据的用户

db_datawriter
可以添加、修改或删除所有数据库中用户表内数据的用户

db_ddladmin
可以在数据库中执行所有DDL操作的用户

db_securityadmin
可以管理数据库中与安全权限有关所有动作的用户

db_backoperator
可以备份数据库的用户(并可以发布DBCC和CHECKPOINT语句,这两个语句一般在备份前都会被执行)

db_denydatareader
不能看到数据库中任何数据的用户

db_denydatawriter
不能改变数据库中任何数据的用户

参考:http://www.cnblogs.com/dannyli/archive/2012/09/18/2690740.html

SqlServer服务器和数据库角色的更多相关文章

  1. SQLServer 维护脚本分享(04)服务器角色和数据库角色相关操作

    /*------------------------------------------------------------------------------------ [服务器级别-服务器角色] ...

  2. SQLServer中服务器角色和数据库角色权限详解

    角色 当几个用户需要在某个特定的数据库中执行类似的动作时(这里没有相应的Windows用户组),就可以向该数据库中添加一个角色(role).数据库角色指定了可以访问相同数据库对象的一组数据库用户. 数 ...

  3. sql server登录名、服务器角色、数据库用户、数据库角色、架构区别联系

    原创链接:https://www.cnblogs.com/lxf1117/p/6762315.html sql server登录名.服务器角色.数据库用户.数据库角色.架构区别联系 1.一个数据库用户 ...

  4. SQL Server 登录名、服务器角色、用户名和数据库角色 --- 解释

    一.基本解释 登录名:登录服务器的用户账号: 服务器角色:登录名对该服务器具有的权限,角色分多种的,一个角色可以有多个登录名,如操作系统的系统用户可以有多个. SQL服务器角色  sysadmin   ...

  5. Microsoft SQL Server 数据库服务器管理维护角色

    固定服务器角色: 按照从最低级别的角色(bulkadmin)到最高级别的角色(sysadmin)的顺序进行描述: Bulkadmin:这个服务器角色的成员可以运行BULK INSERT语句.这条语句允 ...

  6. sqlserver 服务器主体 无法在当前安全上下文下访问数据库

    今天使用sqlserver,发现了一个问题,就是使用 insert into 数据库名.dbo.表名(字段) values(值) 这样语句的时候,会返回错误: sqlserver 服务器主体 无法在当 ...

  7. SQLServer 创建服务器和数据库级别审计

    概述 在上一篇文章中已经介绍了审计的概念:本篇文章主要介绍如何创建审计,以及该收集哪些审核规范. 一.常用的审核对象 1.1.服务器审核对象 1.FAILED_LOGIN_GROUP( Audit L ...

  8. SQLServer之删除用户定义的数据库角色

    删除用户定义的数据库角色注意事项 无法从数据库删除拥有安全对象的角色. 若要删除拥有安全对象的数据库角色,必须首先转移这些安全对象的所有权,或从数据库删除它们. 无法从数据库删除拥有成员的角色. 若要 ...

  9. SQLServer更改用户定义的数据库角色

    更改用户定义的数据库角色注意事项 需具有以下一项或多项权限或成员身份才能运行此命令: 对角色具有 ALTER 权限 对数据库具有 ALTER ANY ROLE 权限 具有 db_securityadm ...

随机推荐

  1. 项目中的web api知识总结

    最近在做公司的项目,自己负责webapi的框架的搭建与开发,最近很忙,一直没时间对工作中遇到的知识点缺少个总结,现总结一下,对自己是个提升,如果个人的小点点小总结能对博友有帮助那也是善莫大焉. (1) ...

  2. JS疑难点和GC原理

    js解析与序列化json数据(一)json.stringify()的基本用法: 对象有两个方法:stringify()和parse().在最简单的情况下,这两个方法分别用于把JavaScript对象序 ...

  3. Scalaz(3)- 基础篇:函数概括化-Generalizing Functions

    Scalaz是个通用的函数式编程组件库.它提供的类型.函数组件都必须具有高度的概括性才能同时支持不同数据类型的操作.可以说,scalaz提供了一整套所有编程人员都需要的具有高度概括性的通用函数,它是通 ...

  4. 向量自回归模型VS风险价值模型(VAR&VaR)

    单从外观上看,VAR&VaR两个模型很容易混淆,但就模型方法和用处两者截然不同,R语言作为数据分析的有力工具,其函数包库中包含各种各样的统计模型.通过vars包可以调用向量自回归模型,通过Pe ...

  5. phpcms v9 数据源

    先到phpcms后台的模块下找到数据源 数据源有两种方式 1,内部数据源 2,外部数据源 这里只做外部数据源.添加一个外部数据源 1)必须填写数据库链接信息,指定一个数据名(在站内调用是使用) 2)进 ...

  6. Python多线程学习

    一.Python中的线程使用: Python中使用线程有两种方式:函数或者用类来包装线程对象. 1.  函数式:调用thread模块中的start_new_thread()函数来产生新线程.如下例: ...

  7. struts原理

    Struts是一个开源的web框架. 为什么会有struts? 因为我们对mvc理解的不同,可能造成不同公司写程序的时候,规范不统一,这样不利于程序的维护和扩展,所以我们有必要用一个统一的规范来开发项 ...

  8. 解决MVC4发布在IIS7后,路径无法访问.apk文件的解决方法

    随着智能手机的普及,越来越多的人使用手机上网,很多网站也应手机上网的需要推出了网站客户端,.apk文件就是安卓(Android)的应用程序后缀名,默认情况下,使用IIS作为Web服务器的无法下载此文件 ...

  9. 从基础学起----xuld版高手成长手记[1]

    别人的代码总是看不懂? 想实现一个功能总是无从下手? 学会一个,但稍微变个花样就不知道了? 无论你擅长什么编程语言,如果你觉得自己基础薄弱,想从头开始学起,那本文将适合你. 这篇文章的含金量非常高,如 ...

  10. Spring4学习笔记2-配置集合属性

    1 可使用<list> <map> <set>等来配置集合属性 2 List <!-- 配置List属性 --> <bean id="p ...