Sql server 2012 如何知道';包含数据库身份验证';是否在SQL Azure中打开?

Sql server 2012 如何知道';包含数据库身份验证';是否在SQL Azure中打开?,sql-server-2012,azure-sql-database,Sql Server 2012,Azure Sql Database,我是否可以运行查询以了解SQL Azure或SQL Server 2014中的用户定义数据库中是否启用了“包含的数据库身份验证” 我尝试了以下查询,但它确实有一列用于“包含的数据库身份验证” select * from sys.databases where name='myDatbase'; Azure V12似乎支持它。我试过这个,效果很好: 创建用户user1,密码为'MyPassw0rd',然后尝试登录login1。如果可能的话,使用包含的用户是一个更好的选择,因为它避免了主数

我是否可以运行查询以了解SQL Azure或SQL Server 2014中的用户定义数据库中是否启用了“包含的数据库身份验证”

我尝试了以下查询,但它确实有一列用于“包含的数据库身份验证”

select *  from   sys.databases 
where name='myDatbase';

Azure V12似乎支持它。我试过这个,效果很好:


创建用户user1,密码为'MyPassw0rd',然后尝试登录login1。如果可能的话,使用包含的用户是一个更好的选择,因为它避免了主数据库的往返,而主数据库可能会在不同的sql实例上运行。在下面的查询中,启用此功能时,containment=1和containment_desc='PARTIAL',否则这些值为0和'NONE'

因此,只需在SSMS中运行此查询,以了解是否启用了此功能。将查询中的数据库名称替换为您正在使用的任何数据库。在本例中,我使用了northwind数据库

select containment, containment_desc  from   sys.databases 
where name='northwind'
更新1

下面是我在MSDN文档下找到的关于此的屏幕截图


Sql db v12支持包含的用户。看起来您在v11上,我不认为有目录视图可以显示相同的内容。除了包含的用户之外,包含的数据库还有许多其他功能,例如固定目录排序。在Azure中,逻辑上包含所有数据库。因此,启用包含的用户是有意义的。您所指的列是与box兼容的包含数据库,不在Azure中。

我认为您不应该依赖sys.databases来实现这些功能。包含与包含的用户正交,在V12中看起来已启用。我们有一个托管的SQL Azure数据库,当我尝试在此数据库中创建用户时,它不起作用。那么,您为什么说它在SQLAzure中默认启用?我使用了“创建用户[readonly]和密码=”xyayaya@33332'',但失败。您的语句不正确,否则我将能够创建用户。请检查您是否正在sql azure v12上运行。版本:12.0.2000.8我试过了,它正在工作,文档也表明,包含的数据库不仅仅是支持包含的用户,为什么您不认为该功能是从包含的数据库中派生出来的呢。请升级到v12并试一试。我的问题不是是否支持它。在我们正在使用的SQL Azure版本中,默认情况下不支持它。那么,在运行任何创建用户查询之前,您能告诉我如何知道它是否已在SQL Azure<12.x中启用?我不认为有任何目录视图仅与此功能相关,而且此特定功能在V11中不受支持。那么,我发布的屏幕截图指的是什么?这不是用于包含吗?默认情况下,此功能对SQL Azure中的所有数据库都启用,并且不可配置。要回答查询,请检查(版本>12.0且SERVERPROPERTY('EngineEdition')=5)或包含=1。这排除了方程中的v11数据库,适用于box和azure