超详细的SQLServer数据库角色与权限管理

概述

老系统还有10几台sqlserver数据库,最近需要对这些sqlserver的权限方面做一些梳理,这里先简单介绍下sqlserver角色与权限管理方面的内容。


sqlserver安全实现策略

安全性是所有数据库管理系统的一个重要特征。理解安全性问题是理解数据库管理系统安全性机制的前提。

1、当用户登录数据库系统时,如何确保只有合法的用户才能登录到系统中?

这是一个最基本的安全性问题,也是数据库管理系统提供的基本功能。

在Microsoft SQL Server 2008系统中,通过身份验证模式和主体解决这个问题。

1)身份验证模式

Microsoft SQL Server 2008系统提供了两种身份验证模式:Windows身份验证模式和混合模式。

Windows身份验证模式:

在该模式中,用户通过Windows用户账户连接SQL Server时,使用Windows操作系统中的账户名和密码。

混合模式:

在混合模式中,当客户端连接到服务器时,既可能采取Windows身份验证,也可能采取SQL Server身份验证。

主体是可以请求系统资源的个体或组合过程。例如,数据库用户是一种主体,可以按照自己的权限在数据库中执行操作和使用相应的数据。

2)主体

主体是可以请求系统资源的个体或组合过程。例如,数据库用户是一种主体,可以按照自己的权限在数据库中执行操作和使用相应的数据。

Microsoft SQL Server 2008系统有多种不同的主体,不同主体之间的关系是典型的层次结构关系,位于不同层次上的主体其在系统中影响的范围也不同。位于层次比较高的主体,其作用范围比较大;位于层次比较低的主体,其作用范围比较小。

超详细的SQLServer数据库角色与权限管理

2、当用户登录到系统中,可以执行哪些操作、使用哪些对象和资源?

在Microsoft SQL Server 2008系统中,通过安全对象和权限设置来解决这个问题。

超详细的SQLServer数据库角色与权限管理

3、数据库中的对象由谁所有?

如果是由用户所有,那么当用户被删除时,其所拥有的对象怎么办,难道数据库对象可以成为没有所有者的“孤儿”吗?

在Microsoft SQL Server 2008系统中,这个问题是通过用户和架构分离来解决的。

超详细的SQLServer数据库角色与权限管理


安全机制5个等级

客户机安全机制

网络传输的安全机制

实例级别安全机制

数据库级别安全机制

对象级别安全机制

超详细的SQLServer数据库角色与权限管理


角色

1、固定服务器角色

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

下面按照从最低级别的角色(bulkadmin)到最高级别的角色(sysadmin)的顺序进行描述:

Bulkadmin:这个服务器角色的成员可以运行BULK INSERT语句。这条语句允许从文本文件中将数据导入到SQL Server 2008数据库中,为需要执行大容量插入到数据库的域账户而设计。
Dbcreator:这个服务器角色的成员可以创建、更改、删除和还原任何数据库。这不仅是适合助理DBA的角色,也可能是适合开发人员的角色。
Diskadmin:这个服务器角色用于管理磁盘文件,比如镜像数据库和添加备份设备。它适合助理DBA。
Processadmin:SQL Server 2008能够多任务化,也就是说可以通过执行多个进程做多个事件。例如,SQL Server 2008可以生成一个进程用于向高速缓存写数据,同时生成另一个进程用于从高速缓存中读取数据。这个角色的成员可以结束(在SQL Server 2008中称为删除)进程。
Securityadmin:这个服务器角色的成员将管理登录名及其属性。他们可以授权、拒绝和撤销服务器级权限。也可以授权、拒绝和撤销数据库级权限。另外,它们可以重置SQL Server 2008登录名的密码。
Serveradmin:这个服务器角色的成员可以更改服务器范围的配置选项和关闭服务器。例如SQL Server 2008可以使用多大内存或监视通过网络发送多少信息,或者关闭服务器,这个角色可以减轻管理员的一些管理负担。
Setupadmin:为需要管理链接服务器和控制启动的存储过程的用户而设计。这个角色的成员能添加到setupadmin,能增加、删除和配置链接服务器,并能控制启动过程。
Sysadmin:这个服务器角色的成员有权在SQL Server 2008中执行任何任务。
Public:有两大特点,第一,初始状态时没有权限;第二,所有的数据库用户都是它的成员。

2、数据库角色

这里主要包括三种类型的数据库角色:

固定数据库角色:微软提供的作为系统一部分的角色;
用户定义的标准数据库角色:你自己定义的角色,将Windows用户以一组自定义的权限分组;
应用程序角色:用来授予应用程序专门的权限,而非授予用户组或者单独用户。

这里主要介绍几个固定数据库角色

超详细的SQLServer数据库角色与权限管理


权限

1、常用的权限

超详细的SQLServer数据库角色与权限管理

2、操作权限

权限分为3种状态:授予、拒绝、撤销,可以使用如下的语句来修改权限的状态。

授予权限(GRANT):授予权限以执行相关的操作。通过角色,所有该角色的成员继承此权限。

撤销权限(REVOKE):撤销授予的权限,但不会显示阻止用户或角色执行操作。用户或角色仍然能继承其他角色的GRANT权限。

拒绝权限(DENY):显式拒绝执行操作的权限,并阻止用户或角色继承权限,该语句优先于其他授予的权限。


后面会梳理下Oracle和mysql的一些权限及怎么去管理方面,感兴趣的朋友可以关注一下~

超详细的SQLServer数据库角色与权限管理

相关推荐