10、第9章安全管理课件.pptx
大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计第第9章章 安全管理安全管理n安全认证模式安全认证模式n登录管理登录管理n数据库用户管理数据库用户管理n角色角色大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计三个概念:登录、用户、角色三个概念:登录、用户、角色登录帐号登录帐号:用来和:用来和SQL SERVERSQL SERVER连接连接有了登录号才能连接上有了登录号才能连接上SQL SERVERSQL SERVER,才有使用,才有使用SQL SERVERSQL SERVER的入门资格,但登录帐号没有使用数据库对象的权力的入门资格,但登录帐号没有使用数据库对象的权力数据库用户数据库用户:简称用户,作为数据库对象,:简称用户,作为数据库对象,SQL SQL SERVERSERVER用它来设定数据库存取的许可权。用它来设定数据库存取的许可权。所以为了要存取所以为了要存取SQL SERVERSQL SERVER内的某一数据库的数据库对象,内的某一数据库的数据库对象,每一登录帐号必须对应一个用户名。每一登录帐号必须对应一个用户名。角色角色:也称也称为为安全性角色安全性角色,对对数据具有相同的数据具有相同的访问权访问权限。包括限。包括系统内建系统内建角色和角色和自建自建角色角色二类角色二类角色,其中,系其中,系统内建角色又分为服务器角色和数据库角色,数据库角统内建角色又分为服务器角色和数据库角色,数据库角色也是一个数据库对象色也是一个数据库对象大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计登录、用户的关系登录、用户的关系1 1、登录帐号是用来连接、登录帐号是用来连接SQL SERVERSQL SERVER的,但登录帐号没有使的,但登录帐号没有使用数据库对象的权力,用数据库对象的权力,SQL SERVERSQL SERVER是以用户名来设定数是以用户名来设定数据库存取的许可权。所以,为了要存取据库存取的许可权。所以,为了要存取SQL SERVERSQL SERVER内某内某一数据库内的数据库对象,每一登录帐号必须在该数据一数据库内的数据库对象,每一登录帐号必须在该数据库对应一个用户名库对应一个用户名2 2、用户是数据库对象,定义和修改时必须选择、用户是数据库对象,定义和修改时必须选择对应的数据对应的数据库库,而登录不是数据库对象,它的定义和修改在,而登录不是数据库对象,它的定义和修改在SQL SQL SERVERSERVER服务器下的服务器下的安全性安全性里进行。里进行。3 3、用户的定义必须指定对应的登录名,一个登录名可以对、用户的定义必须指定对应的登录名,一个登录名可以对应多个用户,但一个登录名在一个数据库内只能有一个应多个用户,但一个登录名在一个数据库内只能有一个用户。用户。4 4、用户名与数据库相关。、用户名与数据库相关。sales 数据库中的数据库中的 xyz 用户帐用户帐户不同于户不同于 inventory 数据库中的数据库中的 xyz 用户帐户,即使用户帐户,即使这两个帐户有相同的用户名。用户名由这两个帐户有相同的用户名。用户名由 db_owner 固定固定数据库角色成员定义。数据库角色成员定义。大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计用户、角色的关系用户、角色的关系1 1、角色在权限管理方面是一个强有力的工具,是具有、角色在权限管理方面是一个强有力的工具,是具有相同权限的用户的集合,角色分为系统内建角色和自相同权限的用户的集合,角色分为系统内建角色和自建角色,同时系统内建角色分为服务器角色和数据库建角色,同时系统内建角色分为服务器角色和数据库角色,自建角色都是数据库角色。角色,自建角色都是数据库角色。2 2、服务器角色和登录名相对应;而数据库角色是和用、服务器角色和登录名相对应;而数据库角色是和用户对应的,数据库角色和用户都是数据库对象,定义户对应的,数据库角色和用户都是数据库对象,定义和删除的时候必须选择所属的数据库和删除的时候必须选择所属的数据库3 3、一个数据库角色中可以有多个用户,一个用户也可、一个数据库角色中可以有多个用户,一个用户也可以属于多个数据库角色以属于多个数据库角色大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计 SQL SERVER 2000工工作作时时,用用户户需需要要经经过过两两个个安安全全性阶段:身份验证、授权(权限验证)性阶段:身份验证、授权(权限验证)9.1.1 9.1.1 身份验证身份验证 又又叫叫认认证证,是是使使用用SQL SERVER 2000的的第第一一道道管管制制关关卡卡,用用户户必必须须使使用用登登录录帐帐号号和和密密码码来来登登录录SQL SERVER,当登录成功后才拥有使用,当登录成功后才拥有使用SQL SERVER 的入门资格。的入门资格。但但是是,即即使使你你通通过过了了第第一一道道认认证证关关卡卡并并不不表表示示你你对对SQL SERVER内的数据有存取的权限。内的数据有存取的权限。9.1 安全认证模式安全认证模式大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计SQL SERVER 2000可可以以通通过过两两种种方方式式来来进进行行身身份份验验证证:Windows身份验证、身份验证、SQL SERVER身份验证。身份验证。Windows身身份份验验证证:由由Windows系系统统确确认认用用户户的的登登录录帐帐号号和和密密码码,Windows系系统统的的登登录录帐帐号号可可以以直直接接访访问问SQL SERVER系系统统,不不必必提提供供SQL SERVER的的登登录录帐帐号号和密码。和密码。SQL SERVER身身份份验验证证:由由Windows系系统统确确认认用用户户的登录帐号和口令。的登录帐号和口令。相相应应的的,SQL SERVER 2000可可以以在在两两种种安安全全模模式式(身身份份验证)下工作:验证)下工作:Windows身份验证模式身份验证模式:用:用Windows用户帐号进行连接用户帐号进行连接混混合合模模式式:用用Windows身身份份验验证证或或SQL SERVER身身份份验验证与证与SQL SERVER实例连接。实例连接。9.1.1 9.1.1 身份验证身份验证大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计9.1.2 9.1.2 授权授权 又叫权限验证,数据库中的所有对象的存取权限还又叫权限验证,数据库中的所有对象的存取权限还必须通过必须通过授权(即存取许可)授权(即存取许可)的设定来决定该登录者的设定来决定该登录者是否拥有某一对象的存取权限。是否拥有某一对象的存取权限。大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计9.2 登录管理登录管理 登登录录帐帐号号是是基基于于服服务务器器使使用用的的用用户户名名。为为了了访访问问SQL Server系系统统,用用户户必必须须提提供供正正确确的的登登录录帐帐号号。这这些些登登录录帐帐号号既既可可以以是是Windows登登录录帐帐号号,也也可可以以是是SQL Server登录帐号。登录帐号。登录帐号的信息是系统级信息,存储在登录帐号的信息是系统级信息,存储在master数据库数据库中的中的syslogins系统表中。系统表中。大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计增加登录帐号可以有两种方法:增加登录帐号可以有两种方法:使用企业管理器使用企业管理器 1 1、选择要建立登录的、选择要建立登录的SQL SERVERSQL SERVER服务器服务器 2 2、展开安全性,选择登录、展开安全性,选择登录使用系统存储过程使用系统存储过程 1 1、SQL SERVERSQL SERVER登录登录(sp_AddLoginsp_AddLogin,sp_DropLoginsp_DropLogin)sp_addloginsp_addlogin 登陆名登陆名,密码密码,默认数据库默认数据库 2 2、Windows NTWindows NT用户或组用户或组登录登录(机器名机器名 用户用户或或工作组工作组名名)(sp_GrantLoginsp_GrantLogin、sp_DenyLogin sp_DenyLogin、sp_RevokeLogin sp_RevokeLogin)格式格式:sp_GrantLogin sp_GrantLogin 机器名机器名 用户名用户名9.2.1 9.2.1 创建登录创建登录大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计9.2.2 9.2.2 查看、修改登录查看、修改登录查看、修改登录帐号:查看、修改登录帐号:使用企业管理器使用企业管理器 1 1、选择要查看或修改的登录的、选择要查看或修改的登录的SQL SERVERSQL SERVER服务器服务器 2 2、展开安全性,选择登录、展开安全性,选择登录 3 3、在详细信息窗格中,右击要查看的登录,然后单、在详细信息窗格中,右击要查看的登录,然后单击属性。击属性。大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计9.2.3 9.2.3 删除登录删除登录使用企业管理器使用企业管理器 1 1、选择要删除登录的、选择要删除登录的SQL SERVERSQL SERVER服务器服务器 2 2、展开安全性,选择登录、展开安全性,选择登录 3 3、在详细信息窗格中,右击要查看的登录,单击删除。、在详细信息窗格中,右击要查看的登录,单击删除。使用系统存储过程使用系统存储过程 1 1、SQL SERVERSQL SERVER登录登录(sp_dropLoginsp_dropLogin)sp_droploginsp_droplogin 登陆名登陆名,密码密码,默认数据库默认数据库 2 2、Windows NTWindows NT用户或组用户或组登录登录(机器名机器名 用户用户或或工作组工作组名名)(sp_DenyLoginsp_DenyLogin、sp_RevokeLogin sp_RevokeLogin)格式格式:sp_revokeLogin sp_revokeLogin 机器名机器名 用户名用户名大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计9.3 数据库用户管理数据库用户管理 用户帐号是基于数据库使用的名称,与登录帐号相对用户帐号是基于数据库使用的名称,与登录帐号相对应,登录帐号属数据库实例范畴的概念,用户帐号属于应,登录帐号属数据库实例范畴的概念,用户帐号属于特定数据库范畴。一个登录帐号可以使用一个特定的用特定数据库范畴。一个登录帐号可以使用一个特定的用户帐号或一个默认的用户帐号。户帐号或一个默认的用户帐号。用户帐户是由用户帐户是由SQL ServerSQL Server管理的,所有的用户帐户都管理的,所有的用户帐户都存放在系统表存放在系统表sysuserssysusers中。中。大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计9.3.1 9.3.1 创建用户帐号创建用户帐号创建数据库用户帐号,可以有两种方法:创建数据库用户帐号,可以有两种方法:使用企业管理器使用企业管理器 1 1、选择要建立用户的、选择要建立用户的SQL SERVERSQL SERVER服务器服务器 2 2、展开数据库,选择用户、展开数据库,选择用户使用系统存储过程使用系统存储过程 sp_AddUser sp_AddUser 登录名登录名,用户名用户名注:在管理用户的时候必须选择对应的数据库注:在管理用户的时候必须选择对应的数据库(useuse 要建立用户的数据库名)要建立用户的数据库名)大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计9.3.2 9.3.2 删除用户帐号删除用户帐号删除数据库用户帐号,可以有两种方法:删除数据库用户帐号,可以有两种方法:使用企业管理器使用企业管理器 1 1、选择要建立用户的、选择要建立用户的SQL SERVERSQL SERVER服务器服务器 2 2、展开数据库,选择用户、展开数据库,选择用户使用系统存储过程使用系统存储过程 sp_DropUser sp_DropUser 用户名用户名注:在管理用户的时候必须选择对应的数据库注:在管理用户的时候必须选择对应的数据库(useuse 要建立用户的数据库名)要建立用户的数据库名)大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计9.4 角色角色 角色在权限管理方面是一个强有力的工具,如果用户具有角色在权限管理方面是一个强有力的工具,如果用户具有相同的权限,那么我们可以:相同的权限,那么我们可以:1 1、先创建一个角色、先创建一个角色2 2、对这个角色赋予权限、对这个角色赋予权限3 3、将这些用户添加到该角色中(使它们成为角色中的成员)、将这些用户添加到该角色中(使它们成为角色中的成员)角色分为系统内建角色和自建角色,同时系统内建角色分角色分为系统内建角色和自建角色,同时系统内建角色分为服务器角色和数据库角色(为服务器角色和数据库角色(自建角色都是数据库角色自建角色都是数据库角色)。)。1 1、服务器角色和登录名相对应、服务器角色和登录名相对应2 2、数据库角色是和用户对应的、数据库角色是和用户对应的3 3、数据库角色和用户都是数据库对象,定义和删除的时候、数据库角色和用户都是数据库对象,定义和删除的时候必须选择所属的数据库必须选择所属的数据库大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计一、固定服务器一、固定服务器角色角色大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计二、向固定服务器二、向固定服务器角色添加登录角色添加登录向固定服务器角色添加登录成员向固定服务器角色添加登录成员使用企业管理器使用企业管理器 1 1、选择要建立用户的、选择要建立用户的SQL SERVERSQL SERVER服务器服务器 2 2、展开安全性,选择服务器角色,添加登录、展开安全性,选择服务器角色,添加登录大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计三、固定数据库三、固定数据库角色角色大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计四、向固定数据库四、向固定数据库角色添加用户角色添加用户向固定数据库角色添加用户向固定数据库角色添加用户使用企业管理器使用企业管理器 1 1、选择要建立用户的、选择要建立用户的SQL SERVERSQL SERVER服务器服务器 2 2、展开数据库,选择角色所在的数据库、展开数据库,选择角色所在的数据库 3 3、单击角色,添加用户、单击角色,添加用户使用系统存储过程使用系统存储过程 1 1、定义、删除角色:、定义、删除角色:sp_AddRole sp_AddRole、sp_DropRolesp_DropRole 2 2、修改角色成员:、修改角色成员:sp_droprolemembersp_droprolemember 角色名角色名 sp_AddRoleMembersp_AddRoleMember 角色名角色名,用户名用户名注:在管理数据库角色的时候必须选择对应的数据库注:在管理数据库角色的时候必须选择对应的数据库大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计 当用户连接到当用户连接到 SQL Server SQL Server后,他们可以执行的活动由授后,他们可以执行的活动由授予以下帐户的权限确定:予以下帐户的权限确定:1 1、用户的安全帐户。、用户的安全帐户。2 2、用户的安全帐户所属的、用户的安全帐户所属的 Windows NT Windows NT或或 2000 2000 组或角色组或角色层次结构。层次结构。用户若要进行任何涉及更改数据库定义或访问数据的活用户若要进行任何涉及更改数据库定义或访问数据的活动,则必须有相应的权限。动,则必须有相应的权限。管理权限包括授予或废除执行以下活动的用户权限:管理权限包括授予或废除执行以下活动的用户权限:1 1、处理数据和执行过程(对象权限)。、处理数据和执行过程(对象权限)。2 2、创建数据库或数据库中的项目(语句权限)。、创建数据库或数据库中的项目(语句权限)。3 3、利用授予预定义角色的权限(暗示性权限)。、利用授予预定义角色的权限(暗示性权限)。9.5 权限管理权限管理大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计处处理数据或理数据或执执行行过过程程时时需要称需要称为对为对象象权权限的限的权权限限类别类别:1 1、SELECTSELECT、INSERTINSERT、UPDATE UPDATE 和和 DELETE DELETE 语语句句权权限限,它它们们可以应用到整个表或视图中。可以应用到整个表或视图中。2 2、SELECT SELECT 和和 UPDATE UPDATE 语语句句权权限限,它它们们可可以以有有选选择择性性地地应应用到表或视图中的单个列上。用到表或视图中的单个列上。3 3、SELECT SELECT 权限,它们可以应用到用户定义函数。权限,它们可以应用到用户定义函数。4 4、INSERT INSERT 和和 DELETE DELETE 语语句句权权限限,它它们们会会影影响响整整行行,因因此此只可以应用到表或视图中,而不能应用到单个列上。只可以应用到表或视图中,而不能应用到单个列上。5 5、EXECUTE EXECUTE 语句权限,它们可以影响存储过程和函数。语句权限,它们可以影响存储过程和函数。注:对象权限的设置:注:对象权限的设置:SQL SQL SERVERSERVER服服务务器器 数数据据库库 某某一一特特定定数数据据库库对对象象 所所有有任任务务 管理权限管理权限一、对象权限一、对象权限大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计对象权限的设置对象权限的设置使使用用企企业业管管理理器器:SQL SQL SERVERSERVER服服务务器器 数数据据库库 某某一一特特定数据库对象定数据库对象 所有任务所有任务 管理权限管理权限使用使用T-SQLT-SQL语句:语句:GRANT GRANT 对象权限对象权限 ON ON 数据库对象数据库对象 TO TO 用户或角色用户或角色一、对象权限一、对象权限大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计 创创建建数数据据库库或或数数据据库库中中的的项项(如如表表或或存存储储过过程程)所所涉涉及及的的活活动动要要求求另另一一类类称称为为语语句句权权限限的的权权限限。例例如如,如如果果用用户户必必须须能能够够在在数数据据库库中中创创建建表表,则则应应该该向向该该用用户户授授予予 CREATE CREATE TABLE TABLE 语语 句句 权权 限限。语语 句句 权权 限限(如如 CREATE CREATE DATABASEDATABASE)适适用用于于语语句句自自身身,而而不不适适用用于于数数据据库库中中定定义义的的特定特定对对象。象。语语句句权权限有:限有:1 1、BACKUP DATABASEBACKUP DATABASE、BACKUP LOGBACKUP LOG2 2、CREATE DATABASECREATE DATABASE3 3、CREATE DEFAULTCREATE DEFAULT、CREATE RULE CREATE RULE、CREATE FUNCTIONCREATE FUNCTION4 4、CREATE TABLECREATE TABLE、CREATE VIEWCREATE VIEW、CREATE PROCEDURECREATE PROCEDURE二、语句权限二、语句权限大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计语句权限的设置语句权限的设置使使用用企企业业管管理理器器:SQL SQL SERVERSERVER服服务务器器 数数据据库库 某某一一特特定数据库定数据库 属性属性”权限权限“选项卡选项卡使用使用T-SQLT-SQL语句:语句:GRANT GRANT 语句权限语句权限 TO TO 用户用户或或角色角色或或WINOWS NTWINOWS NT用户用户或或WINOWS NTWINOWS NT工作组工作组二、语句权限二、语句权限大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计 暗暗示示性性权权限限控控制制那那些些只只能能由由预预定定义义系系统统角角色色的的成成员员或或数数据据库库对对象象所所有有者者执执行行的的活活动动。例例如如,sysadmin sysadmin 固固定定服服务务器器角角色色成成员员自自动动继继承承在在 SQL SQL Server Server 安安装装中中进进行行操操作或作或查查看的全部看的全部权权限。限。数数据据库库对对象象所所有有者者还还有有暗暗示示性性权权限限,可可以以对对所所拥拥有有的的对对象象执执行行一一切切活活动动。例例如如,拥拥有有表表的的用用户户可可以以查查看看、添添加加或或删删除除数数据据,更更改改表表定定义义,或或控控制制允允许许其其他他用用户户对对表表进进行操作的行操作的权权限。限。三、暗示性权限三、暗示性权限大型数据库大型数据库SQL Server 2000SQL Server 2000程序设计程序设计1 1、查看登录信息:查看登录信息:sp_helploginssp_helplogins2 2、查看数据库用户信息:查看数据库用户信息:sp_helpUsersp_helpUser3 3、查看数据库角色信息:查看数据库角色信息:sp_helpRolesp_helpRole4 4、查看角色成员用户信息:查看角色成员用户信息:sp_helpRoleMember sp_helpRoleMember 角色名角色名附录:各种查看语句附录:各种查看语句1、有时候读书是一种巧妙地避开思考的方法。4月-234月-23Tuesday,April 25,20232、阅读一切好书如同和过去最杰出的人谈话。11:18:0311:18:0311:184/25/2023 11:18:03 AM3、越是没有本领的就越加自命不凡。4月-2311:18:0311:18Apr-2325-Apr-234、越是无能的人,越喜欢挑剔别人的错儿。11:18:0311:18:0311:18Tuesday,April 25,20235、知人者智,自知者明。胜人者有力,自胜者强。4月-234月-2311:18:0311:18:03April 25,20236、意志坚强的人能把世界放在手中像泥块一样任意揉捏。25四月202311:18:03上午11:18:034月-237、最具挑战性的挑战莫过于提升自我。四月2311:18上午4月-2311:18April 25,20238、业余生活要有意义,不要越轨。2023/4/2511:18:0311:18:0325 April 20239、一个人即使已登上顶峰,也仍要自强不息。11:18:03上午11:18上午11:18:034月-2310、你要做多大的事情,就该承受多大的压力。4/25/2023 11:18:03 AM11:18:0325-4月-2311、自己要先看得起自己,别人才会看得起你。4/25/2023 11:18 AM4/25/2023 11:18 AM4月-234月-2312、这一秒不放弃,下一秒就会有希望。25-Apr-2325 April 20234月-2313、无论才能知识多么卓著,如果缺乏热情,则无异纸上画饼充饥,无补于事。Tuesday,April 25,202325-Apr-234月-2314、我只是自己不放过自己而已,现在我不会再逼自己眷恋了。4月-2311:18:0325 April 202311:18谢谢大家谢谢大家