数据库应用技术 SQL Server 2005
第10章 数据库的安全性管理 能力目标: 任务设计: 能根据数据库安全需求选择登录身份验证模式及其设置。 SQL Server 2005 能力目标: 能根据数据库安全需求选择登录身份验证模式及其设置。 能根据数据库安全需求创建登录和用户。 能根据数据库安全需求进行权限管理。 能根据数据库安全需求进行角色管理。 学会处理数据库安全和为用户服务的矛盾。 任务设计: 设置身份验证模式。 创建登录。 创建用户。
第10章 数据库的安全性管理 知识要求: 设置数据库对象权限和数据库权限。 创建和管理数据库角色。 SQL Server 的安全性机制。 登录和用户。 权限管理。 角色管理。
10.1 SQL Server 的安全性机制 操作系统级的安全性 SQL Server 级的安全性 SQL Server 的服务器级安全性建立在控制服务器登录帐号和口令的基础上。SQL Server 采用了标准SQL Server 登录和集成Windows NT登录两种方式。无论是使用哪种登录方式,用户在登录时提供的登录帐号和口令,决定了用户能否获得SQL Server的访问权,以及在获得访问权以后,用户在访问SQL Server时可以拥有的权利。
10.1 SQL Server 的安全性机制 数据库级的安全性 在建立用户的登录帐号信息时,SQL Server 会提示用户选择默认的数据库。以后用户每次连接上服务器后,都会自动转到默认的数据库上。对任何用户来说master数据库的门总是打开的,设置登录账号时没有指定默认的数据库,则用户的权限将局限在master 数据库以内。
10.2 SQL Server 2005的身份验证模式 Windows身份验证模式 混合模式 在Windows身份验证模式下,SQL Server 2005仅依赖用户的Windows身份验证。用户登录一旦通过操作系统的验证,访问SQL Server就不再需要其他的身份验证。使用此模式与服务器建立的连接称为信任连接。这是默认的身份验证模式,比混合模式更为安全。 混合模式 混合模式(也称SQL Server身份验证模式)是指用户登录SQL Server系统时,既可以使用Windows身份验证,也可以使用SQL Server身份验证。在混合模式下,通过 Windows 用户帐户进行连接的用户可以使用经过W indows 验证的受信任连接。如果客户端无法使用标准Windows登录,则SQL Server要求提供用户名和密码对,并将其与存储在系统表中的用户名和密码对进行比较。依赖用户名和密码对的连接称为非信任连接或SQL连接。
10.2 SQL Server 2005的身份验证模式 SQL Server 2005 SQL Server系统登录验证过程
10.3 SQL Server登录管理 使用SSMS创建登录 使用T-SQL语句创建登录 使用T-SQL语句修改删除登录 1 2 3
10.3.1使用SSMS创建登录 SQL Server 2005 “登录”是基于服务器级使用的用户名称。要连接到数据库,首先要存在一个合法的登录。在SSMS中创建登录的步骤如下 : (1) 打开SSMS并连接到目标服务器,在【对象资源管理器】窗口中,展开“安全性”节点,右键“登录名”,弹出快捷菜单,选择“新建登录名”命令。 (2) 出现【登录名】窗口,单击需要创建的登录模式前的单选按钮,选定验证方式。并完成“登录名”、“密码”、“确认密码”和其他参数的设置。 (3) 选择“选择页”中的“服务器角色”项,出现服务器角色设定页面,用户可以为此用户添加服务器角色。 (4) 选择【登录名】对话框中的“用户映射”项,进入映射设置页面,可以为这个新建的登录添加映射到此登录名的用户,并添加数据库角色,从而使该用户获得数据库的相应角色对应的数据库权限。 (5) 最后单击【登录名】对话框底部的“确定”按钮,完成登录名的创建。
10.3.2 使用T-SQL语句创建、修改、删除登录帐号 SQL Server 2005 使用T-SQL语句创建登录帐号 Sp_addlogin 登录帐号的登录名,登录密码,默认数据库,默认语言,安全码,是否加密 使用T-SQL语句修改登录帐号 (1)修改密码 Sp_password 旧密码,新密码,指定登录帐号 (2)修改默认数据库 Sp_defaultdb 指定登录帐号,默认数据库 (3)修改默认语言 Sp_defaultlanguage 指定登录帐号,默认语言 使用T-SQL语句删除登录帐号 Sp_droplogin 指定登录帐号
10.4 SQL Server数据库用户管理 1 2 3 使用SSMS创建数据库用户 使用T-SQL语句创建数据库用户
10.4 SQL Server数据库用户管理 SQL Server 2005 用户是数据库级的安全策略,在为数据库创建新的用户前,必须存在创建用户的一个登录或者使用已经存在的登录创建用户。数据库用户帐号和登录帐号的关系是: 服务器登录帐号(钥匙)→SQL Sserver数据库服务器 (大楼) 数据库用户帐号(钥匙)→服务器里的数据库1,数据库2(房间1,房间 2,… )
10.4.1使用SSMS创建用户 SQL Server 2005 (1) 打开SSMS并连接到目标服务器,在【对象资源管理器】窗口中,展开数据库节点,展开具体的数据库 节点—“安全性”节点,右键“用户”节点,从弹出的快捷菜单中选择“新建用户”命令。 (2) 出现【数据库用户-新建】对话框,在“常规”页面中,填写“用户名”,选择“登录名”和“默认架构”名称。添加此用户拥有的架构,添加此用户的数据库角色。 (3) 在【数据库用户-新建】对话框的“选择页”中选择“安全对象”,进入权限设置页面(即“安全对象”页面)。“安全对象页面”主要用于设置数据库用户拥有的能够访问的数据库对象以及相应的访问权限。单击“添加”按钮为该用户添加数据库对象,并为添加的对象添加显示权限。 (4) 最后,单击【数据库用户-新建】对话框底部的“确定”,完成用户创建。
10.4.2 使用T-SQL语句创建、修改、删除数据库用户 SQL Server 2005 使用T-SQL语句创建数据库用户 Sp_grantdbaccess 登录帐号,数据库用户名 使用T-SQL语句查看数据库用户 查看所有数据库用户 Sp_helpuser 查看指定数据库用户 Sp_helpuser 数据库用户名 使用T-SQL语句删除数据库用户 Sp_revokedbaccess 指定数据库用户名
10.5 权 限 管 理 SQL Server 2005 服务器权限 1 2 数据库对象权限 3 使用T-SQL语句查看、删除数据库用户
10.5 权 限 管 理 SQL Server 2005 权限用于控制对数据库对象的访问,以及指定用户对数据库可以执行的操作,用户可以设置服务器和数据库的权限。服务器权限允许数据库管理员执行管理任务,数据库权限用于控制对数据库对象的访问和语句执行。
10.5.1服务器权限 SQL Server 2005 服务器权限允许数据库管理员执行任务。这些权限定义在固定服务器角色(Fixed Server Roles)中。这些固定服务器角色可以分配给登录用户,但这些角色是不能修改的。一般只把服务器权限授给DBA(数据库管理员),他不需要修改或者授权给别的用户登录。
10.5.2 数据库对象权限 数据库对象是授予用户以允许他们访问数据库中对象的一类权限,对象权限对于使用SQL语句访问表或者视图是必须的。 SQL Server 2005 数据库对象是授予用户以允许他们访问数据库中对象的一类权限,对象权限对于使用SQL语句访问表或者视图是必须的。 在SSMS中给用户添加对象权限的具体步骤如下 。 (1) 依次单击【对象资源管理器】窗口中树型节点前的“+”号,直到展开目标数据库的“用户”节点。在“用户”节点下的目标用户上右键,弹出快捷菜单,从中选择“属性”命令。 (2) 出现【数据库用户】对话框,选择【选择页】窗口中的“安全对象”项,进入权限设置页面,单击“添加”按钮。 (3) 出现【添加对象】对话框,单击要添加的对象类别前的单选按钮,添加权限的对象类别,然后单击“确定”按钮。 (4) 出现【选择对象】对话框,从中单击“对象类型”按钮。
10.5.2 数据库对象权限 SQL Server 2005 (5) 出现【选择对象类型】对话框,依次选择需要添加权限的对象类型前的复选框,选中其对象。最后单击“确定”按钮。 (6) 回到【选择对象】对话框,此时在该对话框中出现了刚才选择的对象类型,单击该对话框中的“浏览”按钮。 (7) 出现【查找对象】对话框,依次选择要添加权限的对象前的复选框,选中其对象。最后单击“确定”按钮。 (8) 又回到【选择对象】对话框,并且已包含了选择的对象。确定无误后,单击该对话框中的“确定”按钮,完成对象选择操作。 (9) 回到【数据库用户】窗口,此窗口中已包含用户添加的对象,依次选择每一个对象,并在下面的该对象的“显示权限”窗口中根据需要选择“授予/拒绝”列的复选框,添加或禁止对该(表)对象的相应访问权限。设置完每一个对象的访问权限后,单击“确定”按钮,完成给用户添加数据库对象权限所有操作。
10.5.3 数据库权限 SQL Server 2005 对象权限使用户能够访问存在于数据库中的对象,除了数据库对象权限外,还可以给用户分配数据库权限。SQL Server 2005对数据库权限进行了扩充,增加了许多新的权限,这些数据库权限除了授权用户可以创建数据库对象和进行数据库备份外,还增加了一些更改数据库对象的权限 在Microsoft SQL Server 2005中给用户添加数据库权限的具体步骤如下: (1) 在【对象资源管理器】窗口中,展开“服务器”节点—“数据库”节点,在要给用户添加数据库权限的目标数据库上右键,在弹出快捷菜单中选择“属性”命令。 (2) 出现【数据库属性】对话框窗口,选择【选择页】中的“权限”项,进入权限设置页面,在该页面的“用户或角色”中选择要添加数据库权限的用户,如果该用户不在列表中,请单击“添加”按钮,添加该用户到当前数据库中。然后在该用户的“显示权限”中添加相应的数据库权限。最后单击“确定”按钮,完成操作。
10.6 角 色 管 理 SQL Server 2005 固定服务器角色 在Microsoft SQL Server Management Studio中,可以按一下步骤为用户分配固定服务器角色,从而使该用户获取相应的权限。 (1)在[对象资源管理器]口中,但即服务器前的“+”号,展开服务器节点。但即[安全性]节点前的“+”号,展开安全性节点。这是再次节点下面可以看到固定服务器角色,在要给用户添加的目标角色上单击鼠标右键,弹出快捷菜单,从中选择[属性(R)]命令。 (2)出现[服务器角色属性]对话框,单击[添加(A)…]按钮。 (3)出现[选择登陆名]对话框单击[浏览(B)…]按钮。 (4)出现[查找对象]对话框,在该对话框中,选择目标用户前的复选框,选中其用户,最后单击[确定]按钮。 (5)回到[选择登陆名]对话框,可以看到选中的目标用户已包含在对话框中,确定无误后,单击[确定]按钮。 (6)回到[服务器角色属性]对话框,确定添加的用户无误后,单击[确定]按钮,完成为用户分配角色的操作。
10.6.2 数据库角色 在Microsoft SQL Server Management Studio创建新的数据库角色操作的具体步骤如下 10.6.2 数据库角色 SQL Server 2005 在Microsoft SQL Server Management Studio创建新的数据库角色操作的具体步骤如下 (1)展开要添加新角色的目标数据库,但及目标数据库节点下的[安全性]节点前的“+”号,展开此节点。然后在[角色]节点上单机右键,弹出快捷菜单,选择快捷菜单中的[新建]|[新建数据库角色]命令 。 (2)出现[数据库角色-新建]对话框,在[常规]页面中,添加[角色名称]和[所有者],并选择此角色所拥有的架构。在此对话框中也可以单击[添加]按钮威信创建的角色添加用户 。 (3)选择[选择页]中的[安全对象]项,进入权限设置页面 。
10.5 小结 SQL Server 2005 通过本章的学习,要求读者深入理解SQL Server 的安全机制,以及掌握常用管理操作,并培养良好的数据库安全意识,以及制定合理的数据库安全策略,也为进一步的学习和掌握其他数据库安全知识奠定基础。