SQL Server 2012笔记分享-8:理解包含数据库

包含数据库的四大核心特点

独立于其他数据库以及独立于承载数据库的 SQL Server 实例的一种数据库。

很多用于描述数据库的元数据都在该数据库中维护。

使用相同的排序规则定义所有元数据。

数据库可执行用户身份验证,因此减少了对 SQL Server 实例的登录名的数据库依赖关系。

包含数据库解决的问题

在你将SQL Server 2012包含数据库隔离之后,你就可以轻易将其从一个SQL Server实例迁移至另一个SQL Server实例,而不必迁移一组SQL Server登录。此包含数据库存储了数据库内所需的所有信息。这一过程也让设置你的高可用性集群变得更加容易。因为用户是直接连接到数据库的,所以如果发生故障转移,他们就可以很容易地连接到第二个数据库。即使你不将数据库进行迁移或集群化,SQL Server 2012包含数据库也能够让用户账户管理更为简单,因为你不用试图同时管理SQL Server登录和数据库用户账户。你可以授权特定用户访问特定数据库,而不用担心用户访问那些非授权项。

部分包含的数据库解决了自发布 SQL Server 4.2 版以来围绕 SQL Server 数据库的一些主要合并和迁移问题。 部分包含的数据库解决的第一个问题是,将数据库从一个 SQL Server 实例移动到另一个 SQL Server 实例而无需标识该数据库使用的 SQL Server 登录名。这还涉及在目标数据库实例上创建这些登录名。解决的第二个问题是,有效排除了包含的数据库中的表与临时表之间的排序规则冲突。 SQL Server 会在整理时在包含的数据库范围内自动创建临时表。新的部分包含的数据库允许同一个 SQL Server 实例上存在多个不同的排序规则。 您在联接临时表时无需担心排序规则问题。  这将使得同一个 SQL Server 实例可以承载具有不同排序规则的数据库,而无需修改 CREATE TABLE 语句来指定排序规则或无需在 JOIN 语句的语法中指定 COLLATE 语句。

使用包含的登录名登录到包含的数据库。 所不同的是,使用包含的用户进行连接时,必须在连接字符串中指定数据库名称。 如果您不这样做,SQL Server 将认为是一个传统 SQL Server 登录名正在尝试建立连接。 如果所使用的登录名与实例级别定义的用户名和密码不匹配,则登录将失败。

包含数据库的创建和使用方法参考

   

SQL Server 2012: 有时只包含一部分会更好

http://technet.microsoft.com/zh-cn/magazine/hh534404.aspx

详解SQL Server2012包含数据库(Contained Database)

http://software.cnw.com.cn/software-database/htm2013/20130915_282999.shtml

SQL Server 2012 新特性(二)安全新特性:包含数据库

http://jimshu.blog.51cto.com/3171847/872711

SQL Server 2012笔记分享-8:理解包含数据库,布布扣,bubuko.com

时间: 06-08

SQL Server 2012笔记分享-8:理解包含数据库的相关文章

SQL Server 2012笔记分享-4:理解SQL server实例

每个单独的SQL server实例都有一个windows进程:sqlservr.exe,一个windows下能安装多个实例,多个实例会有多个sqlservr.exe进程. 一个SQL实例在后台对应一个服务,如果多个应用程序放在一个实例里,如果某个应用开发的程序有问题,比如死循环,会导致服务停止,从而导致所有数据库无法工作.可以采用多实例分开方式. 一个服务器上可以装多个实例,标准版(16个)和企业版(50个)支持的实例数量不同. SQL server实例的类型 (一)默认实例和命名实例 1.服务

SQL Server 2012笔记分享-9:理解列存储索引

优点和使用场景 SQL Server 内存中列存储索引通过使用基于列的数据存储和基于列的查询处理来存储和管理数据. 列存储索引适合于主要执行大容量加载和只读查询的数据仓库工作负荷. 与传统面向行的存储方式相比,使用列存储索引存档可最多提高 10 倍查询性能,与使用非压缩数据大小相比,可提供多达 7 倍数据压缩率. SQL 2012和SQL 2014列存储索引的比较 在SQL server 2012中,一旦启用了列存储索引,将不能够对已启用列存储索引的数据存储执行变更写入操作,也就是说列存储索引适

