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

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

上一篇:SQL Server 2012笔记分享-7:高可用性功能的增强


下一篇:经典sql