第07讲chp4_SQLServer的安全管理new_第1页
第07讲chp4_SQLServer的安全管理new_第2页
第07讲chp4_SQLServer的安全管理new_第3页
第07讲chp4_SQLServer的安全管理new_第4页
第07讲chp4_SQLServer的安全管理new_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 SQL Server2022-5-11SQL Server安全管理安全管理 (参见第(参见第5版教材第四章)版教材第四章) SQL Server22022-5-1SQL ServerSQL Server安全管理安全管理 学习要点:学习要点: SQL Server的身份验证模式 SQL Server的登录账户的管理 用户的管理 角色管理和权限管理 SQL Server32022-5-1SQL ServerSQL Server的安全性管理的安全性管理 SQL Server 的身份验证模式的身份验证模式1登录账户管理登录账户管理 2数据库用户管理数据库用户管理3角色管理角色管理4权限管理权限管理5

2、 SQL Server42022-5-14.1 SQL Server的身份验证模式 用户想操作SQL Server中某一数据库中的数据,必须满足以下3个条件: 首先,登录SQL Server服务器时必须通过身份验证; 其次,必须是该数据库的用户或者是某一数据库角色的成员; 最后,必须拥有执行该操作的权限。 从上面三个条件可以看出从上面三个条件可以看出SQL ServerSQL Server数据库的安全检查是通数据库的安全检查是通过过 登录名、用户、权限来完成的。来完成的。 SQL Server52022-5-14.1 SQL Server的身份验证模式4.1.1 Windows 身份验证模式身

3、份验证模式 当用户通过当用户通过Windows用户帐户进行连接时,用户帐户进行连接时,SQL Server通过回叫通过回叫Windows 以获得信息,以确定该帐以获得信息,以确定该帐户是否有权限登录。户是否有权限登录。 在这种方式下,用户不必提供登录名和密码让在这种方式下,用户不必提供登录名和密码让SQL server验证。验证。 SQL Server62022-5-14.1 SQL Server的身份验证模式4.1.2混合验证模式混合验证模式 混合验证模式使用户能够通过混合验证模式使用户能够通过Windows身份验证或身份验证或SQL Server身份验证与身份验证与SQL Server实例

4、连接。实例连接。 在在SQL Server验证模式下,验证模式下,SQL Server在在sys.syslogins系系统视图中检测输入的登录名和密码。如果存在该登录名,统视图中检测输入的登录名和密码。如果存在该登录名,并且密码也是匹配的,那么该登录名可以登录到并且密码也是匹配的,那么该登录名可以登录到SQL Server;否则,登录失败。;否则,登录失败。 SQL Server验证模式下,用户必须提供登录名和密码。验证模式下,用户必须提供登录名和密码。 SQL Server72022-5-14.1 SQL Server的身份验证模式4.1.3设置验证模式设置验证模式可以使用可以使用SQL S

5、erver Management Studio来设置或来设置或改变验证模式。改变验证模式。步骤:步骤: 1)打开)打开SQL Server Management Studio,在,在“对对象资源管理器象资源管理器”中,中,右击右击服务器,再单击服务器,再单击 “属属性性” ,出现服务器属性对话框,单击,出现服务器属性对话框,单击“安全性安全性” 选择页,如图选择页,如图11-1所示。所示。 SQL Server82022-5-14.1 SQL Server的身份验证模式 SQL Server92022-5-14.1 SQL Server的身份验证模式2)选择)选择“Windows身份验证模式身

6、份验证模式” 或或 “SQL Server和和Windows身份验证模式身份验证模式” (混合模式)。(混合模式)。3)在)在“登录审核登录审核”中设置是否对用户登录中设置是否对用户登录SQL Server 2005服务器的情况进行审核,即是否将登录成功和服务器的情况进行审核,即是否将登录成功和失败的信息写入失败的信息写入SQL Server错误日志中。错误日志中。 SQL Server102022-5-14.2登录账户管理4.2.1 系统安装时已经创建的登录账户系统安装时已经创建的登录账户 SQL Server 2005安装好之后,系统会安装好之后,系统会自动自动产生一些系统内置产生一些系统

