第22章安全管理.docx
- 文档编号:24651270
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:32
- 大小:1.19MB
第22章安全管理.docx
《第22章安全管理.docx》由会员分享,可在线阅读,更多相关《第22章安全管理.docx(32页珍藏版)》请在冰豆网上搜索。
第22章安全管理
第5章安全管理
教学目标
●理解MicrosoftSQLServer2005系统的安全管理的基本概念和体系结构
●理解登录名的概念和掌握登录名的管理方法
●理解固定服务器角色的特点及其与登录名之间的关系
●理解和掌握登录名、用户、架构的管理和操作
●理解和掌握执行有关权限授予、收回、否认等管理操作。
教学难点和重点
●理解MicrosoftSQLServer2005系统的安全管理的基本概念和体系结构,这是学习、理解和掌握安全管理的基础;理解登录名的概念和掌握登录名的管理方法,这是有效使用SQLServer系统的基本技术;理解固定服务器角色的特点及其与登录名之间的关系,可以提高管理SQLServer系统的效率;理解和掌握登录名、用户、架构的管理和操作;理解和掌握数据库角色和应用程序角色的特点和操作;理解和掌握执行有关权限授予、收回、否认等管理操作。
教学过程
●安全管理概述
●登录名管理
●固定服务器角色
●数据库用户管理
●架构管理
●数据库角色
●应用程序角色管理
●权限管理
●使用SQLServerManagementStudio工具
●上机实验
5.1安全管理概述
Sqlserver的身份验证有两种模式:
Windows身份验证:
直接利用操作系统的用户作为登录名。
混合身份验证:
能使用windows登录或者sqlserver的身份验证登录。
【例】:
修改实例身份验证模式
(1)右击实例名,选择属性
(2)修改属性窗口的选项
通过两个示例,加深对身份验证方式的理解
5.2安全管理概述
帐户管理
SQLSERVER帐户包含两种:
登录者和数据库用户。
登录者是面向整个SQLSERVER管理系统的,某位用户必须使用特定的登录帐户才能连接到SQLSERVER。
但是连接上并不能说明具有访问数据库的权利。
数据库用户是针对SQLSERVER管理系统中的某数据库而言。
当某用户通过合法登录帐户连接到SQLSERVER后,他还必须在所访问的数据库中创建数据库用户。
将登录帐户理解为大门钥匙,数据库用户理解为里面的小门钥匙。
通过下面实例理解登录者和数据库用户的关系:
5.2登录名管理
●登录名管理包括创建登录名、设置密码策略、查看登录名信息、修改和删除登录名。
创建登录名
●创建基于Windows登录名的登录名
(1)查看windows用户名
(2)映射windows用户为sqlserver登录名
注意:
登录名必须为:
<域\用户名>的形式
【例】:
创建windwos登录名
createlogin[ies-pc\test1]
fromwindows
【例】:
创建windwos登录名,指定默认数据库
createlogin[ies-pc\test2]
fromwindows
withdefault_database=xhdnxy
●创建SQLServer登录名
在ssms中创建登录
(1)右击登录名,点击新建登录名
(2)填入相关信息
【例】:
创建登录名testusser1
createlogintestuser1
withpassword='test',
check_policy=off–不启用windows密码策略
注:
CHECK_POLICY={ON|OFF}
仅适用于SQLServer登录名。
指定应对此登录名强制实施运行SQLServer的计算机的Windows密码策略。
默认值为ON。
【例】:
创建登录名testusser2,登录时修改密码
createlogintestuser2
withpassword='test'must_change,
check_expiration=on
注:
CHECK_EXPIRATION={ON|OFF}
仅适用于SQLServer登录名。
指定是否对此登录名强制实施密码过期策略。
默认值为OFF。
【例】:
创建登录名testusser3,默认数据库为xhdnxy
createlogintestuser3
withpassword='test',
default_database=xhdnxy
注:
DEFAULT_DATABASE=database
指定将指派给登录名的默认数据库。
如果未包括此选项,则默认数据库将设置为master。
【注】
除了createlogin外,sp_addlogin也可以完成sqlserver登录名的创建
【例】为用户Victoria创建SQLServer登录,密码为B1r12-36,并且不指定默认数据库。
sp_addlogin'Victoria',B1r12-36';
【例】为用户Albert创建SQLServer登录,密码为B5432-3M6,默认数据库为corporate。
sp_addlogin'Albert','''B5432-3M6','corporate';
sp_addlogin在以后的版本中将要删除,不建议使用。
查看登录名信息
修改和删除登录名
●登录名创建之后,可以根据需要修改登录名的名称、密码、密码策略、默认的数据库等信息,可以禁用或启用该登录名,甚至可以删除不需要的登录名。
右击要修改的登录名,选择属性
【例】:
禁用登录名
alterlogintestuser1disable
【例】:
启用已禁用的登录
alterlogintestuser1enable
【例】:
修改登录密码
拥有alteranylogin的用户:
alterlogintestuser1withpassword='123'
普通用户:
(用新建的登录名user1\test登录)
alterloginuser1
withpassword='test'
消息15151,级别16,状态1,第1行
无法对登录名'user1'执行更改,因为它不存在,或者您没有所需的权限。
alterloginuser1
withpassword='test'
old_password='123'
【例】:
修改登录名称
alterlogintestuser1withname=user1
【例】:
修改默认数据库
alterloginuser1
withdefault_database=master
删除登录名
droplogin登录名
【例】:
删除登录名user1
droploginuser1
5.3固定服务器角色
以创建的登录名登录SQLSERVER.,体验此用户可能完成的操作。
企图访问其他数据库时,出现错误:
或者:
usenews
go
消息916,级别14,状态1,第1行
服务器主体"user1"无法在当前安全上下文下访问数据库"news"。
●固定服务器角色也是服务器级别的主体,他们的作用范围是整个服务器。
固定服务器角色已经具备了固定的权限,并且可以把登录名作为成员添加到某个固定服务器角色中,以便登录名继承该固定服务器角色的权限。
固定服务器角色的特点
●MicrosoftSQLServer2005系统提供了8个固定服务器角色,这些固定服务器角色的清单和功能描述如表5-1所示。
固定服务器角色和登录名
●在MicrosoftSQLServer2005系统中,可以把登录名添加到固定服务器角色中,使得登录名作为固定服务器角色的成员并且继承固定服务器角色的权限。
也可以判断指定的登录名是否为某个固定服务器角色的成员。
可以使用sp_addsrvrolemember、sp_helpsrvrolemember、sp_dropsrvrolemember等存储过程和IS_SRVROLEMEMBER函数来执行有关固定服务器角色与登录名之间关系的操作。
(1)给登录者添加服务器角色
右击登录名,选择属性,点击服务器角色标签,选择需要添加到登录者的角色名。
或者:
通过代码实现:
【例】:
给user1添加系统管理员角色
sp_addsrvrolemember'user1','sysadmin'
(2)查看服务器角色的成员
右击服务器角色名->属性
代码实现
sp_helpsrvrolemember服务器角色名
【例】:
查看服务器角色sysadmin的成员信息
sp_helpsrvrolemembersysadmin
(3)删除登录者的服务器角色
右击登录名->属性->服务器角色,将相应服务器角色前的复选钩去掉。
或者:
右击服务器角色名->属性,将相应用户从此角色中删除
代码实现:
sp_dropsrvrolemember登录名,角色名
【例】:
删除user1的管理员角色。
sp_dropsrvrolemember'user1','sysadmin'
5.4数据库用户管理
●数据库用户是数据库级的主体,是登录名在数据库中的映射,是在数据库中执行操作和活动的行动者。
在MicrosoftSQLServer2005系统中,数据库用户不能直接拥有表、视图等数据库对象,而是通过架构拥有这些对象。
数据库用户管理包括创建用户、查看用户信息、修改用户、删除用户等操作。
创建用户
●在指定的数据库中,可以使用CREATEUSER语句创建用户。
由于用户是登录名在数据库中的映射,因此在创建用户时需要指定登录名。
在数据库中右击选择的数据库-安全性-用户,右击用户,选择“新建用户”选项
●
【例】给sales数据库创建用户(同登录名同名)
usesales
go
createuseruser1
go
【例】给sales数据库创建用户
usesales
go
createuserpangzi
forloginuser1
修改和删除用户
●可以使用ALTERUSER语句修改用户。
●修改用户包括两个方面,第一,可以修改用户名;第二,可以修改用户的默认架构。
●右击所要修改的用户->属性
【例】:
修改用户名
alteruseruser1
withname=users1
删除用户
dropuser用户名
【例】:
删除用户
dropuserusers1
5.5架构管理
●架构是形成单个命名空间的数据库实体的集合。
架构是数据库级的安全对象,也是MicrosoftSQLServer2005系统强调的新特点,是数据库对象的容器。
架构管理包括创建架构、查看架构的信息、修改架构以及删除架构。
创建架构
●使用CREATESCHEMA语句不仅可以创建架构,还可以在创建架构的同时创建该架构所拥有的表、视图,并且可以对这些对象设置权限。
下面详细讲述如何创建架构。
(1)点击所要创建架构的数据库->安全性->架构,右击,点击新建架构
(2)
修改和删除架构
●修改架构是将架构中的对象转移到其他架构对象。
可以使用ALTERSCHEMA语句完成对架构的修改。
如果要更改对象本身的结构,应该使用针对该对象的ALTER语句。
5.6数据库角色
●数据库角色是数据库级别的主体,也是数据库用户的集合。
数据库用户可以作为数据库角色的成员,并且继承数据库角色的权限。
数据库管理人员可以通过管理角色的权限来管理数据库用户的权限。
MicrosoftSQLServer2005系统提供了一些固定的数据库角色和public特殊角色。
下面详细讲述数据库角色的特点和管理方式。
管理数据库角色
●管理数据库角色包括创建数据库角色、添加和删除数据库角色成员、查看数据库角色信息、修改和删除角色。
●可以使用CREATEROLE语句创建角色。
实际上,创建角色的过程就是指定角色名称和指定该角色的所有者的过程。
如果没有明确地指定角色的所有者,则默认当前操作的用户是该角色的所有者。
固定数据库角色
●就像固定服务器角色一样,固定数据库角色也具有预先定义好的权限。
使用固定数据库角色可以大大简化数据库角色权限管理工作。
●MicrosoftSQLServer2005系统提供了9个固定数据库角色,这些固定数据库角色清单和权限描述如表5-2所示。
public角色
●除了上一节介绍的固定数据库角色之外,SQLServer系统安装之后,还有一个特殊的角色,这就是public角色。
public角色有两大缺点,第一,初始状态时没有权限;第二,所有的数据库用户都是它的成员。
5.7应用程序角色管理
●应用程序角色是一个数据库主体,它使得应用程序能够用其自身的、类似用户的权限来运行。
在使用应用程序时,可以只允许必须经过特定应用程序连接的用户来访问数据库中的特定数据,如果不通过特定的应用程序连接,将无法访问这些特定数据,从而达到安全管理的目的。
●与数据库角色相比,应用程序角色有3个特点:
第一,在默认情况下该角色不包含任何成员;第二,在默认情况下该角色是非活动的,必须经过激活才能发挥作用;第三,该角色有密码,只有拥有应用程序角色正确密码的用户才能激活该角色。
当激活某个应用程序角色之后,用户会失去自己原有的权限,而拥有了应用程序角色的权限。
5.8权限管理
●权限是执行操作、访问数据的通行证。
只有拥有了针对某种安全对象的指定权限,才能对该对象执行相应的操作。
在MicrosoftSQLServer2005系统中,不同的对象有不同的权限。
为了更好地理解权限管理的内容,下面从权限的类型、常用对象的权限、授予权限、收回权限、否认权限等几个方面分别进行介绍。
权限的类型
●预先定义的权限和预先未定义的权限
●针对所有对象的权限和针对特殊对象的权限
常用对象的权限
●上一节从权限的角度来看待对象,本节从对象的角度来看待权限。
在使用GRANT语句、REVOKE语句、DENY语句执行权限管理操作时,经常使用ALL关键字表示指定安全对象的常用权限。
不同的安全对象往往具有不同的权限。
安全对象的常用权限如表5-3所示。
授予权限
●在MicrosoftSQLServer2005系统中,可以使用GRANT语句将安全对象的权限授予给指定的安全主体。
这些可以使用GRANT语句授权的安全对象包括应用程序角色、程序集、非对称密钥、证书、约定、数据库、端点、全文目录、函数、消息类型、对象、队列、角色、路由、架构、服务器、服务、存储过程、对称密钥、系统对象、表、类型、用户、视图、XML架构集合等。
●GRANT语句的语法是比较复杂的,不同的安全对象有不同的权限,因此也有不同的授权方式。
收回权限
●如果希望从某个安全主体处收回权限,可以使用REVOKE语句。
REVOKE语句是与GRANT语句相对应的,可以把通过GRANT语句授予给安全主体的权限收回。
也就是说,使用REVOKE语句可以删除通过GRANT语句授予给安全主体的权限。
否认权限
●安全主体可以通过两种方式获得权限,第一种方式是直接使用GRANT语句为其授予权限,第二种方式是通过作为角色成员继承角色的权限。
使用REVOKE语句只能删除安全主体通过第一种方式得到的权限,要想彻底删除安全主体的指定权限必须使用DENY语句。
DENY语句的语法形式与REVOKE语句非常类似。
5.9使用MicrosoftSQLServerManagementStudio工具
●除了可以使用Transact-SQL语句执行有关安全的操作之外,使用MicrosoftSQLServerManagementStudio图形工具也可以完成许多有关安全管理的操作。
下面,通过创建登录名讲述如何使用图形工具执行安全操作。
5.10上机实验
●练习创建登录名账户、用户账户和架构
●练习使用GRANT语句、REVOKE语句和DENY语句
USEtempdb
GO
--创建两个测试表
CREATETABLEtb1(idint,valueint)
INSERTtb1VALUES(1,10)
CREATETABLEtb2(idint,valueint)
INSERTtb1VALUES(1,10)
GO
--创建登录
CREATELOGINLiangWITHPASSWORD='myfend@';
--创建用户
CREATEUSERLiangFROMLOGINLiang;
--授予用户对tb1有UPDATE某个列的权限,tb2只有SELECT权限
GRANTUPDATE(value)ONtb1TOLiang
GRANTSELECTONtb1TOLiang
GRANTSELECTONtb2TOLiang
GO
--模拟用户Liang对tb1表进行UPDATE
EXECUTEASUSER='Liang'
UPDATEtb1SET
value=20
WHEREid=1
REVERT
SELECT*FROMtb1
/*
idvalue
----------------------
120
(1行受影响)
*/
--模拟用户Liang对tb2表进行UPDATE
EXECUTEASUSER='Liang'
UPDATEtb2SET
value=20
WHEREid=1
REVERT
/*
消息229,级别14,状态5,第23行
拒绝了对对象'tb2'(数据库'tempdb',架构'dbo')的UPDATE权限。
*/
GO
--删除测试
DROPTABLEtb1,tb2
DROPUSERLiang
DROPLOGINLiang
--要控制对数据库的权限,可以参考下面的:
--防止访问他不该访问的数据库(总控制,明细还可以控制他对于某个数据库的具体对象具有的权限)
--切换到你新增的用户要控制的数据库
use你的库名
go
--新增用户
execsp_addlogin'test'--添加登录
execsp_grantdbaccessN'test'--使其成为当前数据库的合法用户
execsp_addrolememberN'db_owner',N'test'--授予对自己数据库的所有权限
--这样创建的用户就只能访问自己的数据库,及数据库中包含了guest用户的公共表
go
--删除测试用户
execsp_revokedbaccessN'test'--移除对数据库的访问权限
execsp_droploginN'test'--删除登录
如果在企业管理器中创建的话,就用:
企业管理器--安全性--右键登录--新建登录
常规项
--名称中输入用户名
--身份验证方式根据你的需要选择(如果是使用windows身份验证,则要先在操作系统的用户中新建用户)
--默认设置中,选择你新建的用户要访问的数据库名
服务器角色项
这个里面不要选择任何东西
数据库访问项
勾选你创建的用户需要访问的数据库名
数据库角色中允许,勾选"public","db_ownew"
确定,这样建好的用户与上面语句建立的用户一样
---------------------------------------------------------------------------
最后一步,为具体的用户设置具体的访问权限,这个可以参考下面的最简示例:
--添加只允许访问指定表的用户:
execsp_addlogin'用户名','密码','默认数据库名'
--添加到数据库
execsp_grantdbaccess'用户名'
--分配整表权限
GRANTSELECT,INSERT,UPDATE,DELETEONtable1TO[用户名]
--分配权限到具体的列
GRANTSELECT,UPDATEONtable1(id,AA)TO[用户名]
-------------------------------------------------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第22章 安全管理 22