ch10 SQL Server 2005的安全管理

上传人:xx****x 文档编号:242869204 上传时间:2024-09-10 格式:PPT 页数:27 大小:440KB
返回 下载 相关 举报
ch10 SQL Server 2005的安全管理_第1页
第1页 / 共27页
ch10 SQL Server 2005的安全管理_第2页
第2页 / 共27页
ch10 SQL Server 2005的安全管理_第3页
第3页 / 共27页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,回目录,上一页,下一页,第10章 SQL Server 2005的安全管理,第10章 SQL Server 2005的安全管理,本章主要内容是介绍SQL Server 2005的安全管理机制,通过本章学习,掌握SQL Server 2005的登录验证模式、数据库用户管理、角色类型及角色权限管理等内容。,10.1 SQL Server 2005的安全特性,SQL Server 2005具备如下安全特性:,1细化的权限控制,2用户和计划分离,3为标准登录提供强制口令策略,4在模块上执行关联文本,5数据定义语言(DDL,Data Definition Language,)触发器,6数据库内的数据加密,7集群身份验证,8多代理帐号,9不依赖本地安全验证数据库,10SQL事件探查器不再需要系统管理员权限,11分析服务器的通讯加密与服务器端定义的策略一致,12分析服务器中细化的管理角色,13SQL Server代理作业的角色,14新的工具和帮助文件,15改进针对分析服务的审核功能,16安全公告,17Microsoft Internet Information Services (IIS)锁定向导,10.2 SQL Server 2005的安全模型,SQL Server 2005访问控制,不论是SQL Server 2000还是SQL Server 2005,都支持多种协议通信,在SQL Server中对于实际的通信过程中,并不是直接配置通信协议,MircroSoft对通信协议进行了进一步的封装,SQL Server 2005中封装成SNI协议层,但SNI并不支持用户直接配置,而是通过“TDS 端点”对象进行通信。,TDS端点是表示SQL Server与客户端之间通信点的SQL Server对象。SQL Server自动为SQL Server支持的四个协议分别创建一个端点。我们可以这样来理解TDS端点:TDS端点实际是与通信协议相关,在实际的SQL Server 2005环境中启用了什么样的通信协议,就有什么样的端点。,10.2 SQL Server 2005的安全模型,SQL Server 2005身份验证模式,SQL Server 2005提供了两种确认用户对数据库引擎服务的验证模式:Windows身份验证和SQL Server身份验证。,1Windows身份验证,SQL Server数据库系统通常运行在Windows服务器上,而Windows作为网络操作系统,本身就具备管理登录、验证用户合法性的能力,因此Windows验证模式正是利用了这一用户安全性和帐号管理的机制,允许SQL Server使用Windows的用户名和口令。在这种模式下,用户只需要通过Windows的验证,就可以连接到SQL Server,而SQL Server本身就不再需要管理一套登录数据。,2SQL Server身份验证,SQL Server身份验证模式允许用户使用SQL Server安全验证,连接到SQL Server。该认证模式下,用户在连接SQL Server时必须提供登录名和登录密码,这些登录信息存储在系统表syslogins中,与Windows的登录帐号无关。SQL Server自身执行认证处理,如果输入的登录信息与系统表syslogins中的某条记录相匹配,则表明登录成功。,10.3 服务器的安全性,服务器登录账户,登录账户,(LoginName)是指用户登录(连接) SQL Server服务器的账户和密码,是进入数据库服务器的第一张通行证。,特殊登录账户,sa:SQL Server数据库服务器系统管理员登录账户。不可删除、不能更改。该账户拥有最高的管理权限,不要轻易使用sa。,BUILTINAdministrators:一个Windows组账户,凡属于该组的Windows账户都可作为SQL Server的登录账户,可删除。,10.3 服务器的安全性,创建登录帐户,1利用SQL Server Management Studio创建、管理SQL Server登录帐号,下面创建一个“login1”的登录帐号,其具体执行步骤如下:, 打开SQL Server Management Studio单击需要登录的服务器左边的“+”号展开安全性文件夹右击登录名(login)图标从弹出的快捷菜单中选择“新建登录名”选项出现SQL Server“登录名新建”对话框。, 在“名称”文本框中输入登录名,如输入:login1。在身份验证选项栏中选择新建的用户帐号是Windows 认证模式,或是SQL Server认证模式(这里选择的是SQL Server认证模式)。, 选择“服务器角色”选项卡。在服务器角色列表框中,列出了系统的固定服务器角色。在这些固定服务器角色的左端有相应的复选框,打勾的复选框表示该登录帐号是相应的服务器角色成员(这里选择“sysadmin”)。, 选择“用户映射”选项卡进行设定, 选择“安全对象”选项卡进行设定, 设置完成后,单击“确定”按钮即可完成登录帐号“login1”的创建。,10.3 服务器的安全性,创建登录帐户,2使用Transact-SQL语句添加登录帐户进行设定,可以使用CREATE LOGIN语句添加登录帐户,命令格式如下:,CREATE LOGIN login_name WITH | FROM , := WINDOWS WITH ,. , := PASSWORD = password HASHED MUST_CHANGE , ,. , := DEFAULT_DATABASE = database | DEFAULT_LANGUAGE = language | CHECK_EXPIRATION = ON | OFF | CHECK_POLICY = ON | OFF, :=DEFAULT_DATABASE = database|DEFAULT_LANGUAGE = language,其中:login_name 指定创建的登录名。,WINDOWS指定将登录名映射到 Windows 登录名。,PASSWORD = password 仅适用于 SQL Server 登录名。指定正在创建的登录名的密码。,示例:,通过CREATE LOGIN语句添加登录帐户“login3”,登录密码为“123456”。,CREATE LOGIN login3 WITH PASSWORD=123456,10.3 服务器的安全性,修改登录帐户属性,使用SQL Server Management Studio修改登录帐户属性,只需双击要修改属性的登录帐户,并在登录属性对话框中进行修改即可。,注意:对于SQL Server帐户,可以修改其密码。对于Windows帐户,只能使用Windows控制面板中的“计算机管理器”或“域用户管理器”修改帐户密码。,10.3 服务器的安全性,禁用登录帐户,有时可能需要暂时拒绝或禁用一个登录帐户连接到SQL Server服务器,过一段时间后再恢复。使用SQL Server Management Studio拒绝登录帐户的步骤如下:,打开SQL Server Management Studio展开SQL Server服务器组选中相应服务器选择“安全性|登录名” 双击要拒绝访问的登录帐户打开登录属性对话框选择“状态”选择页选中“拒绝”或“禁用”单选按钮单击“确定”按钮。,10.3 服务器的安全性,删除登录帐户,(1)使用SQL Server Management Studio删除登录帐户,打开SQL Server Management Studio展开SQL Server服务器组选中相应服务器选择“安全性|登录名” 在右侧窗口的登录帐户列表中右击要删除的帐户从弹出的快捷菜单中选择“删除”选项。,(2)使用Transact-SQL语句删除登录帐户,可以使用DROP LOGIN删除登录帐户,语法形式如下:,DROP LOGIN login_name,其中:login_name是要删除的登录名。,示例:,通过DROP LOGIN语句删除登录帐户“login3”。,DROP LOGIN login3,10.3 服务器的安全性,服务器角色,角色,角色定义了常规的 SQL Server 用户类别,每种角色将该类别的用户与其使用 SQL Server时执行的任务集相关联。利用角色,SQL Server管理者可以将设置用户的角色,这样只要对角色进行权限设置便可以实现对所有相关用户权限的设置,大大减少了管理员的工作量。,SQL Server提供了用户通常使用的,预定义服务器角色和数据库角色,。用户还可以创建自己的数据库角色,以便表示某一类进行同样操作的用户。当用户需要执行不同的操作时,只需将该用户加入不同的角色中即可,而不必对该用户反复授权许可和收回许可。,10.3 服务器的安全性,服务器角色定义,服务器角色,说 明,系统管理员(sysadmin),拥有SQL Server所有的权限许可,服务器管理员(serveradmin),管理SQL Server服务器端的设置,磁盘管理员(diskadmin),管理磁盘文件,进程管理员(processadmin),管理SQL Server系统进程,安全管理员(securityadmin),管理和审核SQL Server系统登录,安装管理员(setupadmin),增加、删除连接服务器,建立数据库复制以及管理扩展存储过程,数据库创建者(dbcreator),创建数据库,并对数据库进行修改,批量数据输入管理员(bulkadmin),管理同时输入大量数据的操作,10.3 服务器的安全性,服务器角色管理,1.使用SQL Server Management Studio管理角色,打开SQL Server Management Studio展开指定的服务器单击“安全性”文件夹单击“服务器角色”图标在右边的对话框中右击所要的角色从弹出的快捷菜单中选择“属性”选项出现服务器角色属性对话框。,在该对话框中我们可以看到属于该角色的成员,单击“添加”按钮则弹出添加成员对话框,其中可以选择添加新的登录帐号作为该服务器角色成员,单击“删除”按钮则可以从服务器角色中删除选定的帐号。,10.3 服务器的安全性,服务器角色管理,2.使用存储过程管理角色,在SQL Server中,管理服务器角色的存储过程主要有两个:,sp_addsrvrolemember和sp_dropsrvrolemember。,系统存储过程sp_addsrvrolemember可以将某一登录帐号加入到服务器角色中,使其成为该服务器角色的成员。其语法形式如下:,sp_addsrvrolemember loginame= login , rolename = role,其中:loginame 为登录者名称。,rolename 为服务器角色。,系统存储过程sp_dropsrvrolemember可以将某一登录者从某一服务器角色中删除,当该成员从服务器角色中被删除后,便不再具有该服务器角色所设置的权限。其语法形式如下:,sp_dropsrvrolemember loginame=login,rolename=role,其中:loginame为登录者名称。,rolename为服务器角色。,示例:,通过存储过程sp_addsrvrolemember将登录帐户“login2”加入到服务器角色“sysadmin”中。,sp_addsrvrolemember login2 , sysadmin;,10.4 数据库的用户管理,一台服务器除了有一套服务器登录帐户列表外,每个数据库中也都有一套相互独立的数据库用户列表。每个数据库用户都和服务器登录帐户之间存在着一种映射关系。系统管理员可以将一个服务器登录帐户映射到用户需要访问的每一个数据库中的一个用户帐户和角色上。一个登录帐户在不同的数据库中可以映射成不同的用户,从而拥有不同的权限。有关信息保存在各自数据库sysusers表中。,10.4 数据库的用户管理,添加数据库用户,1使用SQL Server Management Studio添加用户,在一个数据库中,用户帐号惟一标识一个用户,用户对数据库的访问权限以及对数据库对象的所有关系都是通过用户帐号来控制的。,利用SQL Server Management Studio可以授予SQL Server登录访问数据库的许可权限。,利用SQL Server Management Studio创建一个新数据库用户帐号“user1”的步骤如下:, 打开SQL Server Management Studio展开要登录的服务器展开要创建用户的数据库及安全文件夹右击用户图标从快捷菜单中选择“新建用户”选项出现“数据库用户新建”对话框。, 在用户名框内输入数据库用户名称,在登录名选择框内选择已经创建的登录帐号“login1”,然后在下面的数据库角色成员选择框中,为该用户选择数据库角色,最后单击“确定”按钮即可完成数据库用户的创建。,10.4 数据库的用户管理,添加数据库用户,2使用Transact-SQL语句添加数据库用户,可以使用CREATE USER添加数据库用户,其基本语法形式如下:,CREATE USER user_name FOR | FROM LOGIN login_name | WITHOUT LOGIN WITH DEFAULT_SCHEMA = schema_name ,其中:,user_name 指定在此数据库中用于识别该用户的名称,user_name的长度最多是128个字符。,LOGIN login_name 指定要创建数据库用户的SQL Server登录名,login_name必须是服务器中有效的登录名。,WITH DEFAULT_SCHEMA = schema_name 指定服务器为此数据库用户解析对象名时将搜索的第一个架构。,WITHOUT LOGIN 指定不应将用户映射到现有登录名,注意:,示例:,如果已忽略,FOR LOGIN,,则新的数据库用户将被映射到同名的,SQL Server,登录名。,如果未定义,DEFAULT_SCHEMA,,则数据库用户将使用,dbo,作为默认架构。,如果用户是,sysadmin,固定服务器角色的成员,则忽略,DEFAULT_SCHEMA,的值。,映射到,SQL Server,的登录名不能包含反斜杠字符(,)。,通过CREATE USER语句添加对应登录帐户“login2”的数据库用户“user2”。,USE stud,CREATE USER user2 FOR LOGIN login2,10.4 数据库的用户管理,修改数据库用户,可以使用SQL Server Management Studio修改数据库用户的授权,具体步骤如下:,打开SQL Server Management Studio展开服务器和数据库单击用户图标,此时在右面的对话框中将显示数据库的所有用户。在数据库用户清单中,右击要进行许可设置的用户(这里选择“user1”)从弹出的快捷菜单中选择“属性”选项出现数据库用户属性对话框选择“安全对象”选项卡。,在上述对话框中单击“添加”按钮,则弹出“添加对象”对话框。选择“特定对象”单选钮后,出现对话框,选择对象类型“表”,对象名称选择库下面的表。,点击“确定”后则出现对话框,在该对话框中可以进行对象许可的设置,点击对话框底部“列权限”按钮,出现对话框,在该对话框中可以选择用户对哪些列具有哪些权限,最后单击“确定”按钮即可完成许可的设置。,10.4 数据库的用户管理,删除数据库用户,1使用SQL Server Management Studio删除数据库用户,在SQL Server Management Studio中,也可以查看或者删除数据库用户,方法是:展开某一数据库,选中用户图标,在左面的对话框中显示当前的数据库的所有用户。要删除数据库用户,则在左面的对话框中右击所要删除的数据库用户从弹出的快捷菜单中选择“删除”选项,则会从当前的数据库中删除该数据库用户。,2使用Transact-SQL命令删除数据库用户,其语法形式如下:,DROP USER user_name,其中:user_name 指定在此数据库中用于识别该用户的名称。,示例:,通过DROP USER语句删除stud库的数据库用户“user2”。,USE stud,DROP USER user2,10.5 数据库的用户角色,数据库角色是为某一用户或某一组用户授予不同级别的管理或访问数据库以及数据库对象的权限,这些权限是数据库专有的,并且还可以使一个用户具有属于同一数据库的多个角色。,SQL Server提供了两种类型的数据库角色:固定的数据库角色与用户自定义的数据库角色。,10.5 数据库的用户角色,固定的数据库角色,数据库角色,说 明,public,每个数据库用户都属于 public 数据库角色,当尚未对某个用户授予或拒绝对安全对象的特定权限时,则该用户将继承授予该安全对象的 public 角色的权限,db_owner,可以执行数据库的所有配置和维护活动,db_accessadmin,可以增加或者删除数据库用户、工作组和角色,db_ ddladmin,可以在数据库中运行任何数据定义语言 (DDL) 命令,db_securityadmin,可以修改角色成员身份和管理权限,db_backupoperator,可以备份和恢复数据库,db_datareader,能且仅能对数据库中的任何表执行select操作,从而读取所有表的信息,db_datawriter,能够增加、修改和删除表中的数据,但不能进行SELECT操作,db_denydatareader,不能读取数据库中任何表中的数据,db_denydatawriter,不能对数据库中的任何表执行增加、修改和删除数据操作,10.5 数据库的用户角色,自定义的数据库角色,创建用户定义的数据库角色就是创建一组用户,这些用户具有一组相同的许可。如果一组用户需要执行在SQL Server中指定的一组操作并且不存在对应的Windows组,或者没有管理Windows用户帐号的许可,就可以在数据库中建立一个用户自定义的数据库角色。用户自定义的数据库角色有两种类型:即,标准角色和应用程序角色,。,10.5 数据库的用户角色,增删数据库角色的成员,1使用SQL Server Management Studio管理角色,创建数据库角色的步骤如下所示:打开SQL Server Management Studio展开指定的服务器以及指定的数据库展开“安全性”文件夹右击“数据库角色”图标从弹出的快捷菜单中选择“新建数据库角色”选项出现新建数据库角色对话框在名称文本框中输入该数据库角色的名称点击架构前的复选框设定此角色拥有的架构单击“添加”按钮将数据库用户增加到新建的数据库角色中单击“确定”按钮完成新的数据库角色的创建。,10.5 数据库的用户角色,增删数据库角色的成员,2使用存储过程管理角色,在SQL Server中,支持数据库管理的存储过程主要有六种:,(1)CREATE ROLE,CREATE ROLE,role_name AUTHORIZATION owner_name ,(2)DROP ROLE,Drop role role_name,(3)sp_helprole,sp_helprole role,(4)sp_addrolemember,sp_addrolemember role,security_account,(5)sp_droprolemember,sp_droprolemember role,security_account,(6)sp_helprolemember,sp_helprolemember role,示例:,通过sp_helprolemembe存储过程显示stud库中属于角色“db_owner”的所有数据库用户。,USE stud,sp_helprolemember db_owner,10.6 权限管理,许可(权限)的种类,许可(权限)用来指定授权用户可以使用的数据库对象和这些授权用户可以对这些数据库对象执行的操作。用户在登录到SQL Server之后,其用户帐号所归属的Windwos组或角色所被赋予的许可(权限)决定了该用户能够对哪些数据库对象执行哪种操作以及能够访问、修改哪些数据。在每个数据库中用户的许可独立于用户帐号和用户在数据库中的角色,每个数据库都有自己独立的许可系统。,在SQL Server中包括三种类型的许可:即,对象许可、语句许可和预定义许可,。,10.6 权限管理,权限的管理,1通过SQL Server Management Studio管理权限,(1)管理数据库的权限,(2)管理用户的权限,(3)管理数据库对象的权限,10.6 权限管理,权限的管理,2使用Transact-SQL 语句管理权限,在Transact-SQL语言中,使用GRANT、DENY和REVOKE三种命令来管理权限。,(1)GRANT命令用于把指定的权限授予某一用户。,GRANT ALL PRIVILEGES | 权限名 ( 列名 ,.n ) ,.n ,ON 数据库对象名 TO 用户/角色 WITH GRANT OPTION ,(2)DENY命令用来禁止用户使用指定的权限。,DENY ALL PRIVILEGES | 权限名 ( 列名 ,.n ) ,.n , ON 数据库对象名 TO 用户/角色 CASCADE,(3)REVOKE命令用来收回用户所拥有的某些权限,使其不能执行此操作,除非该用户被加入到某个角色中,从而通过角色获得授权。,REVOKE GRANT OPTION FOR ALL PRIVILEGES | 权限名 ( 列名 ,.n ) ,.n ON 数据库对象名 TO | FROM 用户/角色 CASCADE,1、把查询Student表的权限授予用户USER1。,GRANT SELECT,ON Student TO user1,2、把对Student表和Class表的全部操作权限授予用户USER2和USER3,GRANT ALL,ON Student TO USER2,USER3 -授予USER2 USER3 Student表的全部权限,GRANT ALL,ON Class TO USER2,USER3 -授予USER2 USER3 Class表的全部权限,3、把对表Student的查询权限授予所有用户。,GRANT SELECT,ON Student TO PUBLIC,4、把查询Student表和修改学生学号的权限授予用户USER4。,GRANT UPDATE(Sno),SELECT,ON Student TO USER4,1、禁止USER2、USER3对表Student的Insert权限。,DENY Insert,ON Student TO USER2,USER3,2、禁止用户USER1使用CREATE DATABASE和CREATE TABLE语句。,DENY CREATE DATABASE, CREATE TABLE,TO USER1,1、收回用户USER4修改学生学号的权限。,REVOKE UPDATE(Sno),ON Student FROM USER4,2、收回所有用户对表Student的查询权限。,REVOKE SELECT,ON Student FROM PUBLIC,3、收回用户USER5对Student表的INSERT权限。,REVOKE INSERT,ON Student FROM USER5 CASCADE,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!