9 我们只是将SQL 2008数据库复制到另一台服务器上,以进行测试。登录的典型用户使用某些架构中的某些对象。假设它是user foo和schema bar。 foo的默认架构bar同时在实例和数据库级别。但是,在foo登录时,如果bar不使用标准名称,则无法在架构中找到任何对象。 为什么默认模式在这里不起作用? sql-server security schema — 约翰·克罗马蒂 source
13 在SQL Server上具有foo用户sysadmin权限吗?因为如果这样做,则默认情况下,任何sysadmin用户都将拥有分配的架构dbo,而与特定数据库的用户属性中设置的内容无关。 因此,为了拥有默认模式,用户需要具有数据库角色(例如db_owner,db_datawriter等),而不是服务器角色sysadmin。 告诉我是否不是您的情况。 — 尤鲁什卡 source 1 你是神,我向你鞠躬致敬,直到我碰到这个,我才感到困惑。 — 詹斯(Jens)2012年
1 可能会出现此问题的另一种情况(SQL 2008 R2)... 我有一个用户链接到SQL身份验证登录名,该用户试图与现有模式关联。登录名没有sysadmin权限,因此上述解决方案没有帮助。 我最终发现数据库仍以SQL 2000兼容模式配置。更改为SQL 2005解决了该问题。 — 幻灭 source 奇怪的是,我似乎遇到了这个问题(用户链接到SQL身份验证登录名,我试图与现有架构关联),除了我的兼容性级别是“ SQL Server 2016(130)” — tbone
0 它将假定新服务器上的默认架构为dbo;如果架构尚未与数据库一起复制。 看看msdn文章,这不是解决方案,但也许对您有所帮助。http://msdn.microsoft.com/en-us/library/dd283095.aspx — 尼克·奥尼尔 source 我们已经foo在新服务器上配置了默认模式。bar在实例用户级别和数据库用户级别都将其设置为。 — John Cromartie 2010年