SQL Server 2012笔记分享-5:理解SQLOS

描述 SQLOS是一个单独的应用层,它位于SQLServer数据库引擎的最低层,SQLServer和SQL Reporting Services都是在顶层运行.SQLOS介于windows操作系统和SQL server之间. 为什么开发SQLOS SQLServer的早期版本在存储引擎和实际操作系统之间使用瘦接口层,通过该接口层,SQLServer可以调用操作系统来执行内存分配,计划资源,线程和工作管理,以及同步对象.不过,SQLServer中需要访问这些接口的服务可以位于引擎的任何部分.SQL

SQL Server 2012笔记分享-6:理解内存管理

内存管理 – SQL Server 2005/2008/2008r2 SQL Server 2012以前的版本(SQL 2005/2008/2008R2),有single page allocator 和multi page allocator.也就是说,如果申请的内存是8k以内的,就会有单页分配器分配,而大于8kb的内存请求,使用multi page 分配器来管理.如图所示. 使用select * from sys.dm_os_memory_clerks查询memory clerk,会发现si

SQL Server 2012笔记分享-22:理解备份模式与恢复模式

SQL Server 备份和还原组件为保护存储在 SQL Server 数据库中的关键数据提供了基本安全保障. 为了最大限度地降低灾难性数据丢失的风险,您需要定期备份数据库以保留对数据所做的修改. 规划良好的备份和还原策略有助于防止SQL Server 2012笔记分享-22:理解备份模式与恢复模式数据库因各种故障而造成数据丢失. 通过还原一组备份,然后恢复数据库来测试您的策略,以便为有效地应对灾难做好准备. ===========================================

SQL Server 2012笔记分享-10:理解数据压缩

关键概念 配置数据压缩可以通过SSMS和T-SQL语句两种方式来实现. 表和索引压缩 对于行存储表和索引,使用数据压缩功能可帮助减小数据库的大小. 除了节省空间之外,数据压缩还可以帮助提高 I/O 密集型工作负荷的性能,因为数据存储在更少的页中,查询需要从磁盘读取的页更少. 但是,在与应用程序交换数据时,在数据库服务器上需要额外的 CPU 资源来压缩和解压缩数据. 对于列存储表和索引,所有列存储表和索引始终使用列存储压缩,并且用户无法对此进行配置. 在您能够付出额外的时间和 CPU 资源来存储和

SQL Server 2012笔记分享-51:理解系统数据库恢复

下图是一个很重要的表格,详细描述了系统数据库的备份需求,支持的恢复模式和还原的选项. master数据库:需要备份,需要在单用户模式下恢复 model数据库:需要备份,恢复数据库的方式为T3608 trace flag msdb数据库:需要备份,恢复模式默认为简单,恢复数据库的方式和恢复普通数据库一样,没有特殊要求 tempdb数据库:不需要备份,因为在实例启动的时候tempdb会重建:     详细的步骤可以参考 http://msdn.microsoft.com/zh-cn/library/

SQL Server 2012笔记分享-46:如何快速学习T-SQL语句

对于初学者来说,T-SQL语句的编写一直是个难题,初学者还是习惯使用图形界面来做相关的SQL方面的维护工作.但是在一个稍微复杂大型的SQL场景中,如果我们能够快速的掌握和理解SQL语句的编写和使用,那么会使我们的运维工作达到事半功倍的效果. 其实对于SQL server 2012来说,本身就提供了很多途径来帮助初学者获取日常管理任务的对应T-SQL脚本.下面我们来举几个快速获取T-SQL脚本的例子. ================================================

SQL Server 2012笔记分享-38:了解系统数据库

master 数据库 记录 SQL Server 实例的所有系统级信息. master 数据库记录 SQL Server 系统的所有系统级信息.这包括实例范围的元数据(例如登录帐户).端点.链接服务器和系统配置设置.此外,master 数据库还记录了所有其他数据库的存在.数据库文件的位置以及 SQL Server 的初始化信息.因此,如果 master 数据库不可用,则 SQL Server 无法启动.在 SQL Server 中,系统对象不再存储在 master 数据库中,而是存储在 Reso