资源描述
,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第10章 平安管理,10.1 SQL 2021平安管理的结构,10.2 效劳器平安管理,10.3 数据库平安管理,10.4 架构平安管理,10.5 权限管理的TSQL语句,10.1 SQL 2021平安管理的结构,用户必须通过系统对用户连接账号和密码的身份验证即登录名和密码验证,才可以连接SQL Server 2021效劳器。如果要使用效劳器中的资源,如:数据库等,还必须具备相应的操作权限。因此,在SQL Server中对平安性的管理主要包括两个阶段:身份验证和权限验证。,在SQL Server 2021中为了便于用户权限管理,提供了两类角色:效劳器角色和数据库角色。,效劳器角色预定义了几种对效劳器执行操作权限的分组,如创立数据库、设置效劳器选项等,通过将连接效劳器的登录名归入对应的效劳器角色,可以使该登录名具有效劳器角色所具有的权限。,数据库角色预定义了几类对数据库执行操作权限的分组。,而数据库用户与效劳器登录名之间那么是通过映射来建立对应的关系,即当用户使用登录名和密码连接效劳器后,如果数据库中有对应的用户与登录名之间存在映射关系,那么该用户可以访问数据库。,SQL Server平安管理体系结构,10.2 效劳器平安管理,在SQL Server中,对效劳器的平安管理是SQL Server系统平安性管理的第一层次。SQL Server通过排除非法用户对SQL Server效劳器的连接,来防止外来的非法入侵。,10.2.1 SQL Server身份验证模式,SQL Server用于连接效劳器的身份验证主要有两种模式:Windows身份验证和SQL Server身份验证。,Windows身份验证模式。此模式允许用户使用Windows操作系统的域用户管理和本地用户管理模块来对用户身份进行验证。,SQL Server身份验证模式。SQL Server身份验证模式与Windows验证模式不同,SQL Server负责把用户连接效劳器的登录名、密码与syslogins表的登录项进行比较,如果能够在syslogins表中找到匹配的数据行,用户就可以通过验证,连接效劳器。,10.2.2 SQL Server,身份验证模式设置,SQL Server身份验证是效劳器端执行的任务,因此SQL Server身份验证模式需要在效劳器端进行设置。在SQL Server 2021中,系统将上述两种身份验证模式组合成为两项模式供用户选择:Windows身份验证模式、SQL Server和Windows身份验证模式。其中第二项验证模式是混合型的验证模式,即效劳器可以使用两种模式对用户连接进行身份验证。,10.2.3 SQL Server,登录名管理,登录名是客户端连接效劳器时,向效劳器提交的用于身份验证的凭据,也是SQL Server效劳器平安性管理中的根本构件。,根据身份验证模式的不同,在SQL Server中登录名有两种:Windows登录名和SQL Server标准登录名。,Windows登录名是指由Windows操作系统的用户账号对应到SQL Server的登录名,此类登录名主要用于Windows身份验证模式;,SQL Server标准登录名是由SQL Server独立维护并用于SQL Server身份验证模式的登录名。,10.2.3 SQL Server,登录名管理,1、创立SQL Server标准登录名,1、在SQL Server Management Studio的“对象资源管理器窗口中,展开效劳器、平安性节点。,2、右击“登录名,在右键菜单中选择“新建登录名。,3、在“登录名新建对话框中,输入登录名的名称为“Sale,选择身份验证模式为“SQL Server身份验证;设置密码为“password1,选中“强制实施密码策略、“强制密码过期和“用户在下次登录时必须更改密码等项。指定默认数据库为“master,最后单击“确定,完成登录名创立。,1、创立SQL Server标准登录名,创立登录名的操作同样可以使用TSQL语句来完成,所用的TSQL语句为“CREATE LOGIN,其语法如下:,CREATE LOGIN loginName WITH|FROM :=PASSWORD=password|hashed_password HASHED MUST_CHANGE ,.:=SID=sid|DEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language|CHECK_EXPIRATION=ON|OFF|CHECK_POLICY=ON|OFF|CREDENTIAL=credential_name :=WINDOWS WITH ,.|CERTIFICATE certname|ASYMMETRIC KEY asym_key_name:=DEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language,主要参数的含义如下:,loginName,新建的登录名的名称。,PASSWORD,新登录名的密码,用于SQL Server标准登录名中,不能用于Windows登录名的创立。,MUST_CHANGE,此项对应“用户在下次登录时必须更改密码的选项,适用于SQL Server标准登录名。,DEFAULT_DATABASE,指定登录名连接时默认翻开的数据库。,DEFAULT_LANGUAGE,登录名默认使用的语言。,CHECK_EXPIRATION,对应于“强制密码过期选项,用于指定SQL Server标准登录名是否使用强制密码过期策略,可以选择ON|OFF两项,ON表示实施强制密码过期策略,OFF表示不实施。,例如以下代码创立了一个新登录名“Sales1,密码为“password1,并且“强制实施密码策略和“强制密码过期。指定默认数据库为“NetSales数据库。,CREATE LOGIN Sale1,WITH PASSWORD=password1,CHECK_EXPIRATION=ON,CHECK_POLICY=ON,DEFAULT_DATABASE=NetSales,10.2.3 SQL Server,登录名管理,2、创立Windows登录名,Windows登录名可以与单个Windows账号对应,也可以与Windows用户组和内置平安主体对应。,DEMO,CREATE LOGIN DATASERVERCustomer_service_team FROM WINDOWS WITH DEFAULT_DATABASE=master,10.2.3 SQL Server,登录名管理,3、系统登录名,在SQL Server安装完毕后,会默认提供多个系统登录名。这些登录名可用于用户连接SQL Server系统,主要包括:sa、域或本机名称Administrator、BUILTINAdministrator、NT AUTHORITYNETWORK SERVICE、NT AUTHORITYSYSTEM等等。,sa。sa是SQL Server内置的系统管理员登录名,该登录名拥有对SQL Server效劳器执行各项操作的权限。,域或本机名称Administrator,BUILTINAdministrator。Windows域或本机管理员的用户账号及用户组会在SQL Server安装过程中被参加到SQL Server登录名中,且都是系统管理员角色的成员,拥有系统管理员的权限。,NT AUTHORITYNETWORK SERVICE、NT AUTHORITYSYSTEM。这些登录名是在SQL Server安装过程中设置用于启动SQL Server代理效劳、分析效劳和报表效劳的登录名。,10.2.3 SQL Server,登录名管理,4、登录名的修改和删除,在SQL Server Management Studio中修改登录名的操作过程如下:,1、在SQL Server Management Studio的“对象资源管理器窗口中,展开效劳器、平安性、登录名节点。,2、在“登录名节点中,双击要修改的登录名,可以在“登录名属性对话框中,对选定的登录名进行修改。,修改登录名的TSQL语句为“ALTER LOGIN,例如以下代码修改登录名“Sale的密码为“password2。,ALTER LOGIN Sale WITH PASSWORD=password2,10.2.3 SQL Server,登录名管理,4、登录名的修改和删除,在SQL Server Management Studio中删除登录名的过程如下:,1、在SQL Server Management Studio的“对象资源管理器窗口中,展开效劳器、平安性、登录名节点。,2、在“登录名节点中,右击要删除的登录名,在右键菜单中选择“删除,然后在“删除对象对话框中“确定删除,即可完成登录名的删除。,删除登录名的TSQL语句为“DROP LOGIN,语法规那么如下:,DROP LOGIN login_name,例如以下代码可以删除了登录名“Sale_N。,DROP LOGIN Sale_N,但是,必须注意的是有些登录名是不能删除的,包括:,现为某个数据库的拥有者。,在msdb数据库中某项作业job的所有者。,目前正在连接的用户。,sa登录名也不能删除。,10.2.3 SQL Server,登录名管理,5、登录名的禁用和启用,对于暂时不用,但不想删除的登录名,可以设置登录名的状态,将登录名禁用。在需要使用时,也可以通过启用,使登录名恢复使用。上述操作都可以在“登录名属性对话框中完成。操作过程如下:,1、在SQL Server Management Studio的“对象资源管理器窗口中,展开效劳器、平安性节点。,2、选择“平安性节点的某个登录名,双击该登录名,进入“登录名属性对话框。,3、选择左侧的“状态选项,可以设置“是否允许连接到数据库引擎和“登录状态。,10.2.4 效劳器角色,系统默认提供了9类固定效劳器角色,这些固定效劳器角色的含义如下:,bulkadmin。属于该效劳器角色的成员可以执行大数据量的操作,如 BULK INSERT。,dbcreator。属于该效劳器角色的成员可以创立、更改、删除和复原数据库。,diskadmin。属于该效劳器角色的成员可以管理磁盘文件。,processadmin。属于该效劳器角色的成员可以结束在数据库引擎实例中执行的进程。,securityadmin。属于该效劳器角色的成员可以管理登录名及其属性,可以执行GRANT、DENY和REVOKE来管理登录名在效劳器和数据库级别中的权限,以及重新设置登录名的密码。,serveradmin。属于该效劳器角色的成员是效劳器的管理员,可以配置效劳器的选项或关闭效劳器。,setupadmin。属于该效劳器角色的成员可以添加和删除链接效劳器,并可以执行某些系统存储过程。,sysadmin。属于该效劳器角色的成员是系统管理员,可以在数据库引擎中执行任何操作。如对效劳器中的对象执行创立、修改或删除,更改各项设置等。,public。public效劳器角色是一个比较特殊的角色,任何登录名都属于public角色,但这个角色的权限较小,一般只具有连接效劳器的权限。,10.2.5,登录名授权,如果固定效劳器角色无法满足对登录名进行授权的要求,可以通过对登录名进行权限设置,把效劳器级平安对象的访问权限授予登录名。,在SQL server2021中,平安对象是指可以由系统进行权限控制,并可供用户访问的系统资源、进程以及对象等。效劳器级的平安对象包括:端点、登录名和数据库。将效劳器级平安对象的访问权限授予登录名,那么登录名连接效劳器后,就可
展开阅读全文