关于SQL SERVER里的服务器角色和用户权限

来源:互联网 发布:推荐系统常用算法 编辑:程序博客网 时间:2024/06/05 14:39

        今天在写网站的时候突然发现一直对SQL SERVER里的用户权限了解不多,这里就找了下服务器角色列表以及对库的权限列表:

        服务器角色【转自http://www.cnblogs.com/yanghaibo/articles/1677025.html】

    sysadmin

    该角色能够执行SQL Server上的任何操作。本质上,任何具有这种角色成员身份的人都是那个服务器上的sa。这种服务器角色的创建为微软提供了某一天去除sa登录的能力——实际上,联机丛书把sa称作本质上为遗留物的东西.值得注意的是,在SQL Server上,Windows的Administrators组被自动映射到sysadmin角色中。这意味着服务器的Administrators组中的任何成员同时也具有对SQL数据的sa级别的访问权限。如果需要,你可以从sysadmin角色中删除Windows的administrators 组,以提高安全性、防范漏洞

    serveradmin
    该角色能设置服务器范围的配置选项或关闭服务器。尽管它在范围上相当有限,但是,由该角色的成员所控制的功能对于服务器的性能会产生非常重大的影响

    setupadmin
    该角色仅限于管理链接服务器和启动过程

    securityadmin
    对于专门创建出来用于管理登录名、读取错误日志和创建数据库许可权限的登录名来说,该角色非常便利。在很多方面,该角色是典型的系统操作员角色——它能够处理多数的日常事务,但是,却不具备一个真正无所不能的超级用户所拥有的那种全局访问

    processadmin
    能够管理SQL Server中运行的进程——必要的话,该角色能够终止长时间运行的进程

    dbcreator
    该角色仅限于创建和更改数据库

    diskadmin
    管理磁盘文件(指派给了什么文件组、附加和分离数据库,等等)

    bulkadmin
    该角色有些怪异。它被明确创建出来,用于执行BULK INSERT语句的权限,否则的话,只能由具有sysadmin权限的人来执行BULK INSERT语句。坦白地说,我不明白为什么该语句不能像其他事情那样通过GRANT命令来授予权限,但它的确没有。要记住,即使把一个用户加入到了 bulkadmin组中,也只是给了他们访问那个语句的权限,对于运行该语句的表,并没有授予用户访问那个表的权限。这意味着不仅需要把用户添加到 bulkadmin中,而且,对于想要用户能在其上执行BULK INSERT的表,还要授予(GRANT)用户INSERT许可权限。此外,对于将在BULK INSERT语句中引用的所有表,还要确保用户拥有正确的到那些表的SELECT访问权限.

    数据库角色成员身份(即用户对数据库的成员身份)【转自http://blog.csdn.net/gaozhigang/article/details/5803477】:

    db_accessadmin 固定数据库角色的成员可以为 Windows 登录帐户、Windows 组和 SQL Server 登录帐户添加或删除访问权限。

    db_backupoperator 固定数据库角色的成员可以备份该数据库。

    db_datareader 固定数据库角色的成员可以对数据库中的任何表或视图运行 SELECT 语句。

    db_datawriter 固定数据库角色的成员可以在所有用户表中添加、删除或更改数据。

    db_owner 固定数据库角色的成员可以执行数据库的所有配置和维护活动。

    重要提示: 在 SQL Server 2005 中,db_owner 固定数据库角色的成员可以删除数据库。此行为是从早期版本变化而来的。

    db_securityadmin 固定数据库角色的成员可以修改角色成员身份和管理权限。

    db_ddladmin 固定数据库角色的成员可以在数据库中运行任何数据定义语言 (DDL) 命令。

    db_denydatareader 固定服务器角色的成员不能读取数据库内用户表中的任何数据。

    db_denydatawriter 固定服务器角色的成员不能添加、修改或删除数据库内用户表中的任何数据。


原创粉丝点击