7、内置登录账户。登录账户。 本地管理员组(本地管理员组(BUILTAdministrators) 默认属于sysadmin角色中的成员,因此具有管理员权限。 系统管理员系统管理员 (sa) (sa) 默认情况下,它指派给固定服务器角色 sysadmin,并不能进行更改。 SQL Server112022-5-14.2登录账户管理4.2.2创建登录账户1使用使用SQL Server Management Studio 添加添加 Windows登录登录账户账户 注意:授权用户或组访问SQL Server时,此Windows用户和组必须事先存在必须事先存在。 2使用使用SQL Server Manag

8、ement Studio添加添加SQL Server登录登录账户账户(展开服务器(展开服务器-安全性安全性-右击右击“登录名登录名”) SQL Server122022-5-14.2登录账户管理3使用使用CREATE LOGIN语句创建登录账户。语句创建登录账户。 例例4.1 创建一个使创建一个使Windows用户用户HBSIZangSan得以连接到得以连接到SQL Server 的登录账户。的登录账户。(HBSI是服务器名,是服务器名,windows用户用户ZangSan必须已存在必须已存在) CREATE LOGIN HBSIZhangSan FROM WINDOWS 例例4.2 创建一个

9、创建一个SQL Server 登录,登录名为登录,登录名为lisi并指定密码并指定密码abcd。 CREATE LOGIN lisi WITH PASSWORD = abcd SQL Server132022-5-14.2登录账户管理4.2.3 修改登录账户修改登录账户1使用使用Management Studio修改登录账户的属性:修改登录账户的属性: 在Management Studio的“对象资源管理器”中,展开服务器下的“安全性”节点,展开“登录名”,右击右击需要修改的登录名登录名,选择“属性”,在弹出的“登录属性”对话框 中进行相应的属性修改。 SQL Server142022-5-1

10、4.2登录账户管理2使用使用ALTER LOGIN语句修改登录账户属性语句修改登录账户属性 ALTER LOGIN login_name | WITH ,. 例例4.3 将将lisi登录账户名称更改为登录账户名称更改为lisi_new。 ALTER LOGIN lisi WITH NAME=lisi_new 例例4.4 将将lisi_new 登录账户的密码修改为登录账户的密码修改为 “aaaa”。 ALTER LOGIN lisi_new WITH PASSWORD=aaaa SQL Server152022-5-14.3数据库用户管理4.3.1默认数据库用户默认数据库用户1数据库所有者数据库

11、所有者 (DataBase Owner ,缩写为缩写为dbo) dbo 是数据库的所有者,拥有数据库中的所有对象,每个数是数据库的所有者,拥有数据库中的所有对象,每个数据库都有据库都有dbo用户用户 无法删除无法删除 dbo 用户,且此用户始终出现在每个数据库中。用户,且此用户始终出现在每个数据库中。 通常,登录名通常,登录名sa映射为库中的用户映射为库中的用户dbo。另外,由固定服务。另外,由固定服务器角色器角色 sysadmin的任何成员创建的任何对象都自动属于的任何成员创建的任何对象都自动属于dbo。 SQL Server162022-5-14.3数据库用户管理2Guest用户用户Gue

12、st 用户帐户允许没有用户帐户的登录名访问数据库。用户帐户允许没有用户帐户的登录名访问数据库。当登录名没有被映射到一个用户名上时,如果在数据库中当登录名没有被映射到一个用户名上时,如果在数据库中存在存在Guest用户,登录名将自动映射成用户,登录名将自动映射成Guest,并获得相应,并获得相应的数据库访问权限。的数据库访问权限。Guest用户可以和其他用户一样设置权限。用户可以和其他用户一样设置权限。不能删除不能删除Guest用户,但可以在除用户,但可以在除master和和tempdb之外的之外的任何数据库中禁用任何数据库中禁用Guest用户。用户。 SQL Server172022-5-14

13、.3数据库用户管理3INFORMATION_SCHEMA和和sys用户用户 每个数据库中都包含每个数据库中都包含INFORMATION_SCHEME和和sys用户,它们出现在目录视图中。使用它们用户,它们出现在目录视图中。使用它们获取有关数据库的元数据信息。获取有关数据库的元数据信息。 SQL Server182022-5-14.3数据库用户管理4.3.2创建数据库用户创建数据库用户1使用使用Management Studio添加数据库用户添加数据库用户. (展开某个数据库(展开某个数据库-右击右击“安全性安全性”-新建新建-用户)用户)2使用使用CREATE USER语句添加数据库用户。语句

14、添加数据库用户。 CREATE USER user_name FOR | FROM LOGIN login_name 例例4.7 在当前数据库中创建用户在当前数据库中创建用户lisi ,其登录名为,其登录名为lisi_new 。CREATE USER lisi FROM LOGIN lisi_new SQL Server192022-5-14.2登录账户管理4.3.3 删除用户账户或登录账户删除用户账户或登录账户1. 删除用户账户删除用户账户DROP USER lisi2删除登录账户删除登录账户 DROP LOGIN lisi_new SQL Server202022-5-14.4角色管理 角

15、色是为了易于管理而对用户进行分组的一种方角色是为了易于管理而对用户进行分组的一种方式。式。 在在SQL Server中,角色分为中,角色分为服务器角色服务器角色和和数据库数据库角色角色两种。两种。 服务器角色服务器角色是服务器级别的一个对象,只能包含是服务器级别的一个对象,只能包含登录名。登录名。 数据库角色数据库角色是数据库级别的一个对象,只能包含是数据库级别的一个对象,只能包含数据库用户名。数据库用户名。 SQL Server212022-5-14.4角色管理4.4.1固定服务器角色固定服务器角色 固定服务器角色固定服务器角色 描述描述Sysadmin 在在 SQL Server 中执行任

16、何活动。中执行任何活动。Serveradmin 配置服务器范围的设置。配置服务器范围的设置。Securityadmin 管理服务器登录。管理服务器登录。Processadmin 管理在管理在 SQL Server 中运行的进程中运行的进程Dbcreator 创建和改变数据库。创建和改变数据库。Diskadmin 管理磁盘文件。管理磁盘文件。bulkadmin 执行大容量插入语句。执行大容量插入语句。 SQL Server222022-5-14.4角色管理1使用使用Management Studio将将登录账户登录账户添加到固定添加到固定服务器角服务器角色色。(服务器(服务器-安全性安全性-双击

17、某个双击某个“服务器角色服务器角色”-添加成员)添加成员)2给给服务器角色服务器角色添加成员(添加成员(登录账户)登录账户) sp_addsrvrolemember login,role 其中:其中: login:添加到固定服务器角色中的登录名。:添加到固定服务器角色中的登录名。 role:要添加登录名的固定服务器角色的名称。:要添加登录名的固定服务器角色的名称。 例如:例如:sp_addsrvrolemember lisi_new, sysadmin3. 删除删除服务器角色服务器角色的成员的成员 例如:例如: sp_dropsrvrolemember lisi_new, sysadmin S

18、QL Server232022-5-14.4角色管理4.4.2固定数据库角色固定数据库角色固定数据库角色 描述描述db_owner 数据库拥有者,可以执行所有数据库数据库拥有者,可以执行所有数据库 角色的活动。角色的活动。db_ddladmin 添加、修改或除去数据库中的对象。添加、修改或除去数据库中的对象。db_backupoperator 有备份数据库的权限。有备份数据库的权限。Public 数据库中用户的所有默认权限。数据库中用户的所有默认权限。 SQL Server242022-5-14.4角色管理1使用使用SQL Server Management Studio将用户添加到固定将用户

19、添加到固定数据库角色。数据库角色。(某个数据库(某个数据库-安全性安全性-角色角色-数据库角色数据库角色-双击某个角色双击某个角色-添加成员)添加成员)2给给数据库角色数据库角色添加成员(添加成员(用户账户)用户账户) sp_addrolemember role , security_account 其中:其中:role:当前数据库中的数据库角色的名称。:当前数据库中的数据库角色的名称。 security_account:是添加到该角色的用户。:是添加到该角色的用户。 例如:例如:sp_addrolemember db_owner,lisi3. 删除删除数据库角色的数据库角色的成员成员 例如:

20、例如:sp_droprolemember db_owner,lisi SQL Server252022-5-14.4角色管理4.4.3自定义数据库角色自定义数据库角色1使用使用Management Studio创建用户自定义数据库角色。创建用户自定义数据库角色。(某个数据库(某个数据库 - 右击右击“安全性安全性”- 新建新建 - 新建数据库角色)新建数据库角色)2使用使用CREATE ROLE语句创建数据库角色语句创建数据库角色 CREATE ROLE role_name 3使用使用DROP ROLE语句删除数据库角色语句删除数据库角色例:从当前数据库中删除一个角色例:从当前数据库中删除一个

21、角色abcDROP ROLE abc SQL Server262022-5-14.5权限管理4.5.1权限类型权限类型 权限用来控制用户如何访问数据库对象。一权限用来控制用户如何访问数据库对象。一个用户可以直接分配到权限,也可以作为一个角个用户可以直接分配到权限,也可以作为一个角色的成员来间接的得到权限。一个用户可以同时色的成员来间接的得到权限。一个用户可以同时属于多个角色。属于多个角色。 权限分为:对象权限、语句权限。权限分为:对象权限、语句权限。 SQL Server272022-5-14.5权限管理1对象权限对象权限 对象权限是指用户访问和操作数据库中表、视图、存储对象权限是指用户访问和

22、操作数据库中表、视图、存储过程等对象的权限。过程等对象的权限。 有五个不同的权限:有五个不同的权限: 查询(查询(SELECT)、插入()、插入(INSERT)、更新)、更新(UPDATE)、删除()、删除(DELETE)、执行)、执行(EXECUTE)。)。 前四个权限用于表和视图,执行只用于存储过程。前四个权限用于表和视图,执行只用于存储过程。 SQL Server282022-5-14.5权限管理2语句权限语句权限 是用户创建数据库或在数据库中创建或修改对象、执行是用户创建数据库或在数据库中创建或修改对象、执行数据库或事务日志备份的权限。数据库或事务日志备份的权限。语句权限有:语句权限有

