第15章 SQL Server 2008数据库的安全性和完整性管理
SQL Server 2008 安全性与合规性指南说明书
Certifications, Compliance, and VulnerabilitiesSQL Server 2008 introduced additional enterprise-class security features and made considerable investments in capabilities that help provide a high level of security and compliance for organizations—built directly into the product. These investments contribute to Microsoft’s Trustworthy Computing initiative that defines the steps necessary to help support secure computing and helps you deploy and maintain a secure environment. Microsoft continuously works to ensure security vulnerabilities are minimal and pursues certifications and tools for SQL Server to help organizations meet security-related policies and regulations.Common Criteria CertifiedCommon Criteria certifications are officially recognized by an international agreement (the CCRA) by 25 countries that signed the agreement, including the United States and Japan. This certification is a third party verification of the extensive security of SQL Serv er 2008 and demonstrates Microsoft’s continued commitment to our customers’ security needs. For more on Common Criteria: /∙SQL Server 2008 Enterprise edition: EAL1+ for 32 and 64bitSQL Server 2008 completed an IT security evaluation at the Basic Assurance Level (EAL1+). This certification isparticularly significant in Japan where it makes SQL Server 2008 eligible for procurement tax discounts as a CCcertified DBMS.∙SQL Server 2008 Enterprise edition: EAL4+ (in progress)SQL Server 2008 is currently in process to complete the EAL4+ security evaluation. The certification officiallystarted in January 2009 and typically takes 18-24 months to complete. The US government requires databasesoftware purchases be CC certified at EAL4+ and recognizes the certification once the process begins.∙Previous certificationsSQL Server 2005 SP1 at EAL1 (32 bit Enterprise Edition)SQL Server 2005 SP2 at EAL4+ and compliant w/NSA DBMS Protection Profile V1.1 (32 bit Enterprise Edition)FIPS 140-2 CompliantFederal Information Processing Standards (FIPS) are recommended or mandated in federal government-operated IT systems in either the United States or Canada. SQL Server 2008 can be configured to run as a FIPS-compliant application when running on an operating system that uses a FIPS-140-2-validated Cryptographic Service Provider or other module that has been validated.Read more on FIPS-140-2: /kb/955720Evaluated for Payment Card Industry (PCI) Data Security Standard (DSS) ComplianceCertified audit firm, Parente Randolph, evaluated SQL Server 2008 for PCI compliance and provides guidance to customers on passing PCI audits. The key to complying with the standards is to ensure that Information Technology professionals maintain a suitable database platform to allow requirements to be met.Read the evaluation: Deploy SQL Server 2008 Based on PCI DSS Standards/lib/pdf/Deploying_SQL_Server_2008_Based_on_PCI_DSS.pdfEvaluated for HIPAA ComplianceHealth Information Portability and Accountability Act (HIPAA) governs health information privacy, security, organizational identifiers, and overall administrative practices. Organizations faced with HIPAA regulations can take advantage of SQL Server 2008 capabilities to help meet database-related compliance requirements.Read the evaluation: Supporting HIPAA Compliance with Microsoft SQL Server 2008/mssql2008hipaaFor more information:SQL Server Compliance Guide: /downloads/details.aspx?FamilyId=6E1021DD-65B9-41C2-8385-438028F5ACC2&displaylang=enSQL Server 2008 Key Security Features1.Transparent Data Encryption (TDE)Implementing encryption in a database traditionally involves complicated applicationchanges such as modifying table schemas, removing functionality, and significant performance degradations. TDE solves these problems by simply encrypting everything without requiring changes to the application.2.All Actions AuditedWith SQL Server 2008 you can create audits that will allow you to analyze the data usage patterns for the data in your database. With SQL Server 2008 you can audit not only changes to data but also which users are reading data. From a security standpoint this will allow you to see when a user who would normally have access to a certain set of data is accessing more than they should and take corrective action if necessary.3.Extensible Key ManagementExtensible key management works with transparent data encryption to separate the encryption key from thedatabase. With the growing demand for regulatory compliance and concern for data privacy, organizations can take advantage of 3rd party Hardware Security Modules (HSM) which store encryption keys on hardware or software modules away from the data for added security.4.Policy-Based ManagementPolicy-Based Management allows DBAs to define a set of policies that can control many different aspects of SQL Server. Policies can be applied to a single server or to groups of servers. Use Policy-Based Management to help manage and detect non-compliance with security polices for data across the enterprise.5.Clustering AuthenticationSQL Server 2008 clustering supports Kerberos authentication on a virtual server. Administrators are able to specify Microsoft Windows–style policies on standard logins so that a consistent policy is applied across all accounts in the domain.6.Surface Area ConfigurationSQL Server 2008 includes the SQL Server Surface Area Configuration Tool, which provides an intuitive graphical user interface (GUI) for configuring the server. Running this tool should be your first task after installing SQL Server. The tool opens with a brief explanation of its purpose, and a link to documentation. It includes a link to configure services and protocols and another to configure other features.7.Off By DefaultTo reduce the SQL Server 2008 surface area to unauthorized access after initial installation, a number of services have been turned off or set for manual start-up so no inadvertent access is granted. Services that are off by default include the Microsoft .NET Framework, Service Broker network connectivity, and HTTP connectivity for Analysis Services.Services that require manual intervention to start include SQL Server Agent, Full Text Search, and IntegrationServices, which can all be reset for automatic start-up.8.Surface Area Reduction and Advanced SecuritySQL Server 2008 provides rich security features to protect data and network resources. It is much easier to achieve a secure installation of the software, because all but the most essential features are either not installed by default or disabled if they are installed. SQL Server provides plenty of tools to configure the server. Its authentication features make it harder to get access to a server running SQL Server by integrating more closely with Windows authentication and protecting against weak or old passwords. Granting and controlling what a user can do when authenticated is far more flexible with granular permissions.SQL Server Vulnerabilities ComparisonMicrosoft, IBM, MySQL, and Oracle regularly report security vulnerabilities (or CVEs) to NIST National Vulnerability Database (/view/vuln/search ). Based on this reported information, the following is a historical representation of database security vulnerabilities reported by Microsoft, IBM, MySQL, and Oracle over the past 8 years.Database features alone should not be assessed to determine “security.” Organizations need to understand howvulnerable their database solution is from attacks —and not just external attacks, according to Forrester (March 2009), 70% of threats come from inside the enterprise. This means it’s no longer safe to assume that a database behind a firewall is protected and vulnerabilities or patching are not of concern.Notes : Update as of 4/20/2010. Vulnerabilities are included for SQL Server 2000 , SQL Server 2005 , SQL Server 2008. Oracle (8i, 9i, 9iR2, 10g,10gR2,11g), IBM DB2 (8.0, 8.1, 8.2, 9.0, 9.5), Query for Oracle was run with vendor name: ‘Oracle’ , and product name: ‘any’ (all database product name variations were queried) . Query for IBM DB2 was run with vendor name: ‘IBM’ , and product name: ‘db2.’ Query for MySQL was run with vendor name: ‘MySQL’, and product name: ‘Any.’ Query for Microsoft was run with vendor name: ‘Microsoft ‘ ; product name: ‘Microsoft SQL Server’; version name: ’Any’This chart counts NIST CVE – Software Flaws (Each CVE might include more than one Oracle vulnerabilities)20406080100120140160200220032004200520062007200820092010SQL Server Oracle DB2MySQL。
管理安全性SQL_Serve讲义r_2008
图9-3 登录名对话框
3)选择“选择页” 中的“服务器角 色”项,出现服 务器角色设定页 面,如图9-4所 示,用户可以为 此用户添加服务 器角色。
图9-4登录名对话框的服务器角色页”
项,进入映射设置页面,
可以为这个新建的登录
添加映射到此登录名的
用户,并添加数据库角
图9-1数据库对象、架构和用户之间的关系
9.1.2 安全性机制
SQL Server的安全性管理可分为3个等级:
❖1. 操作系统级的安全性 ❖2. SQL Server 级的安全性
❖3. 数据库级的安全性。
9.2 管理登录和用户
❖ 用户连接到SQL Server 账户都称SQL Server 的登录。用户可以防止数据库被未授权的用户故 意或无意地修改。SQL Server为每一用户分配了 唯一的用户名和密码。同时,可以为不同账号授 予不同的安全级别。数据库用户是数据库级的主 体,是登录名在数据库中的映射,是在数据库中 执行操作和活动的执行者。
身份验证模式是Microsoft SQL Server 2008 R2系统验证客户端和服 务器之间连接的方式。Microsoft SQL Server 2008 R2系统提供了两种 身份验证模式,Windows身份验证模式和混合模式
安全身份验证
两种确认用户的验证模式。
Windows验证模式:利用了Windows本身具备的管理登录、
第二个安全性问题是:当用户登录到系统中,可以执行哪些操作, 使用哪些对象和资源呢?这也是一个非常基本的安全问题,在 Microsoft SQL Server 2008 R2系统中,这个问题是通过安全对象 和权限设置来实现的。
第三个安全性问题是:数据库中的对 象由谁所有?如果由用户所有,那么 当用户被删除时,其所拥有的对象怎 么办呢?数据库对象可以成为没有所 有者的"孤儿"吗?在Microsoft SQL Server 2008 R2系统中,这个问题是 通过用户和架构分离来解决的。在该 系统中,用户并不拥有数据库对象, 架构可以拥有数据库对象。用户通过 架构来使用数据库对象。这种机制使 得删除用户时不必修改数据库对象的 所有者,提高了数据库对象的可管理 性。数据库对象、架构和用户之间的 这种关系如图9-1所示。
sqlserver2008数据库的完整性约束
sqlserver2008数据库的完整性约束⼀、数据库完整性概述1.数据库的完整性:①数据库的完整性是指数据的正确性和相容性②数据库完整性是防⽌不合语义或不正确的数据进⼊数据库③完整性体现了是否真实地反映现实世界例:学⽣的年龄必须是整数,取值范围为14-29;学⽣的性别只能是男或⼥;学⽣的学号⼀定是唯⼀的;学⽣所在的系必须是学校开设的系;2.DBMS维护数据库完整性的机制:①提供定义完整性约束条件的机制DBMS应提供定义数据库完整性约束条件,并把它们存⼊数据库中。
②提供完整性检查的⽅法检查数据是否满⾜完整性约束条件的机制称为完整性检查。
⼀般在INSERT、UPDATE、DELETE语句执⾏后开始检查。
3.违约处理DBMS若发现⽤户的操作违背了完整性约束条件,就采取⼀定的动作以保证数据的完整性,如拒绝执⾏该操作,或级联执⾏其他操作。
⼆、缺省(默认值)和规则缺省和规则来源于由Sybase开发的S默认值QL Server,在⽼版本的SQL Server或者升级版本中都有缺省和规则的使⽤。
缺省是为列提供数据的⼀种⽅式,如果⽤户进⾏INSERT操作时不为列输⼊数据,则使⽤缺省值。
规则是当⽤户进⾏INSERT或uPDATE操作时,对输⼊列中的数据设定的取值范围,是实现域完整性的⽅式之⼀。
缺省与规则有以下特点:(1)缺省与规则是数据库对象,它们是独⽴于表和列⽽建⽴的。
(2)缺省与规则建⽴后与列或数据类型产⽣关联,列和数据类型就具有了缺省与规则的属性。
(3)缺省与规则定义后,可以重复使⽤,可以绑定到多个列或数据类型上。
(4)缺省与规则不随表同时调⼊内存,当⽤到时才被调⼊内存,这可能会使程序执⾏出现延时。
缺省和规则对象通常只在它所创建的数据库中有效,不是ANSI标准,⼀般不提倡使⽤。
应尽可能使⽤约束,任何可以使⽤缺省与规则的地⽅都有可以使⽤约束。
1. 缺省在SQL Server中,有两种使⽤默认值的⽅法:①在创建表时,指定默认值。
SQLServer2008安全性管理
17.7 小结
本章主要讲解了SQL Server 2008的安全性。安全 性包括了用户权限的管理和数据安全两大部分,读者在 了解了用户权限的管理方法后,不要忽视数据安全的管 理。建议读者在实际工作中要多参考安全方面的相关资 料。
17.1.2 SQL Server 2008安全管理等级
合理有效的数据库安全机制既可以保证被授权用户能 够方便地访问数据库中的数据,又能够防止非法用户的 入侵。SQL Server 2008提供了一套设计完善、操作简单 的安全管理机制。SQL Server 2008的安全机制可以分为 以下4个等级。 客户端操作系统登录的安全性。 SQL Server登录的安全性。 数据库访问的安全性。 数据库对象使用的安全性。
创建Windows登录与创建SQL Server登录有一处不 同,就是先要在Windows操作系统中进行用户添加操作, 然后才能在SQL Server中创建登录。下面就以创建用户 Teacher为例,讲解在SQL Server中创建Windows登录的 操作步骤。
17.3.4 删除Windows登录
17.2.2 混合模式
混合身份验证模式既允许使用Windows身份验证方式,又 允许使用SQL Server身份验证方式。它使用户既可以登录SQL Server,也可用Windows的集成登录。
集成登录只能在用命名管道连接客户机服务器时使用。当 使用混合模式时,无论是使用Windows身份验证方式的用户, 还是使用SQL Server身份验证方式的用户,都可以连接到SQL Server系统上。也就是说,身份验证模式是对服务器来说的, 而身份验证方式是对客户端计算机来说的。
SQL Server 2008 安全性
SQL Server 2008 安全性SQL Server身份验证模式Microsoft SQL Server 2008提供了两种对用户进行身份验证的模式,默认模式是Windows身份验证模式,它使用操作系统的身份验证机制对需要访问服务器平局进行身份验证,从而提供了很高的安全级别。
另一种方式是SQL Server和Windows身份验证模式,允许基于Windows的和基于SQL的身份验证。
因此,它又是被称为混合模式。
Windows身份验证模式允许使用存储在本地计算机的安全帐户管理器SAM数据库中的现有帐户,或者,如果该服务器是活动目录域的一个成员,则可以使用Micorsoft Windows活动目录数据库中的帐户。
使用Windows身份验证模式的好处包括允许SQL或数据库管理员使用已经存在的帐户,从而减少管理开销,以及允许他们使用强大的身份验证协议,例如Kerberos或Windows NT LAN Manager(NTLM)。
在Windows身份验证模式中,SQL并不存储或需要访问用于身份验证的密码信息。
Windows身份验证提供程序将负责验证用户的真实性。
混合模式允许创建SQL Server独有的登录名,这些登录名没有相应的Windows或活动目录帐户。
这可以帮助那些不属于您的企业的用户通过身份验证,并获得访问数据库中安全对象的权限。
当使用SQL登录名时,SQL Server将用户名和密码信息存储在master数据库中,它负责对这些平局进行身份验证。
主体主题Principal这个术语用于描述将与SQL Server交互的个人、组和进程。
主题可用的资源取决于他们的位置。
Microsoft SQL Server支持集中不同类型的主题,他们定义在三个不同的级别上:Windows级别、SQL Server级别和数据库级别。
登录名和SQL 以前的版本不同,SQL Server 2008并不自动为[BUILTIN\Administrators]组创建登录名,以免使服务器上具有本地管理权限的任何人都可以登录进该SQL Server。
实验五 SQL SERVER 完整性与安全性 实验报告
实验五SQL SERVER 完整性与安全性一、实验目的掌握SQL SERVER数据访问控制策略和技术,SQL SERVER数据库管理系统使用安全帐户认证控制用户对服务器的连接,使用数据库用户和角色等限制用户对数据库的访问。
二、实验内容1.在服务器级别上创建三个以SQL Server身份验证的登录名,登录名称自定。
2.分别为三个登录名在“gongcheng”数据库映射三个数据库用户,数据库用户名为Tom,Mary和John,使这三个登录名可以访问“gongcheng”数据库。
3.授予用户John创建表和视图的权限。
grant create table,create viewto John在“gongcheng”下,安全性—John—属性,选择安全对象,搜索特定对象,选择“gongcheng”表,在权限中选择“创建表”和“创建视图”,如图:即可赋予John“创建表”和“创建视图”的权限。
4.完成以下授权:(1)把对表S的INSERT权力授予用户Tom,并允许他再将此权限授予其他用户。
grant inserton Sto tomwith grant option(2)用户Mary对S,P,J三个表有SELECT和INSERT权力grant select,inserton Sto Marygrant select,inserton Pto Marygrant select,inserton Jto Mary(3)用户Tom对SPJ表有DELETE权力,对QTY字段具有UPDA TE权力。
grant delete,update(qty)on spjto Tom(4)把对用户Tom授予的所有权力收回revoke inserton Sfrom Tom cascaderevoke delete,update(qty)on SPJfrom Tom(5)对用户Mary增加SPJ表的SELECT权力。
grant selecton spjto Mary5.两个同学为一组(自由搭配),在自己的数据库服务器上分别为对方创建一个登录名,并授予一定权力,然后用对方为自己创建的登录名和对方的数据库服务器建立连接,进行登录,对对方的数据库服务器进行操作。
数据库的完整性和安全性实验报告
信息工程学院实验报告课程名称:《数据库原理》实验项目名称:数据库的完整性和安全性一、实 验 目 的:(1)掌握数据库约束的概念;(2)熟悉SQL SERVER 的完整性约束技术。
(3)了解SQL SERVER 的违反完整性处理措施。
(4)了解登录账户的管理理念与具体方法。
(5)了解数据库用户的管理的要则。
(6)了解用户权限管理的内涵与方法。
二、实 验 设 备 与 器 件 Win7 +Sql server 2008 三、实 验 内 容 与 步 骤(一)测试完整性运行附录中的SQL 语句,理解SQL 语句中包含的完整性定义。
然后执行下面的SQL 语句,看是否能正常运行,若无法执行,请说明原因。
1.对dept 表进行数据增删改,并检查完整性规则 Dept 已存在的完整性规则如下: dno CHAR(2)PRIMARY KEYdnameV ARCHAR(20) NOT NULL,UNIQUE(1)增加数据INSERT INTO dept V ALUES('D1','计科系');----正常插入INSERT INTO dept V ALUES('D2','电信系');----正常插入INSERT INTO dept V ALUES(NULL,'机械系'); ----违反dno 主键(NOT NULL )规则INSERT INTO dept V ALUES('D2','机械系'); ----违反dno 主键(UNIQUE )INSERT INTO dept V ALUES('D3',NULL); ----违反dname 的NOT NULL 规则INSERT INTO dept V ALUES('D3','计科系'); ----违反dname 的UNIQUE 规则INSERT INTO dept V ALUES('D3','机械系');----正常插入(2)删除数据DELETE FROM dept WHERE dno='D3';----正常删除(3)修改数据UPDA TE dept SET dname='计算机科学系' WHERE dno='D1';----正常修改UPDA TE dept SET dname='电信系' WHERE dno='D1'; ----违反dname的UNIQUE规则UPDA TE dept SET dname=NULL WHERE dno='D1'; 违反dname的UNIQUE规则2.对student表进行数据增删改,并检查完整性规则Student已存在完整性规则如下:sno CHAR(2) PRIMARY KEYsname V ARCHAR(20) NOT NULL,ssex CHAR(2) NOT NULL, CHECK(ssex in('男','女'))sage INT NOT NULL,dno CHAR(2) NOT NULL, FOREIGN KEY REFERENCES dept(dno)ON DELETE CASCADE ON UPDATE CASCADE(1)增加数据INSERT INTO student V ALUES('S1','张刚','男',20,'D1');----正常插入INSERT INTO student V ALUES('S2','李梅','女',21,'D2');----正常插入INSERT INTO student V ALUES('S2','吴敏','男',20,'D1'); ----正常插入INSERT INTO student V ALUES(NULL,'吴敏','男',20,'D1'); ----违反sno 的主键(NOT NULL)规则INSERT INTO student V ALUES('S3','吴敏','男',NULL,'D1'); 违反sage 的主键(NOT NULL)规则INSERT INTO student V ALUES('S3','吴敏','M',20,'D1'); 违反ssex 的CHECK规则INSERT INTO student V ALUES('S3','吴敏','男',20,'D3'); ----正常插入INSERT INTO student V ALUES('S3','吴敏','男',20,'D1');----正常插入(2)删除数据DELETE FROM student WHERE sno='S3'; ----正常删除(3)修改数据UPDA TE student SET sname='赵强',dno='D2' WHERE sno='S1'-----正常修改UPDA TE student SET ssex='F' WHERE sno='S1'; -----违反ssex的CHECK 规则UPDA TE student SET sno='S2' WHERE sno='S1'; -----违反sno的主键(UNIQUE)规则UPDA TE student SET dno='D3' WHERE sno='S1'; 违反dno 的外键规则UPDA TE dept SET dno='D3' WHERE dno='D1';----检查dno的外键ON UPDATE规则,观察运行后效果DELETE FROM dept WHERE dno='D2';----检查dno的外键ON DELETE规则,观察运行后效果(二)使用规则实现数据完整性(1)在查询分析器中,利用命令(CREATE RULE),创建一个关于年龄(sage)约束的规则,将“sage”列的值约束在0~200之间;然后将所创建的规则绑定到“sage”列(提示:用命令Sp_bindrule)。
数据库的安全性、完整性、并发控制和恢复
数据库的安全性、完整性、并发控制和恢复为了保证数据库数据的安全可靠性和正确有效,DBMS必须提供统一的数据保护功能。
数据保护也为数据控制,主要包括数据库的安全性、完整性、并发控制和恢复。
数据库的安全性数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。
计算机系统都有这个问题,在数据库系统中大量数据集中存放,为许多用户共享,使安全问题更为突出。
在一般的计算机系统中,安全措施是一级一级设置的。
在DB存储这一级可采用密码技术,当物理存储设备失窃后,它起到保密作用.在数据库系统这一级中提供两种控制:用户标识和鉴定,数据存取控制。
在ORACLE多用户数据库系统中,安全机制作下列工作:防止非授权的数据库存取;防止非授权的对模式对象的存取;控制磁盘使用;控制系统资源使用;审计用户动作。
数据库安全可分为二类:系统安全性和数据安全性。
系统安全性是指在系统级控制数据库的存取和使用的机制,包含:有效的用户名/口令的组合;一个用户是否授权可连接数据库;用户对象可用的磁盘空间的数量;用户的资源限制;数据库审计是否是有效的;用户可执行哪些系统操作。
数据安全性是指在对象级控制数据库的存取和使用的机制,包含:哪些用户可存取一指定的模式对象及在对象上允许作哪些操作类型.在ORACLE服务器上提供了一种任意存取控制,是一种基于特权限制信息存取的方法。
用户要存取一对象必须有相应的特权授给该用户。
已授权的用户可任意地可将它授权给其它用户,由于这个原因,这种安全性类型叫做任意型。
ORACLE利用下列机制管理数据库安全性:数据库用户和模式;特权;角色;存储设置和空间份额;资源限制;审计。
数据库的存取控制ORACLE保护信息的方法采用任意存取控制来控制全部用户对命名对象的存取。
用户对对象的存取受特权控制。
一种特权是存取一命名对象的许可,为一种规定格式。
ORACLE使用多种不同的机制管理数据库安全性,其中有两种机制:模式和用户.模式为模式对象的集合,模式对象如表、视图、过程和包等.第一数据库有一组模式。
(完整版)SQL-Server-2008的安全设置技巧方法详解(转)
Sqlserver 2008数据库安全设置方法目录一、服务器身份验证 (1)1.验证登录模式 (1)二、SQL Server服务的运行身份 (1)1.用户身份验 (1)三、sa密码的安全性 (1)1.修改sa的用户名 (1)四、端口相关问题 (2)1.修改端口号 (2)2. 卸载SQL的不安全组件 (2)3. 权限设置 (2)五、数据库安全策略 (3)1.使用安全的密码策略 (3)2.使用安全的帐号策略 (3)3.加强数据库日志的记录 (3)4.管理扩展存储过程……………………………………………………5.使用协议加密 (4)6.不要让人随便探测到你的TCP/IP端口 (4)7.修改TCP/IP使用的端口 (5)8.拒绝来自1434端口的探测 (5)9.对网络连接进行IP限制 (5)数据库安全设置方法一、服务器身份验证MSSQL Server 2008的身份验证模式有两种:一种是Windows 身份验证模式, 另一种是SQL Server和Windows身份验证模式(即混合模式)。
对大多数数据库服务器来说,有SQL Server 身份验证就足够了,只可惜目前的服务器身份验证模式里没有这个选项,所以我们只能选择同时带有SQL Server和Windows身份验证的模式(混合模式)。
但这样就带来了两个问题:1、混合模式里包含了Windows身份验证这个我们所不需要的模式,即设置上的冗余性。
程序的安全性是与冗余性成反比的。
2、所谓Windows身份验证,实际上就是通过当前Windows管理员帐户(通常为Administrator)的登录凭据来登录MSSQL Server。
使用Windows身份验证,会增加Administrator密码被盗的风险。
为解决以上两个问题,我们需要限制混合模式里的Windows身份验证。
方法如下:打开Microsoft SQL Server Management Studio,点击安全性->登录名,将Administrator对应的登录名删除即可。
SQL Server数据库的安全性管理与加密技术
SQL Server数据库的安全性管理与加密技术在当今的信息时代,保护数据的安全性成为了企业和组织亟需解决的重要问题。
作为一种广泛应用于企业级数据库系统的关系型数据库管理系统,SQL Server数据库的安全性管理与加密技术对于保护敏感数据的安全性至关重要。
SQL Server数据库提供了多种安全性管理和加密技术,以确保数据的机密性、完整性和可用性。
下面将分别就用户访问和权限管理、数据传输加密和数据加密进行详细讲解。
首先,用户访问和权限管理是确保数据库安全的关键措施之一。
SQL Server提供了基于角色的访问控制机制,管理员可以通过定义角色、赋予角色相应的权限,然后将用户分配到角色中来管理用户的访问权限。
此外,SQL Server还支持基于主体的权限管理,主体可以是用户、Windows域用户、应用程序或自定义角色等。
通过强大的权限管理功能,可以精确控制用户对数据库的访问权限,减少未经授权的访问风险。
其次,数据传输加密是保护数据安全的重要手段之一。
SQL Server支持使用SSL(Secure Sockets Layer)协议对数据传输进行加密。
管理员可以通过配置SQL Server证书和SSL协议来确保数据在传输过程中的机密性。
使用SSL加密数据传输可以有效防止数据被窃取、篡改或劫持,保护数据的安全性。
最后,数据加密是最重要和最直接的保护数据安全的技术。
SQL Server提供了多种数据加密功能,包括透明数据加密(TDE)、动态数据掩码(DDM)和始终加密列(Always Encrypted)等。
透明数据加密(TDE)是一种将整个数据库进行加密的技术。
TDE通过在存储层面上对数据库进行加密,从而保证了数据在磁盘上的存储是加密的状态。
只有在查询数据时,才能将数据解密并返回给用户。
这种方法不需要对应用程序进行任何修改,提供了更高级别的安全性。
动态数据掩码(DDM)是一种在应用程序查询数据时对敏感数据进行动态加密和掩码的技术。
SQL_Server_2008数据库的安全性管理
SQL Server 2008数据库的 安全性管理
9.0安全性问题
黑客公开CSDN网站数据库 600余万用户资料泄密(2011)
9.0安全性问题
如家汉庭酒店2000万开房数据1.71G/BAK,792M/CSV
9.0安全性问题
携程网全面瘫痪 疑似数据库物理删除(2015)
9.0安全性问题
9.2
管理服务器登录
【例9.2】创建带密码的登录名“test”。 CREATE LOGIN test WITH PASSWORD = ‘123' 2.删除登录账户DROP LOGIN 其语法格式为:DROP LOGIN login_name
【例9.3】删除登录账户“test”。
DROP LOGIN test
9.3
角色和用户管理
【例9.13】首先创建名为“Teacher”且具有密码的服务器
登录名,然后在数据库“TEACH”中创建对应的数据库用户
“WangWei”。
CREATE LOGIN Teacher WITH PASSWORD =‘123’; CREATE USER WangWei FOR LOGIN Teacher
9.2
管理服务器登录
3.更改登录账户ALTER LOGIN 其语法格式为: ALTER LOGIN login_name { <status_option> | WITH <set_option> [ ,... ] } 【例9.5】将“test”登录密码更改为 456。 ALTER LOGIN test WITH PASSWORD = 456' 【例9.6】将登录名“test”更改为“et”。 ALTER LOGIN test WITH NAME = et
SQL Server的数据库完整性及实现方法
插入数据时,如果没有明确提供列值,则用默认值作 为该列的值。
指定某个列或列组可以接受的范围,或指定数据应满 足的条件。 指定主码,确保主码值不重复,并不允许主码为空值。 指出数据应具有唯一值,防止出现冗余。 定义外码、被参照表和主码。 约束类型和完整性功能
3.实现数完整性的具体方法
(2)声明数据完整性约束的定义 声明数据完整性约束可以在创建表和修改表语句中定 义。约束分列级约束和表级约束两种:列级约束定义时, 直接跟在列后,与列定义子句之间无“,”分隔;元组级 约束和表级约束要作为语句中的单独子句,与列定义子句 或其他子句之间用“,”分隔。
1sqlserver约束的类型约束类型和完整性功能完整性类型约束类型完整性功能描述域完整性默认插入数据时如果没有明确提供列值则用默认值作检查指定某个列或列组可以接受的范围或指定数据应满足的条件
SQL Server的数据库完整性及实现方法
2015
数据库的完整性:数据完整性就是指 存储在数据库中的数据正确无误并且相关 数据具有一致性。数据库中是否存在完整 的数据关系到数据库系统能否真实的反映 现实世界。它是衡量数据库中数据好坏的 一种标志,是确保正确的数据被存放在正 确的位置的一种手段。例如:学校的学生 学号必须是唯一的;性别只能为男或女; 学生所在的系必须是学校已开设的系等。
ቤተ መጻሕፍቲ ባይዱ
you
CREATE TABLE 民族
( 民族代码 民族名称 GO char(2) CONSTRAINT pk_mzdm PRIMARY KEY, varchar(30) NOT NULL)
此例题就是建立了一个列级主键
3.实现数完整性的具体方法
(3)默认和规则 默认(DEFAULT)和规则(RULE)都是数据库对象。当它们被创建后,可以 绑定到一列或几列上,并可以反复使用。当使用INSERT语句向表中插 入数据时,如果设有为绑定有DEFAULT的列指定数据,系统就会将 DEFAULT指定的数据插入;如果绑定有RULE的列,则所插入的数据必须 符合RULE的要求。 默认和规则与约束相比,功能较低但开支大。所以,如果默认和规则 可以使用约束方法表示,要尽可能采用约束数据完整性方法处理。 (4)触发器 触发器是一个特殊的存储过程。在创建触发器时通过CREATE TRIGGER 语句定义触发器对应的表、执行的事件和触发器的指令。当发生事件 后,会引发触发器执行,通过执行其指令,保证数据完整性。 触发器的用途是维护行级数据的完整性,它不能返回结果集。与CHECK 约束相比,触发器能强制实现更加复杂的数据完整性,能执行操作或 级联操作,能实现多行数据间的完整性约束,能维护非正规化的数据。
SQL Server 2008各章知识点及练习题
SQL Server 2008复习资料第1章数据库基础知识重点掌握:1、数据库(DB)、数据库管理系统(DBMS)和数据库系统(DBS)的基本概念及三者之间的关系。
数据库系统(DBS)是由哪几个部分组成的?什么是DBA?DBS:数据库系统 (DataBase System),是采用了数据库技术的计算机系统,是一个实际可运行的、按照数据库方法存储、维护和向应用系统提供数据支持的系统,它是数据库、硬件和软件,以及数据库管理员(DBA)的集合体。
DB:数据库(DataBase)DBMS:数据库管理系统(DataBase Management System),是指数据库系统中对数据进行管理的软件系统,它是数据库系统的核心组成部分。
可以通过DBMS对DB进行定义、查询、更新及各种控制.三者联系: DBS包含DB和DBMS。
2、数据库的概念模型:E-R图是设计概念模型的有效工具。
E-R图中4个基本成分:矩形框、椭圆框、菱形框和直线。
能熟练地将E-R图转换成关系模式。
3、关系模型的基本术语:关系、属性及值域、关系模式及其表示、元组、主键Primary Key、外键Foreign Key4、关系模型的完整性规则:关系模型中可以有3类完整性约束,要求通过实例运用规则(1)实体的完整性规则(2)参照完整性规则(3)用户定义的完整性规则一、选择题1、在数据库系统中,负责对数据库进行管理的有()A、操作系统和DBAB、DBMSC、操作系统和DBMSD、DBMS和DBA2、下列关于数据库的说法不正确的是()A、数据库就是长期存储在计算机中、有组织、可共享的数据集合B、数据库中的数据没有任何冗余C、数据库中的数据可同时被多个用户共享D、数据库中的数据是按一定的数据模型组织、描述和存储的3、数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)三者之间的关系是()。
A、DBS包括DB 和DBMSB、DBMS包括DB和DBSC、DB包括DBS 和DBMSD、DBS就是DB,也就是DBMS4、DBMS目前最常用的模型是()。
sql_server_2008_安全管理与数据库维护
图9-2 Windows身份验证模式其中,服务器名称中MR代表当前计算机名称,AdministratorWindows账户名称。
这也是SQL Server默认的身份验证模式,身份验证更为安全。
Windows身份验证使用Kerberos安全协议,提供有关强密码复杂性验证的密码策略强制,还提供帐户锁定支持,并且支持密码过期。
通过身份验证完成的连接有时也称为可信连接,这是因为提供的凭据。
图9-3 使用SQL Server身份验证如果用户是具有Windows 登录名和密码的Windows 域用户,则还必须提供SQL Server)登录名和密码。
记住多个登录名和密码对于许多用户而言都较为困难。
每次连接到数据库时都必须提供SQL Server混合模式身份验证的缺点如下所示。
身份验证无法使用Kerberos 安全协议。
登录名不能使用Windows 提供的其他密码策略。
右击图9-4 打开【服务器属性】对话框在默认打开的【常规】选项卡中,显示了SQL Server 2008服务器的常规信息,SQL Server 2008的版本、操作系统版本、运行平台、默认语言以及内存和等等。
(3)在左侧的选项卡列表框中,选择【安全性】选项卡,展开安全性选项内容,如图9-5所示。
在此选项卡中即可设置身份验证模式。
图9-5 【安全性】选项卡(4)通过在【服务器身份验证】选项区域下,选择相应的单选按钮,可以确SQL Server 2008的服务器身份验证模式。
无论使用哪种模式,都可以通过审核来跟踪访问SQL Server 2008的用户,默认时仅审核失败的登录。
当启用审核后,用户的登录被记录于Windows应用程序日志、SQL Server 2008错误日志或两种之中,这取决于如何配置SQL Server 2008的日志。
可用的审核选项如下:●无禁止跟踪审核●仅限失败的登录默认设置,选择后仅审核失败的登录尝试。
●仅限成功的登录仅审核成功的登录尝试。
数据库的安全性与完整性
数据库的安全性与完整性在当今数字化的时代,数据已经成为了企业和组织最为重要的资产之一。
数据库作为存储和管理数据的核心系统,其安全性与完整性至关重要。
如果数据库出现安全漏洞或数据不完整的情况,可能会给企业带来巨大的损失,甚至影响到其生存和发展。
首先,我们来谈谈数据库的安全性。
数据库安全性指的是保护数据库,防止不合法的使用所造成的数据泄露、更改或破坏。
想象一下,一家银行的数据库被黑客入侵,客户的账户信息被窃取,这将引发多么严重的后果!为了保障数据库的安全性,我们需要采取一系列的措施。
访问控制是其中的关键环节。
这就好比给房子装上门锁,只有拥有正确钥匙(即授权)的人才能进入。
通过设置不同级别的用户权限,如管理员、普通用户等,可以限制用户对数据库的操作范围,防止未经授权的访问和修改。
身份验证也是必不可少的。
就像我们进入一个重要场所需要出示身份证一样,用户在访问数据库时也需要进行身份验证。
常见的身份验证方式包括用户名和密码、指纹识别、面部识别等。
而且,密码的设置不能过于简单,要定期更换,以增加破解的难度。
加密技术则为数据库提供了另一层重要的保护。
对敏感数据进行加密,即使数据被窃取,没有解密的密钥,窃取者也无法获取其中的有用信息。
这就好比把重要的文件锁在一个加密的保险箱里,只有知道密码的人才能打开。
此外,网络安全也是数据库安全的重要组成部分。
防止网络攻击,如 DDoS 攻击、SQL 注入攻击等,需要设置防火墙、入侵检测系统等防护措施。
定期对数据库进行安全审计,及时发现和解决潜在的安全隐患,也是保障数据库安全的重要手段。
接下来,我们再聊聊数据库的完整性。
数据库的完整性是指数据的准确性、一致性和有效性。
简单来说,就是数据库中的数据要符合预期的规则和逻辑。
比如,在一个学生成绩管理数据库中,学生的成绩应该在 0 到 100之间,如果出现了 120 这样的成绩,那就违反了数据的完整性。
为了确保数据库的完整性,我们需要定义各种完整性约束。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
15.2
管理服务器登录
15.2.2 使用Transact-SQL管理登录账户 在Transact-SQL中,管理登录账户的SQL语句有:CREATE LOGIN、DROP LOGIN、ALTER LOGIN。下面简要说明如何使 用T-SQL来创建和维护登录账户。 1.新建登录账户CREATE LOGIN 其语法格式为: CREATE LOGIN login_name { WITH <option_list1> | FROM <sources> }
15.3
角色和用户管理
db_denydatawriter:不能添加、修改或删除数据库内用户 表中的任何数据。 db_owner:可以执行数据库的所有配置和维护活动。 db_securityadmin:可以修改角色成员身份和管理权限。 public:当添加一个数据库用户时,它自动成为该角色成 员,该角色不能删除,指定给该角色的权限自动给予所有 数据库用户。 db_owner和db_securityadmin角色的成员可以管理固有数 据库角色成员身份;但是,只有db_owner数据库的成员可 以向db_owner固有数据库角色中添加成员。
15.2
管理服务器登录
【例15.1】创建带密码的登录名“test”。 CREATE LOGIN test WITH PASSWORD = 'test'
15.2
管理服务器登录
2.删除登录账户DROP LOGIN 其语法格式为:DROP LOGIN login_name 【例15.3】删除登录账户“test”。 DROP LOGIN test 3.更改登录账户ALTER LOGIN 其语法格式为: ALTER LOGIN login_name { <status_option> | WITH <set_option> [ ,... ] } <status_option> ::= ENABLE | DISABLE
15.2
管理服务器登录
【例15.4】启用禁用的登录。 ALTER LOGIN test ENABLE; 【例15.5】将“test”登录密码更改为 <123www456>。 ALTER LOGIN test WITH PASSWORD = '<123www456>' 【例15.6】将登录名“test”更改为“iewangjf”。 ALTER LOGIN test WITH NAME = iewangjf
15.3
角色和用户管理
15.3.1 角色管理简介 角色等价于Windows的工作组,将登录名或用户赋予一个角 色,角色具有权限,登录名或用户作为角色成员,从而继 承了所属角色的权限。如图15.7所示。
登录名或 用户 角 色 权 限
15.3
角色和用户管理
只需给角色指定权限,然后将登录名或用户指定为某个角 色,而不必给每个登录名或用户指定权限,这样给实际工 作带来了很大的便利。 在SQL Server中角色分为服务器角色和数据库角色。而数 据库角色又分为固有数据库角色、用户自定义数据库角色 和应用程序角色。
15.2
管理服务器登录
(3)在“登录名”编辑框中输入登录名称,输入的登录名 必须是已存在的Windows登录用户。可以单击“搜索„”按 钮,出现登录“选择用户和组”对话框,如图15.4所示。 在对象名称编辑框中输入用户或组的名称,单击“检查名 称”按钮检查对象是否存在。输入完成,单击“确定”按 钮关闭选择用户或组对话框。
第15章
SQL Server 2008数据库的 安全性和完整性管理
第15章 主要内容
15.1 15.2 15.3 15.4 15.5 15.6 15.7 15.8
数据库的安全性概述 管理服务器登录 角色和用户管理 SQL Server2008权限 权限管理 数据库的完整性 数据库约束的概念和类型 管理约束
15.2
管理服务器登录
(4)确认选择的是“Windows身份验证”。指定账户登录 的默认数据库。 (5) 单击窗口左侧列表中的“服务器角色”节点,指定 账户所属服务器角色。 (6)单击窗口左侧列表中的“用户映射”节点,右侧出现 用户映射页面。可以查看或修改SQL登录账户到数据库用户 的映射。选择此登录账户可以访问的数据库,对具体的数 据库,指定要映射到登录名的数据库用户(默认情况下, 数据库用户名与登录名相同)。指定用户的默认架构,首 次创建用户时,其默认架构是dbo。 (7)设置完成单击“确定”按钮提交更改。
15.1
数据库安全性概述
15.1.2 验证模式的修改 当安装SQL Server时,可以选择SQL Server的身份验证类 型。安装完成之后也可以修改认证模式。修改步骤如下。 (1)打开SQL Server Management Studio。 (2)在要更改的服务器上鼠标右键单击,在快捷菜单中选 择属性,弹出服务器属性对话框。 (3)单击左侧列表中的“安全性”项,出现“安全性”页 面,如图15.1所示。在图中修改身份验证。
1.服务器角色 服务器角色内建于SQL Server,其权限无法更改,每一个 角色拥有一定级别的数据库管理职能,如图15.8所示。
15.3
角色和用户管理
服务器角色包括以下几种: bulkadmin:可以运行BULK INSERT语句。 dbcreator:可以创建、更改、删除和还原任何数据库。 diskadmin:管理磁盘文件。 processadmin:可以终止SQL Server实例中运行的进程。 securityadmin: 管理登录名的密码。 serveradmin:可以更改服务器范围的配置选项和关闭服 务器。 setupadmin:添加和删除链接服务器,并且也可以执行 某些系统存储过程。 sysadmin:可以在服务器中执行任何活动。
15.3
角色和用户管理
15.3
角色和用户管理
② 在角色名称编辑框中填入角色名称,在所有者编辑框中 填入该角色的所有者。 ③ 指定角色拥有的框架名称。单击“添加”按钮添加角色 成员,则弹出“选择数据库用户或角色”对话框,如图 15.13所示。
15.3
角色和用户管理
④ 输入用户(如果需要,单击“浏览”按钮),单击“确 定”按钮添加用户到角色。 ⑤ 单击图15.12左侧选择页中的“安全对象”,则右侧 “安全对象”页面,如图15.14所示。在此可以设置角色访 问数据库的资源。
15.3
角色和用户管理
15.3
角色和用户管理
2.固有数据库角色 固有数据库角色是指这些角色的数 据库权限已被SQL Server预定义, 不能对其权限进行任何修改,并且 这些角色存在于每个数据库中,如 图15.9所示。
15.3
角色和用户管理
固有数据库角色包括以下几种。 db_accessadmin:可以为Windows登录账户、Windows 组和 SQL Server登录账户添加或删除访问权限。 db_backupoperator:可以备份该数据库。 db_datareader:可以读取所有用户表中的所有数据。 db_datawriter:可以在所有用户表中添加、删除或更改数 据。 db_ddladmin:可以在数据库中运行任何数据定义语言 (DDL)命令。 db_denydatareader:不能读取数据库内用户表中的任何数 据。
15.1
数据库安全性概述
所以在SQL Server的安全模型中包括以下几部分: SQL Server身份验证; 登录账户; 数据库用户; 角色; 权限。
15.1
数据库安全性概述
15.1.1 身份验证简介 SQL Server支持两种模式的身份验证:Windows验证模式、 SQL Server 和Windows 混合验证模式。 Windows验证模式比起SQL Server验证模式来有许多优点。 Windows身份验证比SQL Server身份验证更加安全;使用 Windows身份验证的登录账户更易于管理;用户只需登录 Windows之后就可以使用SQL Server,只需要登录一次。 在混合验证模式下,Windows验证和SQL Server验证这两种 验证模式都是可用的。对于SQL Server验证模式,用户在 连接SQL Server时必须提供登录名和登录密码。
15.3.2 角色的管理 1.使用Management Studio管理角色 (1)为服务器角色添加登录账户。执行如下步骤。 ① 在图15.8中展开服务器角色节点。在需要添加用户的角 色上单击鼠标右键,选择“属性”菜单,弹出“属性”对 话框。 ② 单击“添加”按钮,则弹出“选择登录名”对话框,如 图15.10所示。 ③ 单击“浏览”按钮,则弹出“查找对象”对话框,如图 15.11所示。 ④ 选中需要添加的对象。 ⑤ 单击每个对话框中的“确定”按钮关闭对话框。
15.1
数据库安全性概述
SQL Server的安全性管理是建立在认证(authentication) 和访问许可(permission)这两种机制上的。 认证是指确定登录SQL Server的用户的登录账号和密码是 否正确,以此来验证其是否具有连接SQL Server的权限。 但是,通过认证并不代表能够访问SQL Server中的数据。 用户只有在获取访问数据库的权限之后,才能够对服务器 上的数据库进行权限许可下的各种操作。
15.2
管理服务器登录
2.创建SQL Server登录账户 一个SQL Server登录账户名是一个新的登录账户,该账户 和Windows操作系统的登录账户没有关系。 (1)打开新建登录名对话框,选择“SQL Server身份验 证”,输入登录名,密码和确认密码,并选择缺省数据库, 如图15.5所示。