【IT168
技术】权限两个字,一个权力,一个限制。在软件领域通俗的解释就是哪些人可以对哪些资源做哪些操作。在SQL
Server中,”哪些人”,“哪些资源”,”哪些操作”则分别对应SQL Server中的三个对象,分别为主体(Principals),安全对象(Securables)和权限(Permissions),而权力和限制则是对应了SQL
Server中的GRENT和DENY。对于主体,安全对象和权限的初步理解,见图1.
图1.简单理解主体,安全对象和权限的关系
对于图1中的造句来说,并没有主语,也就是并没有说谁给予的权限(难道是上帝?)。你可以理解为SA账户在最开始时给予了其他主体对于安全对象的权限。
SQL Server中的验证方式
在给予别人权限之前,或是检查你是否有某项权限之前,SQL Server首先要知道“你”这个主体是否是你自己号称的那个主体。比如武侠小说中接头时对的暗号”天王盖地虎,宝塔镇河妖…”就是验证身份的一种方式。而对于SQL
Server,是在你连接SQL Server时SQL Server就需要确认你是谁。SQL Server提供了两种身份验证模式:
Windows身份验证模式
Windows身份验证模式就像其名称所示那样,由Windows来验证主体,SQL
Server并不参与验证。SQL Server完全相信Windows的验证结果。所以用此方式登录SQL
Server时并不需要提供密码。虽然如此,但Windows身份验证模式要更加安全,因为Windows身份验证模式使用了Kerberos(这一名词来源于希腊神话“三个头的狗——地狱之门守护者”)协议。这也是微软推荐的最安全的做法。
但Windows身份验证模式在由域控制器控制网络访问的情况下才得以使用(当然了,单机也包括在内)。
SQL Server和Windows身份验证模式(混合模式)
我一直觉得这种模式的名称应该改为SQL Server或Windows身份验证模式更容易理解。这种模式即允许由Windows来验证主体身份,又允许SQL
Server来验证主体身份,当由SQL Server验证主体身份时,需要用户名和密码来确认主体身份,和使用什么Windows账户半毛钱关系都没有。这些用户信息被加密后存在Master数据库中。
设置验证模式
设置验证模式非常简单。既可以在安装的时候进行设置,也可以在安装之后通过右键点击实例,选择属性,在安全性选项卡中进行改变,如图2所示。
图2.安装完SQL Server之后改变身份验证方式
理解主体
“主体”是可以请求 SQL Server 资源的实体。主体可以是个体,组或者进程。主体可以按照作用范围被分为三类:
- Windows级别主体
- 服务器级别主体
- 数据库级别主体
Windows 级别的主体包括Windows 域登录名和Windows
本地登录名。
SQL Server级的主体包括SQL Server 登录名和服务器角色。
数据库级的主体包括数据库用户和数据库角色以及应用程序角色。 |