23、: BACKUP DATABASE BACKUP LOG CREATE DATABASE DEFAULT CREATE FUNCTION CREATE PROCEDURE CREATE RULE CREATE TABLE CREATE VIEW SQL Server292022-5-14.5权限管理4.5.2权限管理操作权限管理操作 一个用户或角色的权限可以有三种存在的形式:一个用户或角色的权限可以有三种存在的形式: 授予(授予(granted) 拒绝(拒绝(denied) 回收(回收(revoked)或称为:废除或称为:废除 授予是赋予用户某权限;拒绝是禁止用户的某权限;回收授予是赋予用户某

24、权限;拒绝是禁止用户的某权限;回收是撤销以前授予或拒绝的权限。是撤销以前授予或拒绝的权限。 SQL Server302022-5-14.5权限管理1使用使用Management Studio管理权限管理权限 (某个数据库某个数据库-安全性安全性-用户用户-双击某个用户双击某个用户-安全对象安全对象-添加)添加)2用用Transact_SQL语句管理权限语句管理权限(1)语句权限)语句权限 GRANT/DENY/REVOKE ALL | statement ,n TO security_account ,n 其中:其中:ALL:表示所有可用的权限。:表示所有可用的权限。 Statement:语句权限(见:语句权限(见P28幻灯片)。幻灯片)。 security_accoun:用户。:用户。例如,给用户例如,给用户user1创建表的权限。创建表的权限。 GRANT CREATE TABLE TO user1 SQL Server312022-5-1(2)对象权限)对象权限GRANT/DENY/REVOKE ALL PRIVILE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论