技术开发 频道

SQL Server 2012数据库服务器安全管理

  服务器角色

  SQL Server服务器角色是指根据SQL Server的管理任务,以及这些任务相对的重要性等级来把具有SQL Server管理职能的用户划分为不同的用户组,每一组所具有的管理SQL Server的权限都是系统内置的,即不能对其进行添加、修改和删除,只能向其中加入用户或者其他角色。

数据库角色
▲固定服务器角色

  SQL Server2012 提供了九种常用的固定SQL Server服务器角色,其中Bulkadmin用户可以运行类似BULK INSERT 语句; 系统管理员(sysadmin)拥有SQL Server所有的权限许可;服务器管理员(serveradmin)管理SQL Server服务器端的设置;磁盘管理员(diskadmin)管理磁盘文件;进程管理员(processadmin)管理SQL Server系统进程;安全管理员(securityadmin)管理和审核SQL Server系统登录;安装管理员(setupadmin)增加、删除连接服务器,建立数据库复制以及管理扩展存储过程;数据库创建者(dbcreator)创建数据库,并对数据库进行修改。 最后还有一个就是Public角色,在服务器上创建的每个登录名都是 public 服务器角色的成员,它只拥有的权限是VIEW ANY DATABASE。public角色有两大特点:

  第一,初始状态时没有权限;第二,所有的数据库用户都是它的成员,因此不能将用户、组或角色指派为public角色的成员,也不能删除public角色的成员。public角色作用可以通过对public设置权限从而为所有数据库设置相同的权限,不要为服务器 public 角色授予服务器权限。

  SQL Server 早期版本虽然提供了九种固定服务器角色。 但用户无法更改授予固定服务器角色的权限。 从 SQL Server 2012 开始,用户可以创建用户定义的服务器角色,并将服务器级权限添加到用户定义的服务器角色。用户定义的服务器角色与固定服务器角色类似:唯一差异在于它们是由SQL Server管理员创建和管理的。用户定义的角色允许管理员们创建和分配服务器范围权限给用户定义角色。

  创建用户自定义服务器角色也非常简单,通过SSMS,找到安全性选项卡,从中找到服务器角色,右键即可出现“新服务器角色”选择,如下图所示:

数据库角色

数据库角色

 

  在创建自定义服务器权限的过程中,可以向此服务器角色授予或拒绝针对该安全对象的权限。 在“权限: 显式”框中,选中相应的复选框以针对选定的安全对象授予、授予再授予或拒绝此服务器角色的权限。 如果某个权限无法针对所有选定的安全对象进行授予或拒绝,则该权限将表示为部分选择。点击“成员”打开成员页面,根据需要给定义的服务器角色添加成员。如下图所示:

数据库角色

  最后,点击“成员身份”页,选中一个复选框,以使当前用户定义的服务器角色成为所选服务器角色的成员。

数据库角色

  就这么几步,一个简单的服务器角色就创建成功了,但也不是任何用户都有权限创建自定义服务器角色,在创建之前,要求具有 CREATE SERVER ROLE 权限,或者具有 sysadmin 固定服务器角色的成员身份。还需要针对登录名的 server_principal 的 IMPERSONATE 权限、针对用作 server_principal 的服务器角色的 ALTER 权限或用作 server_principal 的 Windows 组的成员身份。 使用 AUTHORIZATION 选项分配服务器角色所有权时,还需要具有下列权限,若要将服务器角色的所有权分配给另一个登录名,则需要对该登录名具有 IMPERSONATE 权限。若要将服务器角色的所有权分配给另一个服务器角色,则需要具有被分配服务器角色的成员身份或对该服务器角色具有 ALTER 权限。 当然,也可以使用T-SQL命令创建、修改和删除服务器角色,下面给出一个小小的示例结束本篇文章。

  示例:用户可以使用“CREATE SERVER ROLE, ALTER SERVER ROLE 和 DROP SERVER ROLE ”Transact-SQL语句来创建,修改和删除用户定义服务器角色,如下例所示:

  CREATE SERVER ROLE [ITETSQL] --创建用户自定义服务器角色

  GRANT CREATE ANY DATABASE TO [ITETSQL] --授予相应权限

  ALTER SERVER ROLE [ITETSQL] ; ADD MEMBER [Domain\df] --编辑此服务器角色,为其增加成员

  ALTER SERVER ROLE [processadmin] ;ADD MEMBER [ITETSQL] --编辑此服务器角色的成员身份选项。

  DROP SERVER ROLE [ITETSQL] –当然,如果此服务器角色用不到了,也可以将它删除。

  好了,限于片幅!关于SQL Server安全性管理中的身份验证、数据库角色、服务器角色等功能我们就介绍这么多,至于应用程序角色、权限、架构、加密、认证、审核等技术在此不再展开介绍。咱们后会有期!

0
相